From 1040f7261f264b2fbb065ea56735febb6a3c62c7 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 18 Dec 2019 15:13:49 +0800 Subject: [PATCH] ADD gitea add repository api --- app/services/gitea/client_service.rb | 15 ++++++++++++- app/services/gitea/repository/get_service.rb | 23 ++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 app/services/gitea/repository/get_service.rb diff --git a/app/services/gitea/client_service.rb b/app/services/gitea/client_service.rb index cc4b42d02..4fdf51b92 100644 --- a/app/services/gitea/client_service.rb +++ b/app/services/gitea/client_service.rb @@ -27,6 +27,15 @@ class Gitea::ClientService < ApplicationService render_status(response) end + def get(url, params={}) + auth_token = authen_params(params[:token]) + response = conn(auth_token).get do |req| + req.url full_url(url) + req.body = params[:data].to_json + end + render_status(response) + end + private def conn(auth={}) username = auth[:username] || access_key_id @@ -73,11 +82,15 @@ class Gitea::ClientService < ApplicationService [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 + when 201, 200 JSON.parse(response&.body) when 401 raise Error, mark + "401" diff --git a/app/services/gitea/repository/get_service.rb b/app/services/gitea/repository/get_service.rb new file mode 100644 index 000000000..20b8e61c0 --- /dev/null +++ b/app/services/gitea/repository/get_service.rb @@ -0,0 +1,23 @@ +class Gitea::Repository::GetService < Gitea::ClientService + + attr_reader :user, :repo + + def initialize(user, repo) + @user = user + @repo = repo + end + + def call + get(url, params) + end + + private + + def params + Hash.new.merge(token: user.gitea_token) + end + + def url + "/repos/#{user.login}/#{repo}".freeze + end +end