diff --git a/app/controllers/api/v1/projects/branches_controller.rb b/app/controllers/api/v1/projects/branches_controller.rb index 89ebb5825..2bb7fdaf5 100644 --- a/app/controllers/api/v1/projects/branches_controller.rb +++ b/app/controllers/api/v1/projects/branches_controller.rb @@ -1,6 +1,29 @@ class Api::V1::Projects::BranchesController < Api::V1::BaseController before_action :require_public_and_member_above, only: [:index, :all] + def gitee + url = URI("https://gitee.com/api/v5/repos/#{params[:owner]}/#{params[:repo]}/branches?access_token=#{params[:token]}&page=#{page}&per_page=#{limit}") + https = Net::HTTP.new(url.host, url.port) + https.use_ssl = true + request = Net::HTTP::Get.new(url) + response = https.request(request) + render :json => response.read_body + end + + def github + url = URI("https://api.github.com/repos/#{params[:owner]}/#{params[:repo]}/branches?page=#{page}&per_page=#{limit}") + https = Net::HTTP.new(url.host, url.port) + https.use_ssl = true + + request = Net::HTTP::Get.new(url) + request["Authorization"] = "Bearer #{params[:token]}" + request["Accept"] = "application/vnd.github+json" + request["X-GitHub-Api-Version"] = "2022-11-28" + + response = https.request(request) + render :json => response.read_body + end + def index @result_object = Api::V1::Projects::Branches::ListService.call(@project, {name: params[:keyword], state: params[:state], page: page, limit: limit}, current_user&.gitea_token) end diff --git a/config/routes/api.rb b/config/routes/api.rb index e42afba53..b502a679e 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -118,6 +118,8 @@ defaults format: :json do end resources :branches, param: :name, only:[:index, :create, :destroy] do collection do + get :gitee + get :github get :all post :restore patch :update_default_branch