init project

This commit is contained in:
Jasder
2020-03-09 00:40:16 +08:00
commit 2937b2a94d
6549 changed files with 7215173 additions and 0 deletions

View File

@@ -0,0 +1,164 @@
class Gitea::ClientService < ApplicationService
attr_reader :username, :secret, :token, :url, :params
def initialize(options={})
@username = options[:username]
@secret = options[:password]
@token = options[:token]
@url = options[:url]
@params = options[:params]
end
# params
# EXA:
# {
# token: {},
# data: {}
# }
def post(url, params={})
puts "[gitea] request params: #{params}"
request_url = [api_url, url].join('').freeze
auth_token = authen_params(params[:token])
response = conn(auth_token).post do |req|
req.url "#{request_url}"
req.body = params[:data].to_json
end
render_status(response)
end
def get(url, params={})
auth_token = authen_params(params[:token])
conn(auth_token).get do |req|
req.url full_url(url)
params.except(:token).each_pair do |key, value|
req.params["#{key}"] = value
end
end
# response.headers.each do |k,v|
# puts "#{k}:#{v}"
# end #=> 响应头
end
def delete(url, params={})
auth_token = authen_params(params[:token])
conn(auth_token).delete do |req|
req.url full_url(url)
req.body = params[:data].to_json
end
end
def patch(url, params={})
puts "[gitea] request params: #{params}"
auth_token = authen_params(params[:token])
conn(auth_token).patch do |req|
req.url full_url(url)
req.body = params[:data].to_json
end
end
def put(url, params={})
puts "[gitea] put request params: #{params}"
conn(authen_params(params[:token])).put do |req|
req.url full_url(url)
req.body = params[:data].to_json
end
end
private
def conn(auth={})
username = auth[:username] || access_key_id
secret = auth[:password] || access_key_secret
token = auth[:token]
puts "[gitea] username: #{username}"
puts "[gitea] secret: #{secret}"
puts "[gitea] token: #{token}"
@client ||= begin
Faraday.new(url: domain) do |req|
req.request :url_encoded
req.headers['Content-Type'] = 'application/json'
req.response :logger # 显示日志
req.adapter Faraday.default_adapter
if token.blank?
req.basic_auth(username, secret)
else
req.authorization :Bearer, token
req.headers['Authorization']
end
end
end
@client
end
def base_url
Gitea.gitea_config[:base_url]
end
def domain
Gitea.gitea_config[:domain]
end
def access_key_id
Gitea.gitea_config[:access_key_id]
end
def access_key_secret
Gitea.gitea_config[:access_key_secret]
end
def api_url
[domain, base_url].join('')
end
def full_url(api_rest)
[api_url, api_rest].join('').freeze
end
def render_status(response)
mark = "[gitea] "
case response.status
when 201, 200, 202
if response.body.size > 0
JSON.parse(response&.body)
else
{status: 200}
end
when 401
raise Error, mark + "401"
when 422
result = JSON.parse(response&.body)
puts "[gitea] parse body: #{result}"
# return {status: -1, message: result[0]}
raise Error, result[0]
when 204
puts "[gitea] "
raise Error, "[gitea] delete ok"
when 409
message = "创建失败,请检查该分支合并是否已存在"
raise Error, mark + message
else
if response&.body.blank?
message = "请求失败"
else
result = JSON.parse(response&.body)
message = result['message']
end
raise Error, mark + message
end
end
def authen_params(token)
(token.is_a? String) ? {token: token} : Hash(token)
end
def render_data(response)
case response.status
when 201, 200
JSON.parse(response.body)
else
nil
end
end
end

View File

@@ -0,0 +1,29 @@
class Gitea::Labels::CreateService < Gitea::ClientService
attr_reader :user, :repo, :params
# params ex:
# {
# name: 'pull request title',
# description: 'pull request content',
# color: '#ffff',
# }
# repo: 仓库名称
def initialize(user, repo, params={})
@user = user
@repo = repo
@params = params
end
def call
post(url, request_params)
end
private
def url
"/repos/#{user.login}/#{repo}/labels".freeze
end
def request_params
Hash.new.merge(token: user.gitea_token, data: params)
end
end

View File

