사용자 API
Offering: GitLab.com, Self-managed, GitLab Dedicated
REST API를 사용하여 계정을 관리하고
다른 사용자 관리할 수 있습니다.
사용자 목록
사용자 목록을 가져옵니다.
사용자 목록을 제한하기 위해 페이지 매김 매개변수 page
및 per_page
를 사용합니다.
일반 사용자로서
GET /users
지원되는 속성:
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
username |
string | no | 특정 사용자 이름을 가진 단일 사용자를 가져옵니다. |
search |
string | no | 사용자 이름을 검색합니다. |
active |
boolean | no | 활성 사용자만 필터링합니다. 기본값은 false 입니다. |
external |
boolean | no | 외부 사용자만 필터링합니다. 기본값은 false 입니다. |
blocked |
boolean | no | 차단된 사용자만 필터링합니다. 기본값은 false 입니다. |
humans |
boolean | no | 봇이나 내부 사용자가 아닌 일반 사용자만 필터링합니다. 기본값은 false 입니다. |
created_after |
DateTime | no | 지정된 시간 이후에 생성된 사용자를 반환합니다. |
created_before |
DateTime | no | 지정된 시간 이전에 생성된 사용자를 반환합니다. |
exclude_active |
boolean | no | 비활성 사용자만 필터링합니다. 기본값은 false 입니다. |
exclude_external |
boolean | no | 비외부 사용자만 필터링합니다. 기본값은 false 입니다. |
exclude_humans |
boolean | no | 봇이나 내부 사용자만 필터링합니다. 기본값은 false 입니다. |
exclude_internal |
boolean | no | 비내부 사용자만 필터링합니다. 기본값은 false 입니다. |
without_project_bots |
boolean | no | 프로젝트 봇이 없는 사용자만 필터링합니다. 기본값은 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은 alert bot이나 support bot와 같은 봇 사용자를 지원합니다.
다음과 같은 내부 사용자를 사용자의 목록에서 제외할 수 있습니다:
- Alert bot
- Support bot
그러나 이 작업은 프로젝트의 봇 사용자나 그룹의 봇 사용자를 제외하지는 않습니다.
GET /users?exclude_internal=true
또한 외부 사용자를 사용자 목록에서 제외하려면 exclude_external=true
매개변수를 사용할 수 있습니다.
GET /users?exclude_external=true
프로젝트의 봇 사용자 및 그룹의 봇 사용자를 제외하려면 without_project_bots=true
매개변수를 사용할 수 있습니다.
GET /users?without_project_bots=true
관리자로서
Offering: Self-managed, GitLab Dedicated
GET /users
모든 모든 사용자에게 제공되는 매개변수와 함께 이 추가 속성을 관리자만 사용할 수 있습니다.
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
extern_uid |
string | no | 특정 외부 인증 제공자 UID로 단일 사용자를 가져옵니다. |
provider |
string | no | 외부 제공자입니다. |
order_by |
string | no |
id , name , username , created_at , 또는 updated_at 필드에 따라 정렬된 사용자 반환. 기본값은 id
|
sort |
string | no |
asc 또는 desc 순서로 정렬된 사용자 반환. 기본값은 desc
|
two_factor |
string | no | 이중 인증으로 사용자를 필터링합니다. 필터 값은 enabled 또는 disabled 입니다. 기본적으로 모든 사용자가 반환됩니다. |
without_projects |
boolean | no | 프로젝트가 없는 사용자만 필터링합니다. 기본값은 false , 즉 모든 사용자가 반환됩니다. |
admins |
boolean | no | 관리자만 반환합니다. 기본값은 false . |
auditors |
boolean | no | 감사 사용자만 반환합니다. 기본값은 false . 포함하지 않을 경우 모든 사용자가 반환됩니다. Premium 및 Ultimate에서만 사용 가능합니다. |
saml_provider_id |
number | no | 지정된 SAML 제공자 ID로 생성된 사용자만 반환합니다. 포함하지 않을 경우 모든 사용자가 반환됩니다. Premium 및 Ultimate에서만 사용 가능합니다. |
skip_ldap |
boolean | no | 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
...
}
]
?search=
를 사용하여 이름, 사용자 이름 또는 이메일로 사용자를 검색할 수도 있습니다. 예를 들어, /users?search=John
. 사용자를 검색할 때:
- 이메일의 경우, 정확한 일치를 얻기 위해 전체 이메일 주소를 사용해야 합니다. 관리자로서 공용 및 개인 이메일 주소를 모두 검색할 수 있습니다.
- 이름 또는 사용자 이름의 경우, 모호한 검색이 가능하므로 정확한 일치를 얻을 필요가 없습니다.
외부 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
생성 날짜 시간 범위로 사용자를 검색할 수 있습니다:
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
}
관리자로서
Offering: Self-managed, GitLab Dedicated
관리자로서 단일 사용자를 받습니다.
GET /users/:id
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 | 예 | 사용자 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 Enterprise Edition에서만 사용할 수 있습니다.
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
현재 사용자 가져오기
현재 사용자를 가져옵니다.
일반 사용자로서
사용자 세부정보를 가져옵니다.
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
매개 변수를 볼 수 있습니다.
관리자
Offering: Self-managed, GitLab Dedicated
사용자 세부정보 또는 다른 사용자의 세부정보를 가져옵니다.
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
사용자 생성
Offering: Self-managed, GitLab Dedicated
- 감사 사용자 생성을 위한 기능이 도입되었습니다 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 |
아니오 | Discord 계정 |
username |
예 | 사용자 이름 |
view_diffs_file_by_file |
아니오 | 사용자가 페이지당 하나의 파일 차이만 보도록 표시하는 플래그 |
website_url |
아니오 | 웹사이트 URL |
사용자 수정
Offering: Self-managed, GitLab Dedicated
- 감사 사용자 수정을 위한 기능이 도입되었습니다 GitLab 15.3에서.
기존 사용자를 수정합니다.
사전 조건:
- 당신은 관리자여야 합니다.
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 |
사용자의 비밀번호를 업데이트하면 다음 번 로그인 시 비밀번호를 변경해야 합니다.
404
오류를 반환하며, 409
(Conflict)가 더 적절한 경우에도 해당됩니다.
예를 들어 이미 존재하는 이메일 주소로 이메일 주소를 변경하는 경우입니다.
사용자 삭제
Offering: Self-managed, GitLab Dedicated
사용자를 삭제합니다.
사전 요구 조건:
- 관리자가 되어야 합니다.
반환:
- 작업이 성공적이면
204 No Content
상태 코드. - 자원이 발견되지 않으면
404
. - 사용자가 소프트 삭제될 수 없으면
409
.
DELETE /users/:id
지원하는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer | yes | 사용자 ID |
hard_delete |
boolean | no | true인 경우, 일반적으로 [Ghost User로 이동]는 대신 삭제되며, 이 사용자만 소유하는 그룹도 삭제됩니다. |
사용자 상태 조회
사용자 상태를 조회합니다.
사전 요구 조건:
- 인증되어야 합니다.
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 |
string | yes | 상태를 조회할 사용자의 ID 또는 사용자 이름 |
예시 요청:
curl "https://gitlab.example.com/users/<username>/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 |
string | no | 상태로 사용할 이모지의 이름. 생략할 경우 speech_balloon 이 사용됩니다. 이모지 이름은 Gemojione 색인에 지정된 이름 중 하나일 수 있습니다. |
message |
string | no | 상태로 설정할 메시지. 이모지 코드를 포함할 수 있습니다. 100자를 초과할 수 없습니다. |
clear_status_after |
string | no | 주어진 시간 간격 후 상태를 자동으로 정리합니다. 허용되는 값: 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에만 내부적으로 사용되며, 서드파티 서비스에 전달되어서는 안 됩니다. 자세한 정보와 예시는 Token Payload를 참조하세요. |
아바타 업로드
- GitLab 17.0에 도입되었습니다. Introduced.
자신의 아바타를 업로드합니다.
사전 조건:
- 인증되어 있어야 합니다.
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"
예시 응답:
{
"avatar_url": "http://gdk.test:3000/uploads/-/system/user/avatar/76/avatar.png",
}
반환 값:
- 성공하면
200
을 반환합니다. - 파일 크기가 200 KiB를 초과하면
400 Bad Request
를 반환합니다.
할당된 문제, 병합 요청 및 검토 수 가져오기
할당된 문제, 병합 요청 및 검토 수를 가져옵니다.
사전 조건:
- 인증되어 있어야 합니다.
지원되는 속성:
속성 | 유형 | 설명 |
---|---|---|
assigned_issues |
숫자 | 현재 사용자에게 할당된 열린 문제의 수입니다. |
assigned_merge_requests |
숫자 | 현재 사용자에게 할당된 활성 병합 요청의 수입니다. |
merge_requests |
숫자 | GitLab 13.8에서 사용 중단된 상태이며 assigned_merge_requests 에 해당하는 수입니다. |
review_requested_merge_requests |
숫자 | 현재 사용자가 검토해 달라고 요청한 병합 요청의 수입니다. |
todos |
숫자 | 현재 사용자에 대한 보류 중인 할 일 항목의 수입니다. |
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
}
사용자가 소유한 프로젝트, 그룹, 이슈 및 병합 요청 수 가져오기
사용자가 소유한 항목 수 목록 가져오기:
- 프로젝트.
- 그룹.
- 이슈.
- 병합 요청.
관리자는 모든 사용자를 쿼리할 수 있지만 비관리자는 자신만 쿼리할 수 있습니다.
GET /users/:id/associations_count
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 | 예 | 사용자의 ID |
예시 응답:
{
"groups_count": 2,
"projects_count": 3,
"issues_count": 8,
"merge_requests_count": 5
}
사용자의 활동 목록
Offering: Self-managed, GitLab Dedicated
전제 조건:
- 비공개 프로필을 가진 사용자 활동을 보려면 관리자가 되어야 합니다.
공개 프로필을 가진 사용자의 마지막 활동 날짜를 가장 오래된 것부터 최신 것 순으로 정렬하여 가져옵니다.
사용자 이벤트 타임스탬프(last_activity_on
및 current_sign_in_at
)를 업데이트하는 활동은 다음과 같습니다:
- Git HTTP/SSH 활동(예: 클론, 푸시)
- 사용자가 GitLab에 로그인
- 사용자가 대시보드, 프로젝트, 이슈 및 병합 요청 관련 페이지 방문
- 사용자가 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
을 사용하세요.
사용자가 속한 프로젝트 및 그룹 목록
Offering: Self-managed, GitLab Dedicated
전제 조건:
- 관리자가 되어야 합니다.
사용자가 속한 모든 프로젝트와 그룹을 나열합니다.
멤버쉽의 source_id
, source_name
, source_type
, 및 access_level
을 반환합니다. 소스는 Namespace
(그룹을 나타냄) 또는 Project
유형일 수 있습니다. 응답은 직접 멤버십만 나타냅니다. 하위 그룹과 같은 상속된 멤버십은 포함되지 않습니다. 접근 수준은 정수 값으로 표시됩니다. 접근 수준 값의 의미에 대한 자세한 내용은 access level values를 참조하세요.
GET /users/:id/memberships
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 | 예 | 지정된 사용자의 ID |
type |
문자열 | 아니오 | 유형별로 멤버십 필터링. Project 또는 Namespace 둘 중 하나 |
예시 요청:
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"
}
]
반환:
- 성공 시
200 OK
. - 사용자를 찾을 수 없는 경우
404 User Not Found
. - 관리자가 요청하지 않은 경우
403 Forbidden
. - 지원되지 않는 유형이 요청된 경우
400 Bad Request
.
사용자의 이중 인증 비활성화
Offering: Self-managed, GitLab Dedicated
- 도입됨 GitLab 15.2에서.
사전 조건:
- 관리자가 되어야 합니다.
지정된 사용자에 대해 이중 인증(2FA)을 비활성화합니다.
관리자는 API를 사용하여 자신의 사용자 계정이나 다른 관리자의 2FA를 비활성화할 수 없습니다. 대신, 관리자의 2FA를 Rails 콘솔을 사용하여 비활성화할 수 있습니다.
PATCH /users/:id/disable_two_factor
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer | 예 | 사용자의 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
를 반환합니다.
사용자에 연결된 러너 생성
Offering: GitLab.com, Self-managed, GitLab Dedicated
현재 사용자에 연결된 러너를 생성합니다.
사전 조건:
- 관리자가 되거나 대상 네임스페이스 또는 프로젝트의 소유자 역할을 가지고 있어야 합니다.
-
instance_type
의 경우 GitLab 인스턴스의 관리자여야 합니다. - 소유자 역할을 가진
group_type
또는project_type
의 경우 관리자는 러너 등록 제한을 활성화해서는 안 됩니다. -
create_runner
범위를 가진 액세스 토큰이 필요합니다.
응답에서 token
을 복사하거나 저장하는 것을 잊지 마세요. 이 값은 다시 조회할 수 없습니다.
POST /user/runners
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
runner_type |
string | 예 | 러너의 범위를 지정합니다; instance_type , group_type 또는 project_type . |
group_id |
integer | 아니오 | 러너가 생성되는 그룹의 ID. runner_type 이 group_type 일 때 필요합니다. |
project_id |
integer | 아니오 | 러너가 생성되는 프로젝트의 ID. runner_type 이 project_type 일 때 필요합니다. |
description |
string | 아니오 | 러너에 대한 설명. |
paused |
boolean | 아니오 | 러너가 새로운 작업을 무시해야 하는지 여부입니다. |
locked |
boolean | 아니오 | 현재 프로젝트에 대해 러너가 잠겨야 하는지 여부입니다. |
run_untagged |
boolean | 아니오 | 러너가 태그가 없는 작업을 처리해야 하는지 여부입니다. |
tag_list |
string array | 아니오 | 러너 태그 목록. |
access_level |
string | 아니오 | 러너의 접근 수준; not_protected 또는 ref_protected . |
maximum_timeout |
integer | 아니오 | 러너가 작업을 실행할 수 있는 최대 시간(초)입니다. |
maintenance_note |
string | 아니오 | 러너에 대한 자유 형식의 유지 관리 노트(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": "<access-token>",
"token_expires_at": null
}
사용자 인증 ID 삭제
Offering: Self-managed, GitLab Dedicated
사용자 인증 ID를 해당 ID와 연결된 공급자 이름을 사용하여 삭제합니다.
필수 조건:
- 관리자인 경우에만 가능합니다.
DELETE /users/:id/identities/:provider
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 | 예 | 사용자 ID |
provider |
문자열 | 예 | 외부 공급자 이름 |