- 사용자 디렉터리
- 단일 사용자
- 사용자 생성
- 사용자 수정
- 사용자 인증 식별 정보 삭제
- 사용자 삭제
- 현재 사용자 디렉터리
- 사용자 상태
- 사용자 상태 가져오기
- 사용자 상태 설정
- 사용자 환경 설정 가져오기
- 사용자 환경 설정 변경
- 사용자 팔로우
- 사용자 카운트
- 서비스 계정 사용자 생성
- 사용자 프로젝트 디렉터리
- 사용자의 연관 카운트 디렉터리
- SSH 키 디렉터리
- 사용자의 SSH 키 디렉터리
- 개별 SSH 키
- 지정된 사용자의 개별 SSH 키
- SSH 키 추가
- 사용자용 SSH 키 추가
- 현재 사용자의 SSH 키 삭제
- 지정된 사용자의 SSH 키 삭제
- 모든 GPG 키 나열
- 특정 GPG 키 가져오기
- GPG 키 추가
- GPG 키 삭제
- 특정 사용자의 모든 GPG 키 나열
- 지정된 사용자를 위한 특정 GPG 키 가져오기
- 지정된 사용자를 위한 GPG 키 추가
- 특정 사용자의 GPG 키 삭제
- 이메일 디렉터리
- 사용자 이메일 디렉터리
- 단일 이메일
- 이메일 추가
- 사용자용 이메일 추가
- 현재 사용자용 이메일 삭제
- 지정된 사용자용 이메일 삭제
- 사용자 차단
- 사용자 차단 해제
- 사용자 비활성화
- 사용자 활성화
- 사용자 차단
- 사용자 차단 해제
- 사용자 기여 이벤트 가져오기
- 사용자의 모든 표준화된 토큰 가져오기
- 사용자 승인
- 사용자 거부
- 사용자의 표준화된 토큰 가져오기
- 표준화된 토큰 생성
- 사용자 위임 토큰 취소
- 개인 액세스 토큰 생성
- 현재 인증된 사용자를 위한 제한된 범위를 가진 개인 액세스 토큰 생성
- 사용자 활동 가져오기
- 사용자 멤버십
- 이중 인증 비활성화
- 사용자에 연결된 러너 생성
- 현재 사용자 아바타 업로드
사용자 API
이 문서에는 사용자 API의 API 호출, 매개변수 및 응답에 대한 정보가 있습니다.
사용자 활동을 업데이트하는 사용자 이벤트 타임스탬프에 대한 정보는 사용자 활동 가져오기를 참조하세요.
사용자 디렉터리
사용자 디렉터리을 가져옵니다.
이 기능은 사용자 디렉터리을 제한하기 위해 페이지네이션 매개변수 page
와 per_page
를 사용합니다.
관리자가 아닌 사용자용
GET /users
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
username
| string | 아니요 | 특정 사용자 이름의 사용자를 가져옵니다. |
search
| string | 아니요 | 사용자 이름을 검색합니다. |
active
| boolean | 아니요 | 활성 사용자만 필터링합니다. 기본값은 false 입니다.
|
external
| boolean | 아니요 | 외부 사용자만 필터링합니다. 기본값은 false 입니다.
|
exclude_external
| boolean | 아니요 | 외부 사용자를 제외하고 필터링합니다. 기본값은 false 입니다.
|
blocked
| boolean | 아니요 | 차단된 사용자만 필터링합니다. 기본값은 false 입니다.
|
created_after
| DateTime | 아니요 | 지정된 시간 이후에 만들어진 사용자를 반환합니다. |
created_before
| DateTime | 아니요 | 지정된 시간 이전에 만들어진 사용자를 반환합니다. |
exclude_internal
| boolean | 아니요 | 내부 사용자만 필터링합니다. 기본값은 false 입니다.
|
without_project_bots
| boolean | 아니요 | 프로젝트 봇 없이 사용자를 필터링합니다. 기본값은 false 입니다.
|
[
{
"id": 1,
"username": "john_smith",
"name": "John Smith",
"state": "active",
"locked": false,
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg",
"web_url": "http://localhost:3000/john_smith"
},
{
"id": 2,
"username": "jack_smith",
"name": "Jack Smith",
"state": "blocked",
"locked": false,
"avatar_url": "http://gravatar.com/../e32131cd8.jpeg",
"web_url": "http://localhost:3000/jack_smith"
}
]
이 엔드포인트는 키셋 페이지네이션을 지원합니다. GitLab 16.5에서 키팅 페이지네이션이 소개되었습니다.
또한 ?search=
를 사용하여 이름, 사용자 이름 또는 공개 이메일로 사용자를 검색할 수 있습니다. 예를 들어 /users?search=John
을 사용할 수 있습니다. 다음을 검색할 수 있습니다:
- 공개 이메일의 경우 정확한 일치를 얻으려면 전체 이메일 주소를 사용해야 합니다. 검색 결과가 부분적으로 일치할 수 있습니다. 예를 들어
on@example.com
이메일을 검색하면 검색은on@example.com
및jon@example.com
둘 다 반환할 수 있습니다. - 이름 또는 사용자 이름의 경우 정확한 일치를 얻을 필요는 없습니다. 왜냐하면 이것은 퍼지 검색이기 때문입니다.
또한 사용자 이름으로 사용자를 조회할 수 있습니다.
GET /users?username=:username
예를 들어:
GET /users?username=jack_smith
또한, 상태 blocked
및 active
에 따라 사용자를 필터링할 수 있습니다.
active=false
또는 blocked=false
를 지원하지 않습니다.
GET /users?active=true
GET /users?blocked=true
또한, external=true
를 사용하여 외부 사용자만 검색할 수 있습니다.
external=false
를 지원하지 않습니다.
GET /users?external=true
GitLab은 알림 봇이나 지원 봇과 같은 봇 사용자를 지원합니다.
exclude_internal=true
매개변수를 사용하여 다음 유형의 내부 사용자를 사용자 디렉터리에서 제외할 수 있습니다:
- 알림 봇
- 지원 봇
그러나 이 작업에서는 프로젝트의 봇 사용자나 그룹의 봇 사용자가 제외되지 않습니다.
GET /users?exclude_internal=true
또한, 사용자 디렉터리에서 외부 사용자를 제외하려면 exclude_external=true
매개변수를 사용할 수 있습니다.
GET /users?exclude_external=true
프로젝트의 봇 사용자 및 그룹의 봇 사용자를 제외하려면
without_project_bots=true
매개변수를 사용할 수 있습니다.
GET /users?without_project_bots=true
관리자용
- 응답의
created_by
필드는 GitLab 15.6에서 소개되었습니다.- 응답의
scim_identities
필드는 GitLab 16.1에서 소개되었습니다.- 응답의
auditors
필드는 GitLab 16.2에서 소개되었습니다.- 응답의
email_reset_offered_at
필드는 GitLab 16.7에서 소개되었습니다.
GET /users
모든 모두를 위한 사용 가능한 매개변수와 관리자 전용 추가 매개변수를 사용할 수 있습니다.
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
extern_uid
| string | 아니요 | 특정 외부 인증 제공자 UID를 가진 단일 사용자를 가져옵니다. |
provider
| string | 아니요 | 외부 제공자입니다. |
order_by
| string | 아니요 | 사용자를 id , name , username , created_at , 또는 updated_at 필드로 정렬하여 반환합니다. 기본값은 id 입니다.
|
sort
| string | 아니요 | 사용자를 asc 또는 desc 순으로 정렬하여 반환합니다. 기본값은 desc 입니다.
|
two_factor
| string | 아니요 | 이중 인증을 통해 사용자를 필터링합니다. 필터 값은 enabled 또는 disabled 입니다. 기본적으로 모든 사용자가 반환됩니다.
|
without_projects
| boolean | 아니요 | 프로젝트를 갖지 않는 사용자를 필터링합니다. 기본값은 false 이며 프로젝트가 있는 사용자와 없는 사용자가 모두 반환됩니다.
|
admins
| boolean | 아니요 | 관리자만 반환합니다. 기본값은 false 입니다.
|
auditors
| boolean | 아니요 | 감사원 사용자만 반환합니다. 기본값은 false 입니다. 포함되지 않으면 모든 사용자가 반환됩니다. Premium 및 Ultimate 전용입니다.
|
saml_provider_id
| number | 아니요 | 지정된 SAML 제공자 ID로 생성된 사용자만 반환합니다. 포함되지 않으면 모든 사용자가 반환됩니다. Premium 및 Ultimate 전용입니다. |
skip_ldap
| boolean | 아니요 | LDAP 사용자를 제외합니다. Premium 및 Ultimate 전용입니다. |
[
{
"id": 1,
"username": "john_smith",
"email": "john@example.com",
"name": "John Smith",
"state": "active",
"locked": false,
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/index.jpg",
"web_url": "http://localhost:3000/john_smith",
"created_at": "2012-05-23T08:00:58Z",
"is_admin": false,
"bio": "",
"location": null,
"skype": "",
"linkedin": "",
"twitter": "",
"discord": "",
"website_url": "",
"organization": "",
"job_title": "",
"last_sign_in_at": "2012-06-01T11:41:01Z",
"confirmed_at": "2012-05-23T09:05:22Z",
"theme_id": 1,
"last_activity_on": "2012-05-23",
"color_scheme_id": 2,
"projects_limit": 100,
"current_sign_in_at": "2012-06-02T06:36:55Z",
"note": "DMCA Request: 2018-11-05 | DMCA Violation | Abuse | https://gitlab.zendesk.com/agent/tickets/123",
"identities": [
{"provider": "github", "extern_uid": "2435223452345"},
{"provider": "bitbucket", "extern_uid": "john.smith"},
{"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"}
],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": true,
"external": false,
"private_profile": false,
"current_sign_in_ip": "196.165.1.102",
"last_sign_in_ip": "172.127.2.22",
"namespace_id": 1,
"created_by": null,
"email_reset_offered_at": null
},
{
"id": 2,
"username": "jack_smith",
"email": "jack@example.com",
"name": "Jack Smith",
"state": "blocked",
"locked": false,
"avatar_url": "http://localhost:3000/uploads/user/avatar/2/index.jpg",
"web_url": "http://localhost:3000/jack_smith",
"created_at": "2012-05-23T08:01:01Z",
"is_admin": false,
"bio": "",
"location": null,
"skype": "",
"linkedin": "",
"twitter": "",
"discord": "",
"website_url": "",
"organization": "",
"job_title": "",
"last_sign_in_at": null,
"confirmed_at": "2012-05-30T16:53:06.148Z",
"theme_id": 1,
"last_activity_on": "2012-05-23",
"color_scheme_id": 3,
"projects_limit": 100,
"current_sign_in_at": "2014-03-19T17:54:13Z",
"identities": [],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": true,
"external": false,
"private_profile": false,
"current_sign_in_ip": "10.165.1.102",
"last_sign_in_ip": "172.127.2.22",
"namespace_id": 2,
"created_by": null,
"email_reset_offered_at": null
}
]
GitLab Premium 또는 Ultimate를 사용하는 사용자는 shared_runners_minutes_limit
, extra_shared_runners_minutes_limit
, is_auditor
, using_license_seat
매개변수를 볼 수 있습니다.
[
{
"id": 1,
...
"shared_runners_minutes_limit": 133,
"extra_shared_runners_minutes_limit": 133,
"is_auditor": false,
"using_license_seat": true
...
}
]
GitLab Premium 또는 Ultimate를 사용하는 사용자는 group_saml
제공자 옵션과 provisioned_by_group_id
매개변수를 볼 수도 있습니다:
[
{
"id": 1,
...
"identities": [
{"provider": "github", "extern_uid": "2435223452345"},
{"provider": "bitbucket", "extern_uid": "john.smith"},
{"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"},
{"provider": "group_saml", "extern_uid": "123789", "saml_provider_id": 10}
],
"provisioned_by_group_id": 123789
...
}
]
또한, external_uid
및 제공자별로 사용자를 조회할 수 있습니다:
GET /users?extern_uid=:extern_uid&provider=:provider
예를 들어:
GET /users?extern_uid=1234567&provider=github
GitLab Premium 또는 Ultimate를 사용하는 사용자는 scim
제공자를 사용할 수 있습니다:
GET /users?extern_uid=1234567&provider=scim
created_before
및 created_after
를 사용하여 사용자의 생성 날짜 및 시간 범위로 검색할 수 있습니다:
GET /users?created_before=2001-01-02T00:00:00.060Z&created_after=1999-01-02T00:00:00.060
프로젝트가 없는 사용자를 검색할 수 있습니다: /users?without_projects=true
사용자 지정 속성으로 필터링할 수 있습니다:
GET /users?custom_attributes[key]=value&custom_attributes[other_key]=other_value
응답에 사용자 지정 속성을 포함할 수 있습니다:
GET /users?with_custom_attributes=true
created_by
매개변수를 사용하여 사용자 계정이 다음에 의해 생성되었는지 확인할 수 있습니다:
- 관리자에 의해 매뉴얼으로 만들어진 경우.
- 프로젝트 봇 사용자로 만들어진 경우.
반환된 값이 null
인 경우, 계정은 자체 등록한 사용자에 의해 생성된 것입니다.
단일 사용자
단일 사용자를 가져옵니다.
사용자용
필수 사항:
- 이 엔드포인트를 사용하려면 로그인해야 합니다.
GET /users/:id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 사용자 ID |
{
"id": 1,
"username": "john_smith",
"name": "John Smith",
"state": "active",
"locked": false,
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg",
"web_url": "http://localhost:3000/john_smith",
"created_at": "2012-05-23T08:00:58Z",
"bio": "",
"bot": false,
"location": null,
"public_email": "john@example.com",
"skype": "",
"linkedin": "",
"twitter": "",
"discord": "",
"website_url": "",
"organization": "",
"job_title": "Operations Specialist",
"pronouns": "he/him",
"work_information": null,
"followers": 1,
"following": 1,
"local_time": "3:38 PM",
"is_followed": false
}
관리자용
- 응답의
namespace_id
필드는 GitLab 14.10에서 소개되었습니다.- 응답의
created_by
필드는 GitLab 15.6에서 소개되었습니다.- 응답의
email_reset_offered_at
필드는 GitLab 16.7에서 소개되었습니다.
GET /users/:id
예시 응답:
{
"id": 1,
"username": "john_smith",
"email": "john@example.com",
"name": "John Smith",
"state": "active",
"locked": false,
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/index.jpg",
"web_url": "http://localhost:3000/john_smith",
"created_at": "2012-05-23T08:00:58Z",
"is_admin": false,
"bio": "",
"location": null,
"public_email": "john@example.com",
"skype": "",
"linkedin": "",
"twitter": "",
"discord": "",
"website_url": "",
"organization": "",
"job_title": "Operations Specialist",
"pronouns": "he/him",
"work_information": null,
"followers": 1,
"following": 1,
"local_time": "3:38 PM",
"last_sign_in_at": "2012-06-01T11:41:01Z",
"confirmed_at": "2012-05-23T09:05:22Z",
"theme_id": 1,
"last_activity_on": "2012-05-23",
"color_scheme_id": 2,
"projects_limit": 100,
"current_sign_in_at": "2012-06-02T06:36:55Z",
"note": "DMCA Request: 2018-11-05 | DMCA Violation | Abuse | https://gitlab.zendesk.com/agent/tickets/123",
"identities": [
{"provider": "github", "extern_uid": "2435223452345"},
{"provider": "bitbucket", "extern_uid": "john.smith"},
{"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"}
],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": true,
"external": false,
"private_profile": false,
"commit_email": "john-codes@example.com",
"current_sign_in_ip": "196.165.1.102",
"last_sign_in_ip": "172.127.2.22",
"plan": "gold",
"trial": true,
"sign_in_count": 1337,
"namespace_id": 1,
"created_by": null,
"email_reset_offered_at": null
}
plan
및 trial
매개변수는 GitLab 엔터프라이즈 에디션에서만 사용할 수 있습니다.GitLab Premium 또는 Ultimate 사용자는 shared_runners_minutes_limit
, is_auditor
, extra_shared_runners_minutes_limit
매개변수도 볼 수 있습니다.
{
"id": 1,
"username": "john_smith",
"is_auditor": false,
"shared_runners_minutes_limit": 133,
"extra_shared_runners_minutes_limit": 133,
...
}
GitLab.com Premium 또는 Ultimate 사용자는 group_saml
옵션 및 provisioned_by_group_id
매개변수도 볼 수 있습니다.
{
"id": 1,
"username": "john_smith",
"shared_runners_minutes_limit": 133,
"extra_shared_runners_minutes_limit": 133,
"identities": [
{"provider": "github", "extern_uid": "2435223452345"},
{"provider": "bitbucket", "extern_uid": "john.smith"},
{"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"},
{"provider": "group_saml", "extern_uid": "123789", "saml_provider_id": 10}
],
"provisioned_by_group_id": 123789
...
}
GitLab.com Premium 또는 Ultimate 사용자는 scim_identities
매개변수도 볼 수 있습니다.
{
...
"extra_shared_runners_minutes_limit": null,
"scim_identities": [
{"extern_uid": "2435223452345", "group_id": "3", "active": true},
{"extern_uid": "john.smith", "group_id": "42", "active": false}
]
...
}
관리자는 created_by
매개변수를 사용하여 사용자 계정이 다음 중 어떤 방식으로 생성되었는지 확인할 수 있습니다:
- 관리자에 의해 매뉴얼으로 생성됨.
- 프로젝트 봇 사용자로 생성됨.
반환된 값이 null
인 경우 계정은 사용자가 직접 등록한 것입니다.
응답에 사용자 정의 속성을 포함하려면 다음과 같이 요청할 수 있습니다:
GET /users/:id?with_custom_attributes=true
사용자 생성
- 응답의
namespace_id
필드는 GitLab 14.10에서 소개되었습니다.- 감사자 사용자를 생성할 수 있는 기능은 GitLab 15.3에서 소개되었습니다.
새로운 사용자를 생성합니다. 관리자만 새로운 사용자를 생성할 수 있습니다.
password
, reset_password
, 또는 force_random_password
중 하나를 지정해야 합니다.
reset_password
및 force_random_password
둘 다 false
일 경우 password
가 필요합니다.
force_random_password
및 reset_password
이 password
보다 우선합니다.
또한 reset_password
및 force_random_password
를 같이 사용할 수 있습니다.
POST /users
매개변수:
속성 | 필수 | 설명 |
---|---|---|
admin
| 아니오 | 사용자가 관리자임. true 또는 false 의 유효한 값입니다. 기본값은 false입니다.
|
auditor
| 아니오 | 사용자가 감사자임. true 또는 false 의 유효한 값입니다. 기본값은 false입니다. GitLab 15.3에서 소개되었으며 Premium 및 Ultimate 전용입니다.
|
avatar
| 아니오 | 사용자 아바타의 이미지 파일 |
bio
| 아니오 | 사용자의 전기 |
can_create_group
| 아니오 | 사용자가 최상위 그룹을 만들 수 있는지 여부 - true 또는 false |
color_scheme_id
| 아니오 | 파일 뷰어용 사용자 색 구성표(자세한 내용은 사용자 환경 설정 설명서 참조)의 사용자 색 구성표 |
commit_email
| 아니오 | 사용자의 커밋 이메일 주소 |
email
| 예 | 이메일 |
extern_uid
| 아니오 | 외부 UID |
external
| 아니오 | 사용자를 외부로 플래그 설정 - true 또는 false (기본값) |
extra_shared_runners_minutes_limit
| 아니오 | 관리자만 설정할 수 있습니다. 이 사용자의 추가 계산 분. Premium 및 Ultimate 전용. |
force_random_password
| 아니오 | 사용자 암호를 무작위 값으로 설정 - true 또는 false (기본값) |
group_id_for_saml
| 아니오 | SAML이 구성된 그룹의 ID |
linkedin
| 아니오 | |
location
| 아니오 | 사용자의 위치 |
name
| 예 | 이름 |
note
| 아니오 | 해당 사용자에 대한 관리자 메모 |
organization
| 아니오 | 조직 이름 |
password
| 아니오 | 암호 |
private_profile
| 아니오 | 사용자 프로필이 비공개인지 - true 또는 false. 기본값은 이 설정에 따라 결정됩니다. |
projects_limit
| 아니오 | 사용자가 만들 수 있는 프로젝트 수 |
pronouns
| 아니오 | 사용자의 대명사 |
provider
| 아니오 | 외부 제공자 이름 |
public_email
| 아니오 | 사용자의 공개적인 이메일 주소 |
reset_password
| 아니오 | 사용자 암호 재설정 링크 보내기 - true 또는 false (기본값) |
shared_runners_minutes_limit
| 아니오 | 관리자만 설정할 수 있습니다. 이 사용자의 월별 최대 계산 분. nil (기본값; 시스템 기본값 상속), 0 (무제한) 또는 > 0 일 수 있습니다. Premium 및 Ultimate 전용.
|
skip_confirmation
| 아니오 | 확인 건너뛰기 - true 또는 false (기본값) |
skype
| 아니오 | Skype ID |
theme_id
| 아니오 | 사용자를 위한 GitLab 테마(자세한 내용은 사용자 환경 설정 설명서 참조)의 테마 |
twitter
| 아니오 | X (이전 트위터) 계정 |
discord
| 아니오 | 디스코드 계정 |
username
| 예 | 사용자명 |
view_diffs_file_by_file
| 아니오 | 사용자가 페이지당 파일 차이만 볼 수 있는 플래그 |
website_url
| 아니오 | 웹사이트 URL |
사용자 수정
기존 사용자를 수정합니다. 사용자의 속성을 변경할 수 있는 권한은 관리자만 가지고 있습니다.
email
필드는 사용자의 기본 이메일 주소입니다. 해당 필드를 이미 추가 된 보조 이메일 주소로만 변경할 수 있습니다. 동일한 사용자에 대해 더 많은 이메일 주소를 추가하려면 이메일 추가 기능을 사용하세요.
PUT /users/:id
매개변수:
속성 | 필수 | 설명 |
---|---|---|
admin
| 아니오 | 사용자가 관리자인지 여부입니다. true 또는 false 의 유효한 값입니다. 기본값은 false 입니다.
|
auditor
| 아니오 | 사용자가 감사자인지 여부입니다. true 또는 false 의 유효한 값입니다. 기본값은 false 입니다. GitLab 15.3에 도입되었습니다.(기본) Premium 및 Ultimate 전용.
|
avatar
| 아니오 | 사용자 아바타의 이미지 파일 |
bio
| 아니오 | 사용자 자기 소개 |
can_create_group
| 아니오 | 사용자가 그룹을 만들 수 있는지 여부 - true 또는 false |
color_scheme_id
| 아니오 | 사용자 파일 뷰어의 색 구성표(자세한 내용은 여기를 참조하십시오. 사용자 기본 설정 설명서) |
commit_email
| 아니오 | 사용자의 커밋 이메일입니다. 비공개 커밋 이메일을 사용하려면 _private 로 설정하세요. GitLab 15.5에서 도입되었습니다.
|
email
| 아니오 | 이메일 |
extern_uid
| 아니오 | 외부 UID |
external
| 아니오 | 사용자를 외부로 표시 여부 - true 또는 false (기본) |
extra_shared_runners_minutes_limit
| 아니오 | 관리자만 설정할 수 있습니다. 사용자의 추가 계산 분. Premium 및 Ultimate 전용. |
group_id_for_saml
| 아니오 | SAML이 구성된 그룹의 ID |
id
| 예 | 사용자의 ID |
linkedin
| 아니오 | |
location
| 아니오 | 사용자 위치 |
name
| 아니오 | 이름 |
note
| 아니오 | 해당 사용자에 대한 관리자 참고 사항 |
organization
| 아니오 | 조직 이름 |
password
| 아니오 | 비밀번호 |
private_profile
| 아니오 | 사용자 프로필이 비공개인지 여부 - true 또는 false. |
projects_limit
| 아니오 | 각 사용자가 만들 수 있는 프로젝트 제한 |
pronouns
| 아니오 | 대명사 |
provider
| 아니오 | 외부 제공업체 이름 |
public_email
| 아니오 | 사용자의 공개 이메일(이미 확인된) |
shared_runners_minutes_limit
| 아니오 | 관리자만 설정할 수 있습니다. 사용자의 월별 최대 계산 분. nil (기본; 시스템 기본값 상속), 0 (무제한) 또는 > 0 가 될 수 있습니다. Premium 및 Ultimate 전용.
|
skip_reconfirmation
| 아니오 | 재확인 건너뛰기 - true 또는 false (기본) |
skype
| 아니오 | Skype ID |
theme_id
| 아니오 | 사용자의 GitLab 테마(자세한 내용은 여기를 참조하십시오. 사용자 기본 설정 설명서) |
twitter
| 아니오 | X(이전 Twitter) 계정 |
discord
| 아니오 | Discord 계정 |
username
| 아니오 | 사용자 이름 |
view_diffs_file_by_file
| 아니오 | 사용자가 페이지별로 파일 차이만 볼 수 있는지 여부를 나타내는 플래그 |
website_url
| 아니오 | 웹사이트 URL |
비밀번호를 업데이트하면 사용자가 다음 로그인 시에 변경하도록 강제됩니다. 현재 이 방법은 409
(충돌)가 더 적절한 경우에조차도 404
에러만 반환합니다. 예를 들어, 이메일 주소를 기존의 이메일 주소로 변경하는 경우.
사용자 인증 식별 정보 삭제
관리자만 사용 가능하며 공급업체 이름과 연결된 사용자의 인증 식별 정보를 삭제합니다.
DELETE /users/:id/identities/:provider
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 사용자 ID |
provider
| 문자열 | 예 | 외부 제공업체 이름 |
사용자 삭제
관리자만 사용 가능합니다. 사용자를 삭제합니다. 이 작업이 성공적이면 204 No Content
상태 코드가 반환되고, 리소스를 찾을 수 없는 경우 404
, 사용자를 소프트 삭제할 수 없는 경우 409
가 반환됩니다.
DELETE /users/:id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 사용자 ID |
hard_delete
| 부울 | 아니오 | true인 경우, 일반적으로 Ghost User로 이동될 기여가 삭제되며, 이 사용자만 소유한 그룹도 삭제됩니다. |
현재 사용자 디렉터리
현재 사용자를 가져옵니다.
비관리자 사용자
인증된 사용자를 가져옵니다.
GET /user
{
"id": 1,
"username": "john_smith",
"email": "john@example.com",
"name": "John Smith",
"state": "active",
"locked": false,
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/index.jpg",
"web_url": "http://localhost:3000/john_smith",
"created_at": "2012-05-23T08:00:58Z",
"bio": "",
"location": null,
"public_email": "john@example.com",
"skype": "",
"linkedin": "",
"twitter": "",
"discord": "",
"website_url": "",
"organization": "",
"job_title": "",
"pronouns": "he/him",
"bot": false,
"work_information": null,
"followers": 0,
"following": 0,
"local_time": "3:38 PM",
"last_sign_in_at": "2012-06-01T11:41:01Z",
"confirmed_at": "2012-05-23T09:05:22Z",
"theme_id": 1,
"last_activity_on": "2012-05-23",
"color_scheme_id": 2,
"projects_limit": 100,
"current_sign_in_at": "2012-06-02T06:36:55Z",
"identities": [
{"provider": "github", "extern_uid": "2435223452345"},
{"provider": "bitbucket", "extern_uid": "john_smith"},
{"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"}
],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": true,
"external": false,
"private_profile": false,
"commit_email": "admin@example.com",
}
GitLab Premium 또는 Ultimate 사용자는 shared_runners_minutes_limit
, extra_shared_runners_minutes_limit
매개변수도 볼 수 있습니다.
관리자를 위한
- 응답의
namespace_id
필드는 GitLab 14.10에서 도입되었습니다.- 응답의
created_by
필드는 GitLab 15.6에서 도입되었습니다.- 응답의
email_reset_offered_at
필드는 GitLab 16.7에서 도입되었습니다.
GET /user
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
sudo
| 정수 | 아니요 | 대신하여 호출할 사용자의 ID |
{
"id": 1,
"username": "john_smith",
"email": "john@example.com",
"name": "John Smith",
"state": "active",
"locked": false,
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/index.jpg",
"web_url": "http://localhost:3000/john_smith",
"created_at": "2012-05-23T08:00:58Z",
"is_admin": true,
"bio": "",
"location": null,
"public_email": "john@example.com",
"skype": "",
"linkedin": "",
"twitter": "",
"discord": "",
"website_url": "",
"organization": "",
"job_title": "",
"last_sign_in_at": "2012-06-01T11:41:01Z",
"confirmed_at": "2012-05-23T09:05:22Z",
"theme_id": 1,
"last_activity_on": "2012-05-23",
"color_scheme_id": 2,
"projects_limit": 100,
"current_sign_in_at": "2012-06-02T06:36:55Z",
"identities": [
{"provider": "github", "extern_uid": "2435223452345"},
{"provider": "bitbucket", "extern_uid": "john_smith"},
{"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"}
],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": true,
"external": false,
"private_profile": false,
"commit_email": "john-codes@example.com",
"current_sign_in_ip": "196.165.1.102",
"last_sign_in_ip": "172.127.2.22",
"namespace_id": 1,
"created_by": null,
"email_reset_offered_at": null,
"note": null
}
GitLab Premium이나 Ultimate 사용자는 또한 다음 매개변수도 볼 수 있습니다:
shared_runners_minutes_limit
extra_shared_runners_minutes_limit
is_auditor
provisioned_by_group_id
using_license_seat
사용자 상태
인증된 사용자의 상태를 가져옵니다.
GET /user/status
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/status"
예시 응답:
{
"emoji":"coffee",
"availability":"busy",
"message":"I crave coffee :coffee:",
"message_html": "I crave coffee <gl-emoji title=\"hot beverage\" data-name=\"coffee\" data-unicode-version=\"4.0\">☕</gl-emoji>",
"clear_status_at": null
}
사용자 상태 가져오기
사용자의 상태를 가져옵니다. 이 엔드포인트는 인증 없이 접근할 수 있습니다.
GET /users/:id_or_username/status
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id_or_username
| 문자열 | 예 | 사용자의 ID 또는 사용자 이름 |
curl "https://gitlab.example.com/users/janedoe/status"
예시 응답:
{
"emoji":"coffee",
"availability":"busy",
"message":"I crave coffee :coffee:",
"message_html": "I crave coffee <gl-emoji title=\"hot beverage\" data-name=\"coffee\" data-unicode-version=\"4.0\">☕</gl-emoji>",
"clear_status_at": null
}
사용자 상태 설정
현재 사용자의 상태를 설정합니다.
PUT /user/status
PATCH /user/status
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
emoji
| 문자열 | 아니요 | 상태로 사용할 이모지의 이름. 지정하지 않으면 speech_balloon 이 사용됩니다. 이모지 이름은 Gemojione 인덱스에서 지정된 이름 중 하나일 수 있습니다.
|
message
| 문자열 | 아니요 | 상태로 설정할 메시지. 이모지 코드를 포함할 수도 있습니다. 100자를 초과할 수 없습니다. |
clear_status_after
| 문자열 | 아니요 | 지정된 시간 간격 후 상태를 자동으로 정리합니다. 허용된 값: 30_minutes , 3_hours , 8_hours , 1_day , 3_days , 7_days , 30_days
|
PUT
과 PATCH
의 차이
PUT
을 사용할 때 전달되지 않은 매개변수는 null
로 설정되어 지워집니다. PATCH
를 사용할 때 전달되지 않은 매개변수는 무시됩니다. 필드를 지우려면 명시적으로 null
을 전달하세요.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --data "clear_status_after=1_day" --data "emoji=coffee" \
--data "message=I crave coffee" "https://gitlab.example.com/api/v4/user/status"
예시 응답:
{
"emoji":"coffee",
"message":"I crave coffee",
"message_html": "I crave coffee",
"clear_status_at":"2021-02-15T10:49:01.311Z"
}
사용자 환경 설정 가져오기
인증된 사용자의 환경 설정을 가져옵니다.
GET /user/preferences
예시 응답:
{
"id": 1,
"user_id": 1,
"view_diffs_file_by_file": true,
"show_whitespace_in_diffs": false,
"pass_user_identities_to_ci_jwt": false
}
매개변수:
- 없음
사용자 환경 설정 변경
현재 사용자의 환경 설정을 업데이트합니다.
PUT /user/preferences
{
"id": 1,
"user_id": 1,
"view_diffs_file_by_file": true,
"show_whitespace_in_diffs": false,
"pass_user_identities_to_ci_jwt": false
}
매개변수:
속성 | 필수 | 설명 |
---|---|---|
view_diffs_file_by_file
| 예 | 사용자가 페이지별로 하나의 파일 차이만 볼 수 있도록 하는 플래그 |
show_whitespace_in_diffs
| 예 | 사용자가 공백 변경 사항을 차이에서 볼 수 있도록 하는 플래그 |
pass_user_identities_to_ci_jwt
| 예 | 사용자가 외부 ID를 CI 정보로 전달하는 플래그. 이 속성에는 사용자를 외부 시스템에서 식별하거나 인증하는 데 충분한 정보가 포함되어 있지 않습니다. 이 속성은 GitLab 내부용으로, 외부 서비스에 전달해서는 안 되는 것입니다. 자세한 정보 및 예시는 토큰 페이로드를 참조하세요. |
사용자 팔로우
사용자 팔로우 및 언팔로우
사용자를 팔로우합니다.
POST /users/:id/follow
사용자의 팔로우를 취소합니다.
POST /users/:id/unfollow
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 팔로우할 사용자의 ID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/users/3/follow"
예시 응답:
{
"id": 1,
"username": "john_smith",
"name": "John Smith",
"state": "active",
"locked": false,
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg",
"web_url": "http://localhost:3000/john_smith"
}
팔로워 및 팔로잉
사용자의 팔로워를 가져옵니다.
GET /users/:id/followers
팔로우하는 사용자 디렉터리을 얻습니다.
GET /users/:id/following
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 팔로우할 사용자의 ID |
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/users/3/followers"
예시 응답:
[
{
"id": 2,
"name": "Lennie Donnelly",
"username": "evette.kilback",
"state": "active",
"locked": false,
"avatar_url": "https://www.gravatar.com/avatar/7955171a55ac4997ed81e5976287890a?s=80&d=identicon",
"web_url": "http://127.0.0.1:3000/evette.kilback"
},
{
"id": 4,
"name": "Serena Bradtke",
"username": "cammy",
"state": "active",
"locked": false,
"avatar_url": "https://www.gravatar.com/avatar/a2daad869a7b60d3090b7b9bef4baf57?s=80&d=identicon",
"web_url": "http://127.0.0.1:3000/cammy"
}
]
사용자 카운트
인증된 사용자의 카운트 (오른쪽 상단 메뉴와 동일).
속성 | 타입 | 설명 |
---|---|---|
assigned_issues
| number | 현재 사용자에게 할당된 오픈된 이슈 수 |
assigned_merge_requests
| number | 현재 사용자에게 할당된 활성화된 MR(Merge Request) 수 |
merge_requests
| number |
GitLab 13.8에서 사용 중지. assigned_merge_requests 로 대체됩니다.
|
review_requested_merge_requests
| number | 현재 사용자가 검토를 요청받은 MR(Merge Request) 수 |
todos
| number | 현재 사용자의 대기 중인 할 일 항목 수 |
GET /user_counts
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/user_counts"
예시 응답:
{
"merge_requests": 4,
"assigned_issues": 15,
"assigned_merge_requests": 11,
"review_requested_merge_requests": 0,
"todos": 1
}
서비스 계정 사용자 생성
서비스 계정 사용자를 생성합니다. 계정 사용자명과 이름을 지정할 수 있습니다. 이러한 속성을 지정하지 않으면 기본 이름은 Service account user
이고 사용자명은 자동으로 생성됩니다. 관리자만 사용할 수 있습니다.
POST /service_accounts
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/service_accounts"
지원되는 속성:
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
name
| string | no | 사용자의 이름 |
username
| string | no | 사용자명 |
예시 응답:
{
"id": 57,
"username": "service_account_6018816a18e515214e0c34c2b33523fc",
"name": "Service account user"
}
사용자 프로젝트 디렉터리
사용자 프로젝트의디렉터리을 확인하세요.
사용자의 연관 카운트 디렉터리
지정된 사용자의 연관 카운트 디렉터리을 얻습니다:
- 프로젝트.
- 그룹.
- 이슈.
- MR(Merge Request).
관리자는 모든 사용자를 조회할 수 있지만, 관리자가 아닌 사용자는 자신만 조회할 수 있습니다.
GET /users/:id/associations_count
파라미터:
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 사용자의 ID |
예시 응답:
{
"groups_count": 2,
"projects_count": 3,
"issues_count": 8,
"merge_requests_count": 5
}
SSH 키 디렉터리
인증된 사용자의 SSH 키 디렉터리을 가져옵니다.
이 함수는 키 디렉터리을 제한하는 페이지네이션 파라미터 page
와 per_page
를 사용합니다.
GET /user/keys
[
{
"id": 1,
"title": "Public key",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
"created_at": "2014-08-01T14:47:39.080Z"
},
{
"id": 3,
"title": "Another Public key",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
"created_at": "2014-08-01T14:47:39.080Z"
}
]
파라미터:
- 없음
사용자의 SSH 키 디렉터리
지정된 사용자의 SSH 키 디렉터리을 가져옵니다.
GET /users/:id_or_username/keys
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id_or_username
| string | yes | SSH 키를 가져올 사용자의 ID 또는 사용자 이름. |
개별 SSH 키
개별 키 가져오기.
GET /user/keys/:key_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
key_id
| string | yes | SSH 키 ID |
{
"id": 1,
"title": "공개 키",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
"created_at": "2014-08-01T14:47:39.080Z"
}
지정된 사용자의 개별 SSH 키
- GitLab 14.9.에서 소개됨.
지정된 사용자의 개별 키 가져오기.
GET /users/:id/keys/:key_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 지정된 사용자의 ID |
key_id
| integer | yes | SSH 키 ID |
{
"id": 1,
"title": "공개 키",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
"created_at": "2014-08-01T14:47:39.080Z"
}
SSH 키 추가
usage_type
매개변수가 GitLab 15.7.에서 소개됨.
인증된 사용자가 소유한 새 키 생성.
POST /user/keys
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
title
| string | yes | 새 SSH 키의 제목 |
key
| string | yes | 새 SSH 키 |
expires_at
| string | no | ISO 8601 형식의 SSH 키 만료 날짜 및 시간 (YYYY-MM-DDTHH:MM:SSZ )
|
usage_type
| string | no | SSH 키의 사용 범위: auth , signing 또는 auth_and_signing . 기본값: auth_and_signing
|
{
"title": "ABC",
"key": "ssh-dss AAAAB3NzaC1kc3MAAACBAMLrhYgI3atfrSD6KDas1b/3n6R/HP+bLaHHX6oh+L1vg31mdUqK0Ac/NjZoQunavoyzqdPYhFz9zzOezCrZKjuJDS3NRK9rspvjgM0xYR4d47oNZbdZbwkI4cTv/gcMlquRy0OvpfIvJtjtaJWMwTLtM5VhRusRuUlpH99UUVeXAAAAFQCVyX+92hBEjInEKL0v13c/egDCTQAAAIEAvFdWGq0ccOPbw4f/F8LpZqvWDydAcpXHV3thwb7WkFfppvm4SZte0zds1FJ+Hr8Xzzc5zMHe6J4Nlay/rP4ewmIW7iFKNBEYb/yWa+ceLrs+TfR672TaAgO6o7iSRofEq5YLdwgrwkMmIawa21FrZ2D9SPao/IwvENzk/xcHu7YAAACAQFXQH6HQnxOrw4dqf0NqeKy1tfIPxYYUZhPJfo9O0AmBW2S36pD2l14kS89fvz6Y1g8gN/FwFnRncMzlLY/hX70FSc/3hKBSbH6C6j8hwlgFKfizav21eS358JJz93leOakJZnGb8XlWvz1UJbwCsnR2VEY8Dz90uIk1l/UqHkA= loic@call",
"expires_at": "2016-01-21T00:00:00.000Z",
"usage_type": "auth"
}
성공적으로 키가 생성되면 201 Created
상태의 키가 반환됩니다. 오류가 발생하면 오류를 설명하는 메시지와 함께 400 Bad Request
가 반환됩니다:
{
"message": {
"fingerprint": [
"이미 사용 중입니다"
],
"key": [
"이미 사용 중입니다"
]
}
}
사용자용 SSH 키 추가
usage_type
매개변수가 GitLab 15.7.에서 소개됨.
지정된 사용자가 소유한 새 키 생성. 관리자만 사용 가능.
POST /users/:id/keys
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 지정된 사용자의 ID |
title
| string | yes | 새 SSH 키의 제목 |
key
| string | yes | 새 SSH 키 |
expires_at
| string | no | ISO 8601 형식의 SSH 키 만료 날짜 및 시간 (YYYY-MM-DDTHH:MM:SSZ )
|
usage_type
| string | no | SSH 키의 사용 범위: auth , signing 또는 auth_and_signing . 기본값: auth_and_signing
|
{
"title": "ABC",
"key": "ssh-dss AAAAB3NzaC1kc3MAAACBAMLrhYgI3atfrSD6KDas1b/3n6R/HP+bLaHHX6oh+L1vg31mdUqK0Ac/NjZoQunavoyzqdPYhFz9zzOezCrZKjuJDS3NRK9rspvjgM0xYR4d47oNZbdZbwkI4cTv/gcMlquRy0OvpfIvJtjtaJWMwTLtM5VhRusRuUlpH99UUVeXAAAAFQCVyX+92hBEjInEKL0v13c/egDCTQAAAIEAvFdWGq0ccOPbw4f/F8LpZqvWDydAcpXHV3thwb7WkFfppvm4SZte0zds1FJ+Hr8Xzzc5zMHe6J4Nlay/rP4ewmIW7iFKNBEYb/yWa+ceLrs+TfR672TaAgO6o7iSRofEq5YLdwgrwkMmIawa21FrZ2D9SPao/IwvENzk/xcHu7YAAACAQFXQH6HQnxOrw4dqf0NqeKy1tfIPxYYUZhPJfo9O0AmBW2S36pD2l14kS89fvz6Y1g8gN/FwFnRncMzlLY/hX70FSc/3hKBSbH6C6j8hwlgFKfizav21eS358JJz93leOakJZnGb8XlWvz1UJbwCsnR2VEY8Dz90uIk1l/UqHkA= loic@call",
"expires_at": "2016-01-21T00:00:00.000Z",
"usage_type": "auth"
}
성공적으로 키가 생성되면 201 Created
상태의 키가 반환됩니다. 오류가 발생하면 오류를 설명하는 메시지와 함께 400 Bad Request
가 반환됩니다:
{
"message": {
"fingerprint": [
"이미 사용 중입니다"
],
"key": [
"이미 사용 중입니다"
]
}
}
현재 사용자의 SSH 키 삭제
인증된 사용자가 소유한 키를 삭제합니다.
작업이 성공적으로 수행되면 204 No Content
상태 코드가 반환되며, 리소스를 찾을 수 없는 경우 404
가 반환됩니다.
DELETE /user/keys/:key_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
key_id
| integer | yes | SSH 키 ID |
지정된 사용자의 SSH 키 삭제
지정된 사용자가 소유한 키를 삭제합니다. 관리자만 사용할 수 있습니다.
DELETE /users/:id/keys/:key_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 지정된 사용자의 ID |
key_id
| integer | yes | SSH 키 ID |
모든 GPG 키 나열
인증된 사용자의 GPG 키 디렉터리을 가져옵니다.
GET /user/gpg_keys
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys"
예시 응답:
[
{
"id": 1,
"key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
특정 GPG 키 가져오기
인증된 사용자의 특정 GPG 키를 가져옵니다.
GET /user/gpg_keys/:key_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
key_id
| integer | yes | GPG 키의 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys/1"
예시 응답:
{
"id": 1,
"key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----",
"created_at": "2017-09-05T09:17:46.264Z"
}
GPG 키 추가
인증된 사용자가 소유한 새 GPG 키를 생성합니다.
POST /user/gpg_keys
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
key
| string | yes | 새 GPG 키 |
export KEY="$( gpg --armor --export <your_gpg_key_id>)"
curl --data-urlencode "key=-----BEGIN PGP PUBLIC KEY BLOCK-----
xsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj
t1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O
CfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa
qKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO
VaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57
vilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp
IDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV
CAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/
oO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5
crfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4
bjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn
iE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp
o4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=
=XQoy
-----END PGP PUBLIC KEY BLOCK-----" \
--header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys"
예시 응답:
[
{
"id": 1,
"key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\n=XQoy\n-----END PGP PUBLIC KEY BLOCK-----",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
GPG 키 삭제
인증된 사용자가 소유한 GPG 키를 삭제합니다.
DELETE /user/gpg_keys/:key_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
key_id
| integer | yes | GPG 키의 ID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys/1"
성공 시 204 No Content
를 반환하며, 키를 찾을 수 없는 경우 404 Not Found
가 반환됩니다.
특정 사용자의 모든 GPG 키 나열
지정된 사용자의 GPG 키 디렉터리을 가져옵니다. 이 엔드포인트는 인증 없이 액세스할 수 있습니다.
GET /users/:id/gpg_keys
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 사용자의 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys"
예시 응답:
[
{
"id": 1,
"key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
지정된 사용자를 위한 특정 GPG 키 가져오기
지정된 사용자를 위한 특정 GPG 키를 가져옵니다. 이 엔드포인트는 관리자 인증 없이 액세스할 수 있습니다.
GET /users/:id/gpg_keys/:key_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 사용자 ID |
key_id
| 정수 | 예 | GPG 키 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys/1"
예시 응답:
{
"id": 1,
"key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----",
"created_at": "2017-09-05T09:17:46.264Z"
}
지정된 사용자를 위한 GPG 키 추가
지정된 사용자가 소유한 새 GPG 키를 생성합니다. 관리자만 사용할 수 있습니다.
POST /users/:id/gpg_keys
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 사용자 ID |
key_id
| 정수 | 예 | GPG 키 ID |
curl --data-urlencode "key=-----BEGIN PGP PUBLIC KEY BLOCK-----
> xsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj
> t1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O
> CfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa
> qKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO
> VaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57
> vilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp
> IDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV
> CAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/
> oO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5
> crfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4
> bjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn
> iE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp
> o4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=
> =XQoy
> -----END PGP PUBLIC KEY BLOCK-----" \
--header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys"
예시 응답:
[
{
"id": 1,
"key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\n=XQoy\n-----END PGP PUBLIC KEY BLOCK-----",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
특정 사용자의 GPG 키 삭제
지정된 사용자가 소유한 GPG 키를 삭제합니다. 관리자만 사용할 수 있습니다.
DELETE /users/:id/gpg_keys/:key_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 사용자 ID |
key_id
| integer | yes | GPG 키 ID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys/1"
이메일 디렉터리
인증된 사용자의 이메일 디렉터리을 가져옵니다.
GET /user/emails
[
{
"id": 1,
"email": "email@example.com",
"confirmed_at" : "2021-03-26T19:07:56.248Z"
},
{
"id": 3,
"email": "email2@example.com",
"confirmed_at" : null
}
]
매개변수:
- 없음
사용자 이메일 디렉터리
지정된 사용자의 이메일 디렉터리을 가져옵니다. 관리자만 사용할 수 있습니다.
GET /users/:id/emails
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 지정된 사용자의 ID |
단일 이메일
단일 이메일을 가져옵니다.
GET /user/emails/:email_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
email_id
| integer | yes | 이메일 ID |
{
"id": 1,
"email": "email@example.com",
"confirmed_at" : "2021-03-26T19:07:56.248Z"
}
이메일 추가
인증된 사용자가 소유한 새 이메일을 생성합니다.
POST /user/emails
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
email
| string | yes | 이메일 주소 |
{
"id": 4,
"email": "email@example.com",
"confirmed_at" : "2021-03-26T19:07:56.248Z"
}
성공 시 상태가 201 Created
인 생성된 이메일이 반환됩니다. 오류가 발생하면 오류를 설명하는 메시지와 함께 400 Bad Request
가 반환됩니다.
{
"message": {
"email": [
"이미 사용 중인 이메일입니다"
]
}
}
사용자용 이메일 추가
지정된 사용자가 소유한 새 이메일을 생성합니다. 관리자만 사용할 수 있습니다.
POST /users/:id/emails
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| string | yes | 지정된 사용자의 ID |
email
| string | yes | 이메일 주소 |
skip_confirmation
| boolean | no | 확인을 건너뛰고 이메일이 검증되었다고 가정함 - true 또는 false (기본값) |
현재 사용자용 이메일 삭제
인증된 사용자가 소유한 지정된 이메일 주소를 삭제합니다. 기본 이메일 주소는 삭제할 수 없습니다.
삭제된 이메일 주소가 어떤 사용자 이메일에서 사용 중인 경우 해당 사용자 이메일은 기본 이메일 주소로 전송됩니다.
DELETE /user/emails/:email_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
email_id
| integer | yes | 이메일 ID |
반환됨:
- 작업이 성공한 경우
204 No Content
. - 리소스를 찾을 수 없는 경우
404
.
지정된 사용자용 이메일 삭제
기본 이메일 주소를 삭제할 수 없습니다.
DELETE /users/:id/emails/:email_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 지정된 사용자의 ID |
email_id
| integer | yes | 이메일 ID |
사용자 차단
지정된 사용자를 차단합니다. 관리자만 사용할 수 있습니다.
POST /users/:id/block
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 지정된 사용자의 ID |
반환됨:
- 성공 시
201 OK
. - 사용자를 찾을 수 없는 경우
404 User Not Found
. - 차단하는 동안
403 Forbidden
:- LDAP를 통해 차단된 사용자.
- 내부 사용자.
사용자 차단 해제
지정된 사용자의 차단을 해제합니다. 관리자만 사용할 수 있습니다.
POST /users/:id/unblock
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 지정된 사용자의 ID |
성공 시 201 OK
가 반환되며, 사용자를 찾을 수 없는 경우 404 User Not Found
이거나
LDAP 동기화에 의해 차단된 사용자를 차단해제하려고 하면 403 Forbidden
이 반환됩니다.
사용자 비활성화
지정된 사용자를 비활성화합니다. 관리자만 사용할 수 있습니다.
POST /users/:id/deactivate
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 지정된 사용자의 ID |
반환됨:
- 성공 시
201 OK
. - 사용자를 찾을 수 없는 경우
404 User Not Found
. - 비활성화하려는 사용자가 다음 중 하나에 해당하는 경우
403 Forbidden
:- 관리자 또는 LDAP 동기화에 의해 차단됨.
- 휴면 상태가 아님.
- 내부 사용자.
사용자 활성화
지정된 사용자를 활성화합니다. 관리자만 사용할 수 있습니다.
POST /users/:id/activate
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 지정된 사용자의 ID |
반환됨:
- 성공 시
201 OK
. - 사용자를 찾을 수 없는 경우
404 User Not Found
. - 관리자나 LDAP 동기화에 의해 사용자를 활성화할 수 없는 경우
403 Forbidden
.
사용자 차단
- GitLab 14.3에서 도입되었습니다.
지정된 사용자를 차단합니다. 관리자만 사용할 수 있습니다.
POST /users/:id/ban
매개변수:
-
id
(필수) - 지정된 사용자의 ID
반환:
- 성공 시
201 OK
. - 사용자를 찾을 수 없는 경우
404 User Not Found
. - 비활성화된 사용자를 차단하려고 하는 경우
403 Forbidden
.
사용자 차단 해제
- GitLab 14.3에서 도입되었습니다.
지정된 사용자의 차단을 해제합니다. 관리자만 사용할 수 있습니다.
POST /users/:id/unban
매개변수:
-
id
(필수) - 지정된 사용자의 ID
반환:
- 성공 시
201 OK
. - 사용자를 찾을 수 없는 경우
404 User Not Found
. - 차단 해제하려는 사용자가 차단되지 않은 경우
403 Forbidden
.
사용자 기여 이벤트 가져오기
이벤트 API 설명서를 참조하세요.
사용자의 모든 표준화된 토큰 가져오기
관리자 액세스가 필요합니다.
사용자의 모든 표준화된 토큰을 검색합니다. 디렉터리을 제한하려면 페이지 및 페이지당 항목 수를 나타내는 페이지네이션 매개변수를 사용하세요.
GET /users/:user_id/impersonation_tokens
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
user_id
| 정수 | 예 | 사용자의 ID |
state
| 문자열 | 아니요 | 상태에 따라 토큰 필터링 (all , active , inactive )
|
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"
응답 예시:
[
{
"active" : true,
"user_id" : 2,
"scopes" : [
"api"
],
"revoked" : false,
"name" : "mytoken",
"id" : 2,
"created_at" : "2017-03-17T17:18:09.283Z",
"impersonation" : true,
"expires_at" : "2017-04-04",
"last_used_at": "2017-03-24T09:44:21.722Z"
},
{
"active" : false,
"user_id" : 2,
"scopes" : [
"read_user"
],
"revoked" : true,
"name" : "mytoken2",
"created_at" : "2017-03-17T17:19:28.697Z",
"id" : 3,
"impersonation" : true,
"expires_at" : "2017-04-14",
"last_used_at": "2017-03-24T09:44:21.722Z"
}
]
사용자 승인
지정된 사용자를 승인합니다. 관리자만 사용할 수 있습니다.
POST /users/:id/approve
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 지정된 사용자의 ID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/approve"
반환:
- 성공 시
201 Created
. - 사용자를 찾을 수 없는 경우
404 User Not Found
. - 사용자가 관리자에 의해 차단되었거나 LDAP 동기화에 의해 승인할 수 없는 경우
403 Forbidden
. - 사용자가 비활성화된 경우
409 Conflict
.
응답 예시:
{ "message": "Success" }
{ "message": "404 User Not Found" }
{ "message": "The user you are trying to approve is not pending approval" }
사용자 거부
- GitLab 14.3에서 도입되었습니다.
승인 대기 중인 사용자를 거부합니다. 관리자만 사용할 수 있습니다.
POST /users/:id/reject
매개변수:
-
id
(필수) - 지정된 사용자의 ID
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/reject"
반환:
- 성공 시
200 OK
. - 관리자로 인증되지 않은 경우
403 Forbidden
. - 사용자를 찾을 수 없는 경우
404 User Not Found
. - 사용자의 승인이 대기 중이 아닌 경우
409 Conflict
.
응답 예시:
{ "message": "Success" }
{ "message": "404 User Not Found" }
{ "message": "User does not have a pending request" }
사용자의 표준화된 토큰 가져오기
관리자 액세스 권한이 필요합니다.
사용자의 표준화된 토큰을 표시합니다.
GET /users/:user_id/impersonation_tokens/:impersonation_token_id
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
user_id
| 정수 | 예 | 사용자의 ID |
impersonation_token_id
| 정수 | 예 | 표준화된 토큰의 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/2"
응답 예시:
{
"active" : true,
"user_id" : 2,
"scopes" : [
"api"
],
"revoked" : false,
"name" : "mytoken",
"id" : 2,
"created_at" : "2017-03-17T17:18:09.283Z",
"impersonation" : true,
"expires_at" : "2017-04-04"
}
표준화된 토큰 생성
관리자 액세스가 필요합니다. 토큰 값은 한 번만 반환됩니다. 다시 액세스할 수 없으니 저장해야 합니다.
새로운 표준화된 토큰을 생성합니다. 관리자만 이 작업을 수행할 수 있습니다. 이 작업을 통해 사용자를 위장하여 API 호출 및 Git 읽기 및 쓰기를 수행할 수 있는 표준화된 토큰을 생성할 수 있습니다. 사용자는 자신의 프로필 설정 페이지에서 이러한 토큰을 볼 수 없습니다.
POST /users/:user_id/impersonation_tokens
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
user_id
| 정수 | 예 | 사용자의 ID |
name
| 문자열 | 예 | 표준화된 토큰의 이름 |
expires_at
| 날짜 | 예 | ISO 형식(YYYY-MM-DD )의 표준화된 토큰 유효 기간
|
scopes
| 배열 | 예 | 표준화된 토큰의 스코프 배열 (api , read_user )
|
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "expires_at=2017-04-04" \
--data "scopes[]=api" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"
응답 예시:
{
"id" : 2,
"revoked" : false,
"user_id" : 2,
"scopes" : [
"api"
],
"token" : "EsMo-vhKfXGwX9RKrwiy",
"active" : true,
"impersonation" : true,
"name" : "mytoken",
"created_at" : "2017-03-17T17:18:09.283Z",
"expires_at" : "2017-04-04"
}
사용자 위임 토큰 취소
관리자 액세스가 필요합니다.
위임 토큰을 취소합니다.
DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id
매개변수:
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
user_id
| 정수 | 예 | 사용자의 ID |
impersonation_token_id
| 정수 | 예 | 위임 토큰의 ID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/1"
개인 액세스 토큰 생성
expires_at
속성의 기본값은 GitLab 16.0에 도입되었습니다.
새로운 개인 액세스 토큰을 생성하는 데 사용됩니다. 토큰 값은 한 번만 반환되므로, 다시 액세스할 수 없으므로 반드시 저장하십시오. 이 API는 GitLab 관리자만 사용할 수 있습니다.
POST /users/:user_id/personal_access_tokens
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
user_id
| 정수 | 예 | 사용자 ID |
name
| 문자열 | 예 | 개인 액세스 토큰의 이름 |
expires_at
| 날짜 | 아니요 | ISO 형식으로 된 액세스 토큰의 만료일 (YYYY-MM-DD ). 날짜가 설정되지 않으면, 만료일은 액세스 토큰의 최대 수명으로 설정됩니다.
|
scopes
| 배열 | 예 | 개인 액세스 토큰의 스코프 배열. 가능한 값은 개인 액세스 토큰 스코프를 참조하십시오. |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "expires_at=2017-04-04" \
--data "scopes[]=api" "https://gitlab.example.com/api/v4/users/42/personal_access_tokens"
예시 응답:
{
"id": 3,
"name": "mytoken",
"revoked": false,
"created_at": "2020-10-14T11:58:53.526Z",
"scopes": [
"api"
],
"user_id": 42,
"active": true,
"expires_at": "2020-12-31",
"token": "ggbfKkC4n-Lujy8jwCR2"
}
현재 인증된 사용자를 위한 제한된 범위를 가진 개인 액세스 토큰 생성
현재 인증된 사용자를 위한 새로운 개인 액세스 토큰을 생성하는 데 사용됩니다. 보안 목적으로 토큰은:
-
k8s_proxy
스코프로 제한됩니다. 이 스코프는 쿠버네티스 에이전트를 사용하여 쿠버네티스 API 호출을 수행하는 권한을 부여합니다. - 기본적으로 생성된 날의 끝에 만료됩니다.
토큰 값은 한 번만 반환되므로, 토큰을 저장해두어야 합니다.
POST /user/personal_access_tokens
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
name
| 문자열 | 예 | 개인 액세스 토큰 이름 |
scopes
| 배열 | 예 | 개인 액세스 토큰의 스코프 배열. 가능한 값은 k8s_proxy
|
expires_at
| 배열 | 아니요 | ISO 형식으로 된 액세스 토큰의 만료일 (YYYY-MM-DD ). 날짜가 설정되지 않으면, 만료일은 해당 날의 마지막이 됩니다. 만료는 액세스 토큰의 최대 수명으로 구속받습니다.
|
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "scopes[]=k8s_proxy" "https://gitlab.example.com/api/v4/user/personal_access_tokens"
예시 응답:
{
"id": 3,
"name": "mytoken",
"revoked": false,
"created_at": "2020-10-14T11:58:53.526Z",
"scopes": [
"k8s_proxy"
],
"user_id": 42,
"active": true,
"expires_at": "2020-10-15",
"token": "<your_new_access_token>"
}
사용자 활동 가져오기
사전 요구 사항:
- 개인 프로필을 가진 사용자의 활동을 보려면 관리자여야 합니다.
공개 프로필을 가진 사용자의 마지막 활동 날짜를 가져와 오래된 것부터 최신순으로 정렬합니다.
사용자 이벤트 타임스탬프(last_activity_on
및 current_sign_in_at
)를 업데이트하는 활동은 다음과 같습니다:
- Git HTTP/SSH 활동 (예: 복제, 푸시)
- GitLab에 로그인한 사용자
- 대시보드, 프로젝트, 이슈, Merge Request과 관련된 페이지를 방문한 사용자 (GitLab 11.8에 도입)
- 사용자가 API를 사용
- 사용자가 GraphQL API를 사용
기본적으로, 공개 프로필을 가진 사용자의 활동을 최근 6개월 동안 보여주지만, from
매개변수를 사용하여 이를 변경할 수 있습니다.
GET /user/activities
매개변수:
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
from
| 문자열 | 아니요 |
YEAR-MM-DD 형식의 날짜 문자열. 예를 들어, 2016-03-11 . 6개월 전으로 기본 설정됩니다.
|
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/activities"
예시 응답:
[
{
"username": "user1",
"last_activity_on": "2015-12-14",
"last_activity_at": "2015-12-14"
},
{
"username": "user2",
"last_activity_on": "2015-12-15",
"last_activity_at": "2015-12-15"
},
{
"username": "user3",
"last_activity_on": "2015-12-16",
"last_activity_at": "2015-12-16"
}
]
last_activity_at
이 사용이 중단되었습니다. 대신 last_activity_on
을 사용하십시오.
사용자 멤버십
사전 요구 사항:
- 관리자여야 합니다.
사용자가 멤버인 모든 프로젝트 및 그룹 디렉터리을 반환합니다. 응답은 멤버십의 source_id
, source_name
, source_type
, access_level
을 포함합니다. 소스는 Namespace
타입(그룹을 나타냄) 또는 Project
일 수 있습니다. 이 응답은 직접적인 멤버십만을 대상으로 합니다. 상속된 멤버십(예: 하위 그룹 내에서)은 포함되지 않습니다. 액세스 수준은 정수값으로 표시됩니다. 자세한 내용은 액세스 수준 값을 읽어보십시오.
GET /users/:id/memberships
매개변수:
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 지정된 사용자의 ID |
type
| 문자열 | 아니요 | 멤버십을 타입에 따라 필터링합니다. Project 또는 Namespace 일 수 있습니다.
|
반환값:
- 성공 시
200 OK
. - 사용자를 찾을 수 없는 경우
404 User Not Found
. - 관리자에 의해 요청되지 않은 경우
403 Forbidden
. - 지원되지 않는 타입이 요청된 경우
400 Bad Request
.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/:user_id/memberships"
예시 응답:
[
{
"source_id": 1,
"source_name": "Project one",
"source_type": "Project",
"access_level": "20"
},
{
"source_id": 3,
"source_name": "Group three",
"source_type": "Namespace",
"access_level": "20"
}
]
이중 인증 비활성화
- GitLab 15.2에서 도입되었습니다.
사전 요구 사항:
- 귀하는 관리자여야 합니다.
지정된 사용자의 이중 인증(2FA)을 비활성화합니다.
관리자는 API를 사용하여 자신의 사용자 계정이나 다른 관리자의 2FA를 비활성화할 수 없습니다. 대신, 관리자의 2FA를 Rails 콘솔을 사용하여 비활성화할 수 있습니다.
PATCH /users/:id/disable_two_factor
매개변수:
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 사용자의 ID |
curl --request PATCH --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/1/disable_two_factor"
결과:
- 성공 시
204 No content
. - 지정된 사용자에 대해 이중 인증이 활성화되지 않은 경우
400 Bad request
. - 관리자로 인증되지 않은 경우
403 Forbidden
. - 사용자를 찾을 수 없는 경우
404 User Not Found
.
사용자에 연결된 러너 생성
현재 사용자에 연결된 러너를 생성합니다.
전제 조건:
- 귀하는 대상 네임스페이스나 프로젝트의 관리자이거나 소유자 역할을 가져야 합니다.
-
instance_type
의 경우, 귀하는 GitLab 인스턴스의 관리자여야 합니다. -
group_type
또는project_type
의 경우, 소유자 역할을 가진 경우, 관리자는 러너 등록 제한을 활성화해서는 안 됩니다. -
create_runner
범위를 가진 액세스 토큰이 필요합니다.
응답에 있는 token
을 복사하거나 저장해야 합니다. 이 값을 다시 검색할 수 없습니다.
POST /user/runners
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
runner_type
| 문자열 | 예 | 러너의 범위를 지정합니다. instance_type , group_type , 또는 project_type 중 하나입니다.
|
group_id
| 정수 | 아니오 | 러너가 생성된 그룹의 ID입니다. runner_type 이 group_type 인 경우 필수입니다.
|
project_id
| 정수 | 아니오 | 러너가 생성된 프로젝트의 ID입니다. runner_type 이 project_type 인 경우 필수입니다.
|
description
| 문자열 | 아니오 | 러너의 설명입니다. |
paused
| 부울 | 아니오 | 러너가 새 작업을 무시해야 하는지 여부를 지정합니다. |
locked
| 부울 | 아니오 | 러너가 현재 프로젝트에서 잠겨 있는지 여부를 지정합니다. |
run_untagged
| 부울 | 아니오 | 러너가 태그되지 않은 작업을 처리해야 하는지 여부를 지정합니다. |
tag_list
| 문자열 배열 | 아니오 | 러너 태그 디렉터리입니다. |
access_level
| 문자열 | 아니오 | 러너의 액세스 수준입니다. not_protected 또는 ref_protected 중 하나입니다.
|
maximum_timeout
| 정수 | 아니오 | 러너가 작업을 실행할 수 있는 시간(초)을 제한하는 최대 제한 시간입니다. |
maintenance_note
| 문자열 | 아니오 | 러너에 대한 자유 형식의 유지 관리 노트입니다(1024자). |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "runner_type=instance_type" \
"https://gitlab.example.com/api/v4/user/runners"
예시 응답:
{
"id": 9171,
"token": "glrt-kyahzxLaj4Dc1jQf4xjX",
"token_expires_at": null
}
현재 사용자 아바타 업로드
- GitLab 17.0에서 도입되었습니다.
현재 사용자에게 아바타를 업로드합니다.
PUT /user/avatar
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
avatar
| 문자열 | 예 | 업로드할 파일입니다. 이상적인 이미지 크기는 192 x 192 픽셀입니다. 허용되는 최대 파일 크기는 200 KiB입니다. |
파일 시스템에서 아바타를 업로드하려면 --form
인수를 사용하십시오. 이것은 cURL이 Content-Type: multipart/form-data
헤더를 사용하여 데이터를 게시하도록 합니다. file=
매개변수는 파일 시스템의 이미지 파일을 가리켜야 하며 @
로 시작해야 합니다. 예를 들어:
예시 요청:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
--form "avatar=@avatar.png" \
--url "https://gitlab.example.com/api/v4/user/avatar"
반환된 객체:
200 KiB보다 큰 파일 크기에 대해 400 Bad Request
를 반환합니다.
성공하면 200
을 반환하고 아래 응답 속성을 반환합니다:
{
"avatar_url": "http://gdk.test:3000/uploads/-/system/user/avatar/76/avatar.png",
}