diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-21 03:08:53 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-21 03:08:53 +0000 |
commit | 154cc38c02e19722893dcf32bad6dd1894e7404c (patch) | |
tree | afec672a3012adb6389e6e40ec9bad95aa788d87 /lib/api/internal/kubernetes.rb | |
parent | d588fa9e6e2b468b0dca16c746ceae8b6d8f9205 (diff) | |
download | gitlab-ce-154cc38c02e19722893dcf32bad6dd1894e7404c.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/api/internal/kubernetes.rb')
-rw-r--r-- | lib/api/internal/kubernetes.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/api/internal/kubernetes.rb b/lib/api/internal/kubernetes.rb index f7c6e48e54f..cfec2287ea3 100644 --- a/lib/api/internal/kubernetes.rb +++ b/lib/api/internal/kubernetes.rb @@ -54,6 +54,10 @@ module API ::Clusters::AgentTokens::TrackUsageService.new(agent_token).execute end + + def agent_has_access_to_project?(project) + Guest.can?(:download_code, project) || agent.has_access_to?(project) + end end namespace 'internal' do @@ -79,6 +83,24 @@ module API default_branch: project.default_branch_or_main } end + + desc 'Gets project info' do + detail 'Retrieves project info (if authorized)' + end + route_setting :authentication, cluster_agent_token_allowed: true + get '/project_info', urgency: :low do + project = find_project(params[:id]) + + not_found! unless agent_has_access_to_project?(project) + + status 200 + { + project_id: project.id, + gitaly_info: gitaly_info(project), + gitaly_repository: gitaly_repository(project), + default_branch: project.default_branch_or_main + } + end end namespace 'kubernetes/agent_configuration', urgency: :low do |