@@ -0,0 +1,39 @@
class Gitea::Labels::DeleteService < Gitea::ClientService
attr_reader :user, :repo_name,:label_id
def initialize(user, repo_name, label_id)
@user = user
@repo_name = repo_name
@label_id = label_id
end
def call
response = delete(url, params)
render_result(response)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo_name}/labels/#{label_id}".freeze
end
def render_result(response)
return_body = response.body
if return_body.present?
body = JSON.parse(response.body)
else
body = []
end
case response.status
when 204
body
else
{status: -1, message: "#{body['message'] if body.present?}"}
end
end
end

View File

@@ -0,0 +1,32 @@
class Gitea::Labels::ListService < Gitea::ClientService
attr_reader :user, :repo_name
def initialize(user, repo_name)
@user = user
@repo_name = repo_name
end
def call
response = get(url, params)
render_result(response)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo_name}/labels".freeze
end
def render_result(response)
body = JSON.parse(response.body)
case response.status
when 200 then body
else
{status: -1, message: "#{body['message']}"}
end
end
end

View File

@@ -0,0 +1,30 @@
class Gitea::Labels::UpdateService < Gitea::ClientService
attr_reader :user, :repo,:label_id, :params
# params ex:
# {
# name: 'pull request title',
# description: 'pull request content',
# color: '#ffff',
# }
# repo: 仓库名称
def initialize(user, repo,label_id, params={})
@user = user
@repo = repo
@params = params
@label_id = label_id
end
def call
put(url, request_params)
end
private
def url
"/repos/#{user.login}/#{repo}/labels/#{label_id}".freeze
end
def request_params
Hash.new.merge(token: user.gitea_token, data: params)
end
end

View File

@@ -0,0 +1,35 @@
# Check if a pull request has been merged
class Gitea::PullRequest::CheckService < Gitea::ClientService
attr_reader :user, :repo, :pull_request_id
# user: 用户
# repo: 仓库名称/标识
# pull_request_id: pull request主键id
def initialize(user, repo, pull_request_id)
super({token: user.gitea_token})
@user = user
@repo = repo
@pull_request_id = pull_request_id
end
def call
response = get(url, params)
render_response(response)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo}/pulls/#{pull_request_id}/merge".freeze
end
def render_response(response)
case response.status
when 204 then true
when 404 then false
end
end
end

View File

@@ -0,0 +1,34 @@
class Gitea::PullRequest::CreateService < Gitea::ClientService
attr_reader :user, :repo, :params
# params ex:
# {
# title: 'pull request title',
# body: 'pull request content',
# head: 'develop', // from branch 源分支
# base: 'master' // to branch 目标分支
# }
# 以上列子说明从develop分支合并到master分支
# repo: 仓库名称
def initialize(user, repo, params={})
@user = user
@repo = repo
@params = params
end
def call
post(url, request_params)
end
private
def url
"/repos/#{@user.login}/#{@repo}/pulls".freeze
end
def request_params
Hash.new.merge(token: @user.gitea_token, data: @params)
end
end

View File

@@ -0,0 +1,37 @@
# Get a pull request
class Gitea::PullRequest::GetService < Gitea::ClientService
attr_reader :user, :repo, :pull_request_id
# user: 用户
# repo: 仓库名称/标识
# pull_request_id: pull request主键id
def initialize(user, repo, pull_request_id)
super({token: user.gitea_token})
@user = user
@repo = repo
@pull_request_id = pull_request_id
end
def call
response = get(url, params)
render_result(response)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo}/pulls/#{pull_request_id}".freeze
end
def render_result(response)
case response.status
when 200
JSON.parse(response.body)
else
nil
end
end
end

View File

@@ -0,0 +1,34 @@
# Get a list of all commits from a repository
class Gitea::PullRequest::ListService < Gitea::ClientService
attr_reader :user, :repo
# sha: SHA or branch to start listing commits from (usually 'master')
def initialize(user, repo)
@user = user
@repo = repo
end
def call
response = get(url, params)
render_result(response)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{@user.try(:login)}/#{@repo}/pulls".freeze
end
def render_result(response)
body = JSON.parse(response.body)
case response.status
when 200
body
else
{status: -1, message: "#{body['message']}"}
end
end
end

View File

