Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/api/resource_access_tokens.rb')
-rw-r--r--lib/api/resource_access_tokens.rb35
1 files changed, 28 insertions, 7 deletions
diff --git a/lib/api/resource_access_tokens.rb b/lib/api/resource_access_tokens.rb
index 2ba109b7092..754dfadb5fc 100644
--- a/lib/api/resource_access_tokens.rb
+++ b/lib/api/resource_access_tokens.rb
@@ -4,6 +4,8 @@ module API
class ResourceAccessTokens < ::API::Base
include PaginationParams
+ ALLOWED_RESOURCE_ACCESS_LEVELS = Gitlab::Access.options_with_owner.freeze
+
before { authenticate! }
feature_category :authentication_and_authorization
@@ -12,9 +14,12 @@ module API
resource source_type.pluralize, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
desc 'Get list of all access tokens for the specified resource' do
detail 'This feature was introduced in GitLab 13.9.'
+ is_array true
+ tags ["#{source_type}_access_tokens"]
+ success Entities::ResourceAccessToken
end
params do
- requires :id, type: String, desc: "The #{source_type} ID"
+ requires :id, types: [String, Integer], desc: "ID or URL-encoded path of the #{source_type}"
end
get ":id/access_tokens" do
resource = find_source(source_type, params[:id])
@@ -29,9 +34,11 @@ module API
desc 'Get an access token for the specified resource by ID' do
detail 'This feature was introduced in GitLab 14.10.'
+ tags ["#{source_type}_access_tokens"]
+ success Entities::ResourceAccessToken
end
params do
- requires :id, type: String, desc: "The #{source_type} ID"
+ requires :id, types: [String, Integer], desc: "ID or URL-encoded path of the #{source_type}"
requires :token_id, type: String, desc: "The ID of the token"
end
get ":id/access_tokens/:token_id" do
@@ -51,6 +58,12 @@ module API
desc 'Revoke a resource access token' do
detail 'This feature was introduced in GitLab 13.9.'
+ tags ["#{source_type}_access_tokens"]
+ success code: 204
+ failure [
+ { code: 400, message: 'Bad Request' },
+ { code: 404, message: 'Not found' }
+ ]
end
params do
requires :id, type: String, desc: "The #{source_type} ID"
@@ -75,13 +88,21 @@ module API
desc 'Create a resource access token' do
detail 'This feature was introduced in GitLab 13.9.'
+ tags ["#{source_type}_access_tokens"]
+ success Entities::ResourceAccessTokenWithToken
end
params do
- requires :id, type: String, desc: "The #{source_type} ID"
- requires :name, type: String, desc: "Resource access token name"
- requires :scopes, type: Array[String], desc: "The permissions of the token"
- optional :access_level, type: Integer, desc: "The access level of the token in the #{source_type}"
- optional :expires_at, type: Date, desc: "The expiration date of the token"
+ requires :id, type: String, desc: "The #{source_type} ID", documentation: { example: 2 }
+ requires :name, type: String, desc: "Resource access token name", documentation: { example: 'test' }
+ requires :scopes, type: Array[String], values: ::Gitlab::Auth.resource_bot_scopes.map(&:to_s),
+ desc: "The permissions of the token",
+ documentation: { example: %w[api read_repository] }
+ optional :access_level, type: Integer,
+ values: ALLOWED_RESOURCE_ACCESS_LEVELS.values,
+ default: Gitlab::Access::MAINTAINER,
+ desc: "The access level of the token in the #{source_type}",
+ documentation: { example: 40 }
+ optional :expires_at, type: Date, desc: "The expiration date of the token", documentation: { example: '"2021-01-31' }
end
post ':id/access_tokens' do
resource = find_source(source_type, params[:id])