사용자 애플리케이션 API
GitLab v19.1Offering: GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 다음과 같은 사용자 수준 OAuth 애플리케이션을 관리합니다: GitLab을 인증 공급자로 사용합니다. 사용자를 대신하여 GitLab 리소스에 액세스를 허용합니다. 인스턴스 전체 애플리케이션을 관리하려면 애플리케이션 API를 사용하세요.
이 API를 사용하여 다음과 같은 사용자 수준 OAuth 애플리케이션을 관리합니다:
인스턴스 전체 애플리케이션을 관리하려면 애플리케이션 API를 사용하세요.
사전 조건:
- 관리자 액세스 권한이 있거나 애플리케이션을 소유한 사용자로 인증되어야 합니다.
애플리케이션 생성#
인증된 사용자를 위한 새 OAuth 애플리케이션을 생성합니다.
요청이 성공하면 201을 반환합니다.
POST /user/applications
지원되는 속성:
| 속성 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| name | string | yes | 애플리케이션 이름. |
| redirect_uri | string | yes | 애플리케이션의 리디렉션 URI. |
| scopes | string | yes | 애플리케이션에서 사용할 수 있는 스코프. 여러 스코프는 공백으로 구분합니다. |
| confidential | boolean | no | true인 경우 애플리케이션이 클라이언트 시크릿과 같은 클라이언트 자격 증명을 안전하게 저장할 수 있습니다. 비기밀 애플리케이션(예: 네이티브 모바일 앱, 싱글 페이지 앱)은 클라이언트 자격 증명을 노출할 수 있습니다. 지정하지 않으면 기본값은 true입니다. |
요청 예시:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--data "name=MyApplication&redirect_uri=http://redirect.uri&scopes=api read_user email" \
--url "https://gitlab.example.com/api/v4/user/applications"
응답 예시:
{
"id":1,
"application_id": "5832fc6e14300a0d962240a8144466eef4ee93ef0d218477e55f11cf12fc3737",
"application_name": "MyApplication",
"secret": "ee1dd64b6adc89cf7e2c23099301ccc2c61b441064e9324d963c46902a85ec34",
"callback_url": "http://redirect.uri",
"confidential": true
}
모든 애플리케이션 목록 조회#
인증된 사용자가 소유한 모든 애플리케이션을 나열합니다.
GET /user/applications
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/user/applications"
응답 예시:
[
{
"id":1,
"application_id": "5832fc6e14300a0d962240a8144466eef4ee93ef0d218477e55f11cf12fc3737",
"application_name": "MyApplication",
"callback_url": "http://redirect.uri",
"confidential": true
}
]
특정 애플리케이션 조회#
인증된 사용자가 소유한 특정 애플리케이션의 세부 정보를 조회합니다.
요청이 성공하면 200을 반환합니다.
GET /user/applications/:id
지원되는 속성:
| 속성 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| id | integer | yes | 애플리케이션의 ID. application_id와 다릅니다. |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/user/applications/:id"
응답 예시:
{
"id":1,
"application_id": "5832fc6e14300a0d962240a8144466eef4ee93ef0d218477e55f11cf12fc3737",
"application_name": "MyApplication",
"callback_url": "http://redirect.uri",
"confidential": true
}
애플리케이션 수정#
인증된 사용자가 소유한 기존 애플리케이션을 업데이트합니다.
요청이 성공하면 200을 반환합니다.
PUT /user/applications/:id
지원되는 속성:
| 속성 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| id | integer | yes | 애플리케이션의 ID. application_id와 다릅니다. |
| name | string | no | 애플리케이션 이름. |
| scopes | string | no | 애플리케이션에서 사용할 수 있는 스코프. 여러 스코프는 공백으로 구분합니다. |
요청 예시:
curl --request PUT \
--header "PRIVATE-TOKEN: <your_access_token>" \
--data "name=UpdatedApplication" \
--url "https://gitlab.example.com/api/v4/user/applications/:id"
응답 예시:
{
"id":1,
"application_id": "5832fc6e14300a0d962240a8144466eef4ee93ef0d218477e55f11cf12fc3737",
"application_name": "UpdatedApplication",
"callback_url": "http://redirect.uri",
"confidential": true
}
애플리케이션 삭제#
인증된 사용자가 소유한 지정된 애플리케이션을 삭제합니다.
요청이 성공하면 204를 반환합니다.
DELETE /user/applications/:id
지원되는 속성:
| 속성 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| id | integer | yes | 애플리케이션의 ID. application_id와 다릅니다. |
요청 예시:
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/user/applications/:id"