@@ -0,0 +1,31 @@
# Merge a pull request
class Gitea::PullRequest::MergeService < Gitea::ClientService
attr_reader :user, :repo, :pull_request_id, :params
# parameters:
# repo: name of the repo
# pull_request_id: index of the pull request to merge
# params:
# title: merge标题
# message: merge说明
def initialize(user, repo, pull_request_id, params={})
@user = user
@repo = repo
@params = params
@pull_request_id = pull_request_id
end
def call
post(url, request_params)
end
private
def url
"/repos/#{user.login}/#{repo}/pulls/#{pull_request_id}/merge"
end
def request_params
Hash.new.merge(token: user.gitea_token, data: params)
end
end

View File

@@ -0,0 +1,26 @@
class Gitea::PullRequest::UpdateService < Gitea::ClientService
attr_reader :user, :repo, :params,:pull_request_id
def initialize(user, repo, params,pull_request_id)
@user = user
@repo = repo
@params = params
@pull_request_id = pull_request_id
end
def call
put(url, request_params)
end
private
def request_params
Hash.new.merge(token: @user.gitea_token, data: @params)
end
def url
"/repos/#{@user.try(:login)}/#{@repo}/pulls/#{@pull_request_id}".freeze
end
end

View File

@@ -0,0 +1,22 @@
class Gitea::Repository::BranchesService < Gitea::ClientService
attr_reader :user, :repo
def initialize(user, repo)
@user = user
@repo = repo
end
def call
response = get(url, params)
render_data(response)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo}/branches".freeze
end
end

View File

@@ -0,0 +1,35 @@
# Get a single commit from a repository
class Gitea::Repository::Commits::GetService < Gitea::ClientService
attr_reader :user, :repo_name, :sha
# sha: the commit hash
def initialize(user, repo_name, sha)
@user = user
@sha = sha
@repo_name = repo_name
end
def call
response = get(url, params)
render_result(response)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo_name}/git/commits/#{sha}".freeze
end
def render_result(response)
body = JSON.parse(response.body)
case response.status
when 200
JSON.parse(response.body)
else
{status: -1, message: "#{body['message']}"}
end
end
end

View File

@@ -0,0 +1,39 @@
# Get a list of all commits from a repository
class Gitea::Repository::Commits::ListService < Gitea::ClientService
attr_reader :user, :repo_name, :args
# sha: SHA or branch to start listing commits from (usually 'master')
def initialize(user, repo_name, **args)
@user = user
@repo_name = repo_name
@args = { sha: 'master', page: 1 }.merge(args.compact)
end
def call
response = get(url, params)
render_result(response)
end
private
def params
@args.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo_name}/commits".freeze
end
def render_result(response)
body = JSON.parse(response.body)
case response.status
when 200
result = {}
headers = response.headers.to_hash
body = JSON.parse(response.body)
total_count = headers["x-total"]
result.merge(total_count: total_count.to_i, body: body)
else
{status: -1, message: "#{body['message']}"}
end
end
end

View File

@@ -0,0 +1,34 @@
class Gitea::Repository::CreateService < Gitea::ClientService
attr_reader :token, :params
# params EX:
# {
# "auto_init": true,
# "description": "string",
# "gitignores": "string",
# "issue_labels": "string",
# "license": "string",
# "name": "string", *
# "private": true,
# "readme": "string"
# }
def initialize(token, params)
@token = token
@params = params
end
def call
post(url, request_params)
end
private
def request_params
Hash.new.merge(token: token, data: params)
end
def url
"/user/repos".freeze
end
end

View File

@@ -0,0 +1,22 @@
class Gitea::Repository::DeleteService < Gitea::ClientService
attr_reader :user, :repo_name
def initialize(user, repo_name)
@user = user
@repo_name = repo_name
end
def call
delete(url, params)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo_name}".freeze
end
end

View File

