433 lines
12 KiB
YAML
433 lines
12 KiB
YAML
---
|
|
info:
|
|
title: GitLab API
|
|
version: v4
|
|
swagger: '2.0'
|
|
produces:
|
|
- application/json
|
|
securityDefinitions:
|
|
access_token_header:
|
|
type: apiKey
|
|
name: PRIVATE-TOKEN
|
|
in: header
|
|
access_token_query:
|
|
type: apiKey
|
|
name: private_token
|
|
in: query
|
|
host: gitlab.com
|
|
tags:
|
|
- name: user_counts
|
|
description: Operations about user_counts
|
|
- name: metadata
|
|
description: Operations related to metadata of the GitLab instance
|
|
- name: access_requests
|
|
description: Operations related to access requests
|
|
paths:
|
|
"/api/v4/groups/{id}/access_requests/{user_id}":
|
|
delete:
|
|
summary: Denies an access request for the given user.
|
|
description: This feature was introduced in GitLab 8.11.
|
|
produces:
|
|
- application/json
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
description: The ID or URL-encoded path of the group owned by the authenticated
|
|
user
|
|
type: string
|
|
required: true
|
|
- in: path
|
|
name: user_id
|
|
description: The user ID of the access requester
|
|
type: integer
|
|
format: int32
|
|
required: true
|
|
responses:
|
|
'204':
|
|
description: Denies an access request for the given user.
|
|
tags:
|
|
- access_requests
|
|
operationId: deleteApiV4GroupsIdAccessRequestsUserId
|
|
"/api/v4/groups/{id}/access_requests/{user_id}/approve":
|
|
put:
|
|
summary: Approves an access request for the given user.
|
|
description: This feature was introduced in GitLab 8.11.
|
|
produces:
|
|
- application/json
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
description: The ID or URL-encoded path of the group owned by the authenticated
|
|
user
|
|
type: string
|
|
required: true
|
|
- in: path
|
|
name: user_id
|
|
description: The user ID of the access requester
|
|
type: integer
|
|
format: int32
|
|
required: true
|
|
- in: formData
|
|
name: access_level
|
|
description: 'A valid access level (defaults: `30`, the Developer role)'
|
|
type: integer
|
|
format: int32
|
|
default: 30
|
|
required: false
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/API_Entities_AccessRequester"
|
|
examples:
|
|
successfull_response:
|
|
id: 1
|
|
username: raymond_smith
|
|
name: Raymond Smith
|
|
state: active
|
|
created_at: '2012-10-22T14:13:35Z'
|
|
access_level: 20
|
|
tags:
|
|
- access_requests
|
|
operationId: putApiV4GroupsIdAccessRequestsUserIdApprove
|
|
"/api/v4/groups/{id}/access_requests":
|
|
post:
|
|
summary: Requests access for the authenticated user to a group.
|
|
description: This feature was introduced in GitLab 8.11.
|
|
produces:
|
|
- application/json
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
description: The ID or URL-encoded path of the group owned by the authenticated
|
|
user
|
|
type: string
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/API_Entities_AccessRequester"
|
|
examples:
|
|
successfull_response:
|
|
id: 1
|
|
username: raymond_smith
|
|
name: Raymond Smith
|
|
state: active
|
|
created_at: '2012-10-22T14:13:35Z'
|
|
access_level: 20
|
|
tags:
|
|
- access_requests
|
|
operationId: postApiV4GroupsIdAccessRequests
|
|
get:
|
|
summary: Gets a list of access requests for a group.
|
|
description: This feature was introduced in GitLab 8.11.
|
|
produces:
|
|
- application/json
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
description: The ID or URL-encoded path of the group owned by the authenticated
|
|
user
|
|
type: string
|
|
required: true
|
|
- in: query
|
|
name: page
|
|
description: Current page number
|
|
type: integer
|
|
format: int32
|
|
default: 1
|
|
required: false
|
|
- in: query
|
|
name: per_page
|
|
description: Number of items per page
|
|
type: integer
|
|
format: int32
|
|
default: 20
|
|
required: false
|
|
responses:
|
|
'200':
|
|
description: Gets a list of access requests for a group.
|
|
schema:
|
|
"$ref": "#/definitions/API_Entities_AccessRequester"
|
|
tags:
|
|
- access_requests
|
|
operationId: getApiV4GroupsIdAccessRequests
|
|
"/api/v4/projects/{id}/access_requests/{user_id}":
|
|
delete:
|
|
summary: Denies an access request for the given user.
|
|
description: This feature was introduced in GitLab 8.11.
|
|
produces:
|
|
- application/json
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
description: The ID or URL-encoded path of the project owned by the authenticated
|
|
user
|
|
type: string
|
|
required: true
|
|
- in: path
|
|
name: user_id
|
|
description: The user ID of the access requester
|
|
type: integer
|
|
format: int32
|
|
required: true
|
|
responses:
|
|
'204':
|
|
description: Denies an access request for the given user.
|
|
tags:
|
|
- access_requests
|
|
operationId: deleteApiV4ProjectsIdAccessRequestsUserId
|
|
"/api/v4/projects/{id}/access_requests/{user_id}/approve":
|
|
put:
|
|
summary: Approves an access request for the given user.
|
|
description: This feature was introduced in GitLab 8.11.
|
|
produces:
|
|
- application/json
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
description: The ID or URL-encoded path of the project owned by the authenticated
|
|
user
|
|
type: string
|
|
required: true
|
|
- in: path
|
|
name: user_id
|
|
description: The user ID of the access requester
|
|
type: integer
|
|
format: int32
|
|
required: true
|
|
- in: formData
|
|
name: access_level
|
|
description: 'A valid access level (defaults: `30`, the Developer role)'
|
|
type: integer
|
|
format: int32
|
|
default: 30
|
|
required: false
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/API_Entities_AccessRequester"
|
|
examples:
|
|
successfull_response:
|
|
id: 1
|
|
username: raymond_smith
|
|
name: Raymond Smith
|
|
state: active
|
|
created_at: '2012-10-22T14:13:35Z'
|
|
access_level: 20
|
|
tags:
|
|
- access_requests
|
|
operationId: putApiV4ProjectsIdAccessRequestsUserIdApprove
|
|
"/api/v4/projects/{id}/access_requests":
|
|
post:
|
|
summary: Requests access for the authenticated user to a project.
|
|
description: This feature was introduced in GitLab 8.11.
|
|
produces:
|
|
- application/json
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
description: The ID or URL-encoded path of the project owned by the authenticated
|
|
user
|
|
type: string
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/API_Entities_AccessRequester"
|
|
examples:
|
|
successfull_response:
|
|
id: 1
|
|
username: raymond_smith
|
|
name: Raymond Smith
|
|
state: active
|
|
created_at: '2012-10-22T14:13:35Z'
|
|
access_level: 20
|
|
tags:
|
|
- access_requests
|
|
operationId: postApiV4ProjectsIdAccessRequests
|
|
get:
|
|
summary: Gets a list of access requests for a project.
|
|
description: This feature was introduced in GitLab 8.11.
|
|
produces:
|
|
- application/json
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
description: The ID or URL-encoded path of the project owned by the authenticated
|
|
user
|
|
type: string
|
|
required: true
|
|
- in: query
|
|
name: page
|
|
description: Current page number
|
|
type: integer
|
|
format: int32
|
|
default: 1
|
|
required: false
|
|
- in: query
|
|
name: per_page
|
|
description: Number of items per page
|
|
type: integer
|
|
format: int32
|
|
default: 20
|
|
required: false
|
|
responses:
|
|
'200':
|
|
description: Gets a list of access requests for a project.
|
|
schema:
|
|
"$ref": "#/definitions/API_Entities_AccessRequester"
|
|
tags:
|
|
- access_requests
|
|
operationId: getApiV4ProjectsIdAccessRequests
|
|
"/api/v4/user_counts":
|
|
get:
|
|
summary: Return the user specific counts
|
|
description: Assigned open issues, assigned MRs and pending todos count
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Return the user specific counts
|
|
schema:
|
|
"$ref": "#/definitions/API_Entities_UserCounts"
|
|
tags:
|
|
- user_counts
|
|
operationId: getApiV4UserCounts
|
|
"/api/v4/metadata":
|
|
get:
|
|
summary: Retrieve metadata information for this GitLab instance.
|
|
description: This feature was introduced in GitLab 15.2.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/API_Entities_Metadata"
|
|
examples:
|
|
successful_response:
|
|
value:
|
|
version: 15.0-pre
|
|
revision: c401a659d0c
|
|
kas:
|
|
enabled: true
|
|
externalUrl: grpc://gitlab.example.com:8150
|
|
version: 15.0.0
|
|
'401':
|
|
description: unauthorized operation
|
|
tags:
|
|
- metadata
|
|
operationId: getApiV4Metadata
|
|
"/api/v4/version":
|
|
get:
|
|
summary: Get the version information of the GitLab instance.
|
|
description: This feature was introduced in GitLab 8.13 and deprecated in 15.5.
|
|
We recommend you instead use the Metadata API.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/API_Entities_Metadata"
|
|
examples:
|
|
Example:
|
|
value:
|
|
version: 15.0-pre
|
|
revision: c401a659d0c
|
|
kas:
|
|
enabled: true
|
|
externalUrl: grpc://gitlab.example.com:8150
|
|
version: 15.0.0
|
|
'401':
|
|
description: unauthorized operation
|
|
tags:
|
|
- metadata
|
|
operationId: getApiV4Version
|
|
definitions:
|
|
API_Entities_AccessRequester:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
name:
|
|
type: string
|
|
state:
|
|
type: string
|
|
avatar_url:
|
|
type: string
|
|
avatar_path:
|
|
type: string
|
|
custom_attributes:
|
|
"$ref": "#/definitions/API_Entities_CustomAttribute"
|
|
web_url:
|
|
type: string
|
|
is_gitlab_employee:
|
|
type: string
|
|
email:
|
|
type: string
|
|
requested_at:
|
|
type: string
|
|
description: API_Entities_AccessRequester model
|
|
API_Entities_CustomAttribute:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
API_Entities_UserCounts:
|
|
type: object
|
|
properties:
|
|
merge_requests:
|
|
type: integer
|
|
format: int32
|
|
example: 10
|
|
assigned_issues:
|
|
type: integer
|
|
format: int32
|
|
example: 10
|
|
assigned_merge_requests:
|
|
type: integer
|
|
format: int32
|
|
example: 10
|
|
review_requested_merge_requests:
|
|
type: integer
|
|
format: int32
|
|
example: 10
|
|
todos:
|
|
type: integer
|
|
format: int32
|
|
example: 10
|
|
description: API_Entities_UserCounts model
|
|
API_Entities_Metadata:
|
|
type: object
|
|
properties:
|
|
version:
|
|
type: string
|
|
revision:
|
|
type: string
|
|
kas:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
externalUrl:
|
|
type: string
|
|
version:
|
|
type: string
|
|
description: API_Entities_Metadata model
|