@@ -0,0 +1,43 @@
class Gitea::Repository::Entries::CreateService < Gitea::ClientService
attr_reader :user, :repo_name, :filepath, :body
# ref: The name of the commit/branch/tag. Default the repositorys default branch (usually master)
# filepath: path of the dir, file, symlink or submodule in the repo
# repo_name: the name of repository
# body:
# {
# "author": {
# "email": "user@example.com",
# "name": "string"
# },
# "branch": "string",
# "committer": {
# "email": "user@example.com",
# "name": "string"
# },
# "content": "string", # content must be base64 encoded
# "message": "string",
# "new_branch": "string"
# }
#
def initialize(user, repo_name, filepath, body)
@user = user
@repo_name = repo_name
@filepath = filepath
@body = body
end
def call
post(url, params)
end
private
def params
Hash.new.merge(token: user.gitea_token, data: body)
end
def url
"/repos/#{user.login}/#{repo_name}/contents/#{filepath}".freeze
end
end

View File

@@ -0,0 +1,42 @@
class Gitea::Repository::Entries::DeleteService < Gitea::ClientService
attr_reader :user, :repo_name, :filepath, :body
# ref: The name of the commit/branch/tag. Default the repositorys default branch (usually master)
# filepath: path of the dir, file, symlink or submodule in the repo
# repo_name: the name of repository
# body:
# {
# "author": {
# "email": "user@example.com",
# "name": "string"
# },
# "branch": "string",
# "committer": {
# "email": "user@example.com",
# "name": "string"
# },
# "message": "string",
# "new_branch": "string",
# "sha": "string", #require
# }
def initialize(user, repo_name, filepath, body)
@user = user
@repo_name = repo_name
@filepath = filepath
@body = body
end
def call
delete(url, params)
end
private
def params
Hash.new.merge(token: user.gitea_token, data: body)
end
def url
"/repos/#{user.login}/#{repo_name}/contents/#{filepath}".freeze
end
end

View File

@@ -0,0 +1,38 @@
class Gitea::Repository::Entries::GetService < Gitea::ClientService
attr_reader :user, :repo_name, :filepath, :args
# ref: The name of the commit/branch/tag. Default the repositorys default branch (usually master)
# filepath: path of the dir, file, symlink or submodule in the repo
# repo_name: the name of repository
# ref: The name of the commit/branch/tag. Default the repositorys default branch (usually master)
def initialize(user, repo_name, filepath, **args)
@user = user
@repo_name = repo_name
@filepath = filepath
@args = {ref: 'master'}.merge(args.compact)
end
def call
response = get(url, params)
render_result(response)
end
private
def params
@args.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo_name}/contents/#{filepath}".freeze
end
def render_result(response)
body = JSON.parse(response.body)
case response.status
when 200
body
else
{status: -1, message: "#{body['message']}"}
end
end
end

View File

@@ -0,0 +1,35 @@
class Gitea::Repository::Entries::ListService < Gitea::ClientService
attr_reader :user, :repo_name, :args
# ref: The name of the commit/branch/tag. Default the repositorys default branch (usually master)
# repo_name: the name of repository
def initialize(user, repo_name, **args)
@user = user
@repo_name = repo_name
@args = {ref: 'master'}.merge(args.compact)
end
def call
response = get(url, params)
render_result(response)
end
private
def params
@args.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo_name}/contents".freeze
end
def render_result(response)
body = JSON.parse(response.body)
case response.status
when 200
body
else
{status: -1, message: "#{body['message']}"}
end
end
end

View File

@@ -0,0 +1,43 @@
class Gitea::Repository::Entries::UpdateService < Gitea::ClientService
attr_reader :user, :repo_name, :filepath, :body
# ref: The name of the commit/branch/tag. Default the repositorys default branch (usually master)
# filepath: path of the dir, file, symlink or submodule in the repo
# repo_name: the name of repository
# body:
# {
# "author": {
# "email": "user@example.com",
# "name": "string"
# },
# "branch": "string",
# "committer": {
# "email": "user@example.com",
# "name": "string"
# },
# "content": "string", # content must be base64 encoded
# "message": "string",
# "new_branch": "string"
# }
#
def initialize(user, repo_name, filepath, body)
@user = user
@repo_name = repo_name
@filepath = filepath
@body = body
end
def call
put(url, params)
end
private
def params
Hash.new.merge(token: user.gitea_token, data: body)
end
def url
"/repos/#{user.login}/#{repo_name}/contents/#{filepath}".freeze
end
end

View File

@@ -0,0 +1,32 @@
class Gitea::Repository::ForkService < Gitea::ClientService
attr_reader :old_owner, :target_owner, :repo_name, :organization
# old_owner: 被clone的项目(源项目)拥有者
# target_owner: clone后的醒目(新项目)的拥有者
# body:
# {
# "organization": "string" #组织名称
# }
def initialize(old_owner, target_owner, repo_name, organization=nil)
@old_owner = old_owner
@target_owner = target_owner
@repo_name = repo_name
end
def call
post(url, request_params)
end
private
def request_params
hash = Hash.new.merge(token: target_owner.gitea_token)
hash = hash.merge(data: {organization: organization}) if organization
hash
end
def url
"/repos/#{old_owner.login}/#{repo_name}/forks".freeze
end
end

View File

@@ -0,0 +1,31 @@
class Gitea::Repository::GetService < Gitea::ClientService
attr_reader :user, :repo_name
def initialize(user, repo_name)
@user = user
@repo_name = repo_name
end
def call
response = get(url, params)
render_result(response)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo_name}".freeze
end
def render_result(response)
case response.status
when 200
JSON.parse(response.body)
else
nil
end
end
end

View File

@@ -0,0 +1,28 @@
# 添加协作者/或者更改协作这的可读写权限
class Gitea::Repository::Members::AddService < Gitea::ClientService
attr_reader :owner, :repo_name, :collaborator, :permission
# owner: owner of the repo
# repo_name: name of the repo
# collaborator: username of the collaborator
# permission: permission name, FIX: admin | read | write
def initialize(owner, repo_name, collaborator, permission)
@owner = owner
@repo_name = repo_name
@collaborator = collaborator
@permission = permission
end
def call
put(url, params)
end
private
def params
Hash.new.merge(token: owner.gitea_token, data: {permission: permission})
end
def url
"/repos/#{owner.login}/#{repo_name}/collaborators/#{collaborator}".freeze
end
end

View File

@@ -0,0 +1,25 @@
class Gitea::Repository::Members::DeleteService < Gitea::ClientService
attr_reader :owner, :repo_name, :collaborator
# owner: owner of the repo
# repo_name: name of the repo
# collaborator: username of the collaborator
def initialize(owner, repo_name, collaborator)
@owner = owner
@repo_name = repo_name
@collaborator = collaborator
end
def call
delete(url, params)
end
private
def params
Hash.new.merge(token: owner.gitea_token)
end
def url
"/repos/#{owner.login}/#{repo_name}/collaborators/#{collaborator}".freeze
end
end

View File

@@ -0,0 +1,47 @@
class Gitea::Repository::MigrateService < Gitea::ClientService
attr_reader :token, :params
# params description:
# {
# auth_username string
# clone_addr* string #clone地址
# description string
# issues boolean
# labels boolean
# milestones boolean
# mirror boolean
# private boolean
# pull_requests boolean
# releases boolean
# repo_name* string #仓库名称
# uid* integer($int64) #gitea用户id或组织id
# wiki boolean
# }
# EX:
# params = {
# clone_addr: 'xxx.com',
# repo_name: 'repo_name',
# uid: 2,
# private: false
# }
def initialize(token, params)
@token = token
@params = params
end
def call
post(url, request_params)
end
private
def request_params
Hash.new.merge(token: token, data: params)
end
def url
"/repos/migrate".freeze
end
end

View File

@@ -0,0 +1,33 @@
class Gitea::Repository::Tags::ListService < Gitea::ClientService
attr_reader :user, :repo_name
# ref: The name of the commit/branch/tag. Default the repositorys default branch (usually master)
# repo_name: the name of repository
def initialize(user, repo_name)
@user = user
@repo_name = repo_name
end
def call
response = get(url, params)
render_result(response)
end
private
def params
Hash.new.merge(token: user.gitea_token)
end
def url
"/repos/#{user.login}/#{repo_name}/tags".freeze
end
def render_result(response)
body = JSON.parse(response.body)
case response.status
when 200 then body
else
{status: -1, message: "#{body['message']}"}
end
end
end

View File

@@ -0,0 +1,33 @@
class Gitea::Repository::UpdateService < Gitea::ClientService
attr_reader :user, :repo, :params
# params:
# {
# name: 'name of the repository',
# default_branch: 'sets the default branch for this repository.',
# description: 'string a short description of the repository.',
# private: 'boolean either true to make the repository private or false to make it public.',
# has_issues: 'boolean either true to enable issues for this repository or false to disable them.',
# has_pull_requests: 'boolean either true to allow pull requests, or false to prevent pull request.',
# allow_merge_commits: 'boolean either true to allow merging pull requests with a merge commit, or false to prevent merging pull requests with merge commits. has_pull_requests must be true.'
# }
def initialize(user, repo, params={})
@user = user
@repo = repo
@params = params
end
def call
patch(url, data_params)
end
private
def url
"/repos/#{user.login}/#{repo}"
end
def data_params
Hash.new.merge(token: user.gitea_token, data: params)
end
end

View File

@@ -0,0 +1,28 @@
# 根据对应的用户名和秘密生成token
class Gitea::User::GenerateTokenService < Gitea::ClientService
attr_reader :username, :password
def initialize(username, password)
@username = username
@password = password
end
def call
params = {}
url = "/users/#{username}/tokens".freeze
params = params.merge(token: token_params, data: request_params)
post(url, params)
end
private
def token_params
{
username: username,
password: password
}
end
def request_params
{ name: username }
end
end

View File

@@ -0,0 +1,28 @@
class Gitea::User::RegisterService < Gitea::ClientService
API_REST = "/admin/users"
def initialize(options = {})
options.each_pair do |key, value|
instance_variable_set("@#{key}", value)
end
end
def call
params = {}
params = params.merge(data: user_params)
post(API_REST, params)
end
private
attr_reader :email, :username, :password
def user_params
{
email: email,
username: username,
password: password,
must_change_password: false #允许不更改秘密就可以登录
}
end
end

View File

@@ -0,0 +1,34 @@
class Gitea::Versions::CreateService < Gitea::ClientService
attr_reader :token, :user_name, :repo, :params
# params EX:
# {
# "body": "sylor", #user_name
# "draft": false,
# "name": "string",
# "prerelease": true,
# "tag_name": "string",
# "target_commitish": "string"
# }
def initialize(token, user_name, repo, params)
@token = token
@params = params
@user_name = user_name
@repo = repo
end
def call
post(url, request_params)
end
private
def request_params
Hash.new.merge(token: token, data: params)
end
def url
"/repos/#{@user_name}/#{@repo}/releases".freeze
end
end

View File

@@ -0,0 +1,26 @@
class Gitea::Versions::DeleteService < Gitea::ClientService
attr_reader :token, :user_name, :repo,:version_gid
def initialize(token, user_name, repo,version_gid)
@token = token
@user_name = user_name
@repo = repo
@version_gid = version_gid
end
def call
response = delete(url, params)
return response
end
private
def params
Hash.new.merge(token: @token)
end
def url
"/repos/#{@user_name}/#{@repo}/releases/#{@version_gid}".freeze
end
end

View File

@@ -0,0 +1,35 @@
# Get a list of all commits from a repository
class Gitea::Versions::ListService < Gitea::ClientService
attr_reader :token, :user_name, :repo
# sha: SHA or branch to start listing commits from (usually 'master')
def initialize(token, user_name, repo)
@token = token
@user_name = user_name
@repo = repo
end
def call
response = get(url, params)
render_result(response)
end
private
def params
Hash.new.merge(token: token)
end
def url
"/repos/#{@user_name}/#{@repo}/releases".freeze
end
def render_result(response)
body = JSON.parse(response.body)
case response.status
when 200
body
else
{status: -1, message: "#{body['message']}"}
end
end
end

View File

@@ -0,0 +1,35 @@
class Gitea::Versions::UpdateService < Gitea::ClientService
attr_reader :token, :user_name, :repo, :params, :version_gid
# params EX:
# {
# "body": "sylor", #user_name
# "draft": false,
# "name": "string",
# "prerelease": true,
# "tag_name": "string",
# "target_commitish": "string"
# }
def initialize(token, user_name, repo, params,version_gid)
@token = token
@params = params
@user_name = user_name
@repo = repo
@version_gid = version_gid
end
def call
patch(url, request_params)
end
private
def request_params
Hash.new.merge(token: token, data: params)
end
def url
"/repos/#{@user_name}/#{@repo}/releases/#{@version_gid}".freeze
end
end