- 사용자 목록
- 단일 사용자 가져오기
- 현재 사용자 얻기
- 사용자 생성
- 사용자 수정
- 사용자 삭제
- 사용자 상태 가져오기
- 사용자 상태 가져오기
- 사용자 상태 설정
- 사용자 환경 설정 가져오기
- 사용자 환경 설정 업데이트
- 자신을 위한 아바타 업로드
- 할당된 이슈, 병합 요청 및 리뷰 수 가져오기
- 사용자의 프로젝트, 그룹, 이슈 및 병합 요청 수 가져오기
- 사용자 활동 목록
- 사용자가 멤버인 프로젝트 및 그룹 목록
- 사용자의 이중 인증 비활성화
- 사용자에 연결된 러너 생성
- 사용자의 인증 신원을 삭제합니다
사용자 API
당신은 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
참고: 사용자명 검색은 대소문자를 구분하지 않습니다.
또한, 차단
및 활성
상태에 따라 사용자를 필터링할 수 있습니다.
active=false
또는 blocked=false
를 지원하지 않습니다.
GET /users?active=true
GET /users?blocked=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
관리자로서
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 입니다. 포함되지 않으면 모든 사용자가 반환됩니다. 프리미엄 및 얼티메이트 전용입니다.
|
saml_provider_id
| number | no | 지정된 SAML 제공자 ID로 만들어진 사용자만 반환합니다. 포함되지 않으면 모든 사용자가 반환됩니다. 프리미엄과 얼티메이트 전용입니다. |
skip_ldap
| boolean | no | LDAP 사용자를 건너뜁니다. 프리미엄과 얼티메이트 전용입니다. |
예시 응답:
[
{
"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
...
}
]
또한, 생성 일시 범위로 사용자를 검색할 수 있습니다:
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
}
관리자로서
관리자로서 단일 사용자를 가져옵니다.
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,
"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
매개변수도 볼 수 있습니다.
GitLab.com Premium 또는 Ultimate 사용자도 group_saml
옵션과 provisioned_by_group_id
매개변수를 볼 수 있습니다.
GitLab.com Premium 또는 Ultimate 사용자도 scim_identities
매개변수를 볼 수 있습니다.
현재 사용자 얻기
현재 사용자를 얻습니다.
일반 사용자로서
사용자 세부 정보를 가져옵니다.
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
매개변수도 볼 수 있습니다.
관리자로서
사용자 세부 정보를 가져오거나 다른 사용자의 세부 정보를 가져옵니다.
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
사용자 생성
- 감사자 사용자 생성 기능은 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
는 함께 사용할 수 있습니다.
참고:
private_profile
은 새로운 사용자의 프로필을 기본적으로 비공개로 설정하는 설정 값에 따라 기본값이 설정됩니다.
bio
는 null
이 아닌 ""
로 기본값이 설정됩니다.
POST /users
지원되는 속성:
속성 | 필수 | 설명 |
---|---|---|
admin
| 아니요 | 사용자가 관리자인지 여부입니다. true 또는 false 의 유효한 값입니다. 기본값은 false입니다.
|
auditor
| 아니요 | 사용자가 감사자인지 여부입니다. true 또는 false 의 유효한 값입니다. 기본값은 false입니다. GitLab 15.3에서 소개되었습니다. 프리미엄 및 얼티밋만 해당합니다.
|
avatar
| 아니요 | 사용자의 아바타를 위한 이미지 파일 |
bio
| 아니요 | 사용자의 전기 |
can_create_group
| 아니요 | 사용자가 최상위 그룹을 생성할 수 있는지 여부 |
color_scheme_id
| 아니요 | 파일 뷰어용 사용자 컬러 스키마 |
commit_email
| 아니요 | 사용자의 커밋 이메일 주소 |
email
| 예 | 이메일 |
extern_uid
| 아니요 | 외부 UID |
external
| 아니요 | 사용자를 외부로 플래그 처리 - true 또는 false (기본값) |
extra_shared_runners_minutes_limit
| 아니요 | 관리자만 설정할 수 있습니다. 이 사용자의 추가 컴퓨팅 분. 프리미엄 및 얼티밋만 해당합니다. |
force_random_password
| 아니요 | 사용자 암호를 무작위 값으로 설정 - true 또는 false (기본값) |
group_id_for_saml
| 아니요 | SAML이 구성된 그룹의 ID |
linkedin
| 아니요 | |
location
| 아니요 | 사용자의 위치 |
name
| 예 | 이름 |
note
| 아니요 | 사용자에 대한 관리자 메모 |
organization
| 아니요 | 기관 이름 |
password
| 아니요 | 암호 |
private_profile
| 아니요 | 사용자 프로필이 비공개인지 여부. 기본값은 설정에 따라 결정됩니다. |
projects_limit
| 아니요 | 사용자가 생성할 수 있는 프로젝트 수 |
pronouns
| 아니요 | 사용자의 대명사 |
provider
| 아니요 | 외부 공급자 이름 |
public_email
| 아니요 | 사용자의 공개 이메일 주소 |
reset_password
| 아니요 | 사용자에게 암호 재설정 링크를 보냄 - true 또는 false(기본값) |
shared_runners_minutes_limit
| 아니요 | 관리자만 설정할 수 있습니다. 이 사용자의 월별 최대 컴퓨팅 분 수. nil (기본값; 시스템 기본값 상속), 0 (제한 없음) 또는 > 0 이 될 수 있습니다. 프리미엄 및 얼티밋만 해당합니다.
|
skip_confirmation
| 아니요 | 확인 건너뛰기 - true 또는 false (기본값) |
skype
| 아니요 | Skype ID |
theme_id
| 아니요 | 사용자를 위한 GitLab 테마 |
twitter
| 아니요 | X (이전 Twitter) 계정 |
discord
| 아니요 | Discord 계정 |
username
| 예 | 사용자 이름 |
view_diffs_file_by_file
| 아니요 | 사용자가 페이지당 파일 차이를 하나만 보는지 여부를 나타내는 플래그 |
website_url
| 아니요 | 웹사이트 URL |
사용자 수정
- 감사자 사용자 수정 기능은 GitLab 15.3에 도입되었습니다.
기존 사용자를 수정합니다.
필수조건:
- 귀하가 관리자여야 합니다.
email
필드는 사용자의 기본 이메일 주소입니다. 해당 필드를 이미 추가된 보조 이메일 주소로만 변경할 수 있습니다. 동일한 사용자에 대해 더 많은 이메일 주소를 추가하려면 이메일 추가 엔드포인트를 사용하세요.
PUT /users/:id
지원되는 속성:
속성 | 필수여부 | 설명 |
---|---|---|
admin
| 아니요 | 사용자가 관리자인지 여부. true 또는 false 가 유효한 값입니다. 기본값은 false입니다.
|
auditor
| 아니요 | 사용자가 감사자인지 여부. true 또는 false 가 유효한 값입니다. 기본값은 false입니다. GitLab 15.3에 도입되었습니다.(기본값) 프리미엄 및 얼티밋 전용.
|
avatar
| 아니요 | 사용자의 아바타에 대한 이미지 파일 |
bio
| 아니요 | 사용자의 전기 |
can_create_group
| 아니요 | 사용자가 그룹을 만들 수 있는지 여부 - true 또는 false |
color_scheme_id
| 아니요 | 사용자 파일 뷰어의 컬러 스킴 ID(자세한 내용은 사용자 환경 설정 문서를 참조하세요) |
commit_email
| 아니요 | 사용자의 커밋 이메일. 비공개 커밋 이메일을 사용하려면 _private 로 설정하세요. GitLab 15.5에 도입되었습니다.
|
email
| 아니요 | 이메일 |
extern_uid
| 아니요 | 외부 UID |
… |
사용자의 비밀번호를 업데이트하면 다음으로 로그인할 때 비밀번호를 변경해야 합니다.
예를 들어, 기존 이메일 주소를 기존 이메일 주소로 변경할 때 404
오류가 반환됩니다. 적절한 경우 409
(충돌)가 더 적절한데도 말이죠.
사용자 삭제
사용자를 삭제합니다.
필수조건:
- 귀하가 관리자여야 합니다.
반환값:
- 작업이 성공한 경우
204 No Content
상태 코드 - 리소스를 찾을 수 없는 경우
404
- 사용자를 소프트 삭제할 수 없는 경우
409
DELETE /users/:id
지원되는 속성:
속성 | 타입 | 필수여부 | 설명 |
---|---|---|---|
id
| integer | 예 | 사용자 ID |
hard_delete
| boolean | 아니요 | true이면 일반적으로 Ghost 사용자로 이동되는 기여가 삭제됩니다. 또한, 이 사용자만이 소유한 그룹도 삭제됩니다. |
사용자 상태 가져오기
사용자 상태를 가져옵니다.
필수조건:
- 인증되어 있어야 합니다.
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 | 예 | 사용자의 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
}
사용자 상태 설정
사용자 상태를 설정합니다.
전제 조건:
- 인증(authenticated)이 되어 있어야 합니다.
PUT /user/status
PATCH /user/status
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
emoji
| string | 아니요 | 상태로 사용할 이모지의 이름입니다. 지정되지 않으면 speech_balloon 이 사용됩니다. 이모지 이름은 Gemojione index의 지정된 이름 중 하나일 수 있습니다.
|
message
| string | 아니요 | 상태로 설정할 메시지입니다. 이모지 코드를 포함할 수도 있습니다. 100자를 초과할 수 없습니다. |
clear_status_after
| string | 아니요 | 주어진 시간 간격 후에 상태를 자동으로 정리합니다. 허용된 값: 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
| Yes | 사용자가 페이지 당 파일 차이 하나만 볼 수 있는지 여부를 나타내는 플래그입니다. |
show_whitespace_in_diffs
| Yes | 사용자가 차이에서 공백 변경을 볼 수 있는지 여부를 나타내는 플래그입니다. |
pass_user_identities_to_ci_jwt
| Yes | 사용자가 외부 ID를 CI 정보로 전달하는지 여부를 나타내는 플래그입니다. 이 속성에는 사용자를 식별하거나 외부 시스템에서 사용자를 승인하는 데 충분한 정보가 포함되어 있지 않습니다. 이 속성은 GitLab 내부용이며, 제3자 서비스에 전달해서는 안됩니다. 자세한 정보 및 예시는 Token Payload를 참조하세요. |
자신을 위한 아바타 업로드
- GitLab 17.0에서 소개되었습니다.
자신을 위한 아바타를 업로드합니다.
전제 조건:
- 인증되어 있어야 합니다.
PUT /user/avatar
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
avatar
| string | Yes | 업로드할 파일입니다. 이상적인 이미지 크기는 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
| number | 현재 사용자에게 할당되고 열린 이슈의 수입니다. |
assigned_merge_requests
| number | 현재 사용자에게 할당되고 활성화된 병합 요청의 수입니다. |
merge_requests
| number | GitLab 13.8에서 Deprecated되었습니다. assigned_merge_requests 와 동등한 금치됨으로 대체되었습니다.
|
review_requested_merge_requests
| number | 현재 사용자가 검토를 요청받은 병합 요청의 수입니다. |
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
}
사용자의 프로젝트, 그룹, 이슈 및 병합 요청 수 가져오기
사용자의 아래 목록의 수를 가져옵니다:
- 프로젝트.
- 그룹.
- 이슈.
- 병합 요청.
관리자는 모든 사용자를 쿼리할 수 있지만, 관리자가 아닌 사용자는 자신만 쿼리할 수 있습니다.
GET /users/:id/associations_count
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | 사용자의 ID |
예시 응답:
{
"groups_count": 2,
"projects_count": 3,
"issues_count": 8,
"merge_requests_count": 5
}
사용자 활동 목록
사전 요구 사항:
- 개인 프로필을 가진 사용자의 활동을 보려면 관리자여야 합니다.
공개 프로필을 가진 사용자의 마지막 활동 날짜를 가져와 오래된 순서대로 정렬합니다.
사용자 이벤트 타임스탬프(last_activity_on
및 current_sign_in_at
)를 업데이트하는 활동은 다음과 같습니다:
- Git HTTP/SSH 활동 (예: clone, push)
- 사용자가 GitLab에 로그인하기
- 대시보드, 프로젝트, 이슈 및 병합 요청과 관련된 페이지 방문
- 사용자가 API를 사용하기
- 사용자가 GraphQL API를 사용하기
기본적으로 공개 프로필을 가진 사용자의 활동을 지난 6개월동안 보여줍니다. 그러나 from
매개변수를 사용하여 변경할 수 있습니다.
GET /user/activities
지원되는 속성:
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
from
| string | 아니요 |
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
| integer | 예 | 특정 사용자의 ID |
type
| string | 아니요 | 타입에 의해 멤버십을 필터링합니다. 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
사용자의 이중 인증 비활성화
- 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
- 지정된 사용자의 2단계 인증이 활성화되지 않은 경우
400 Bad request
- 관리자로 인증되지 않은 경우
403 Forbidden
- 사용자를 찾을 수 없는 경우
404 User Not Found
사용자에 연결된 러너 생성
현재 사용자에 연결된 러너를 생성합니다.
사전 요구 사항:
- 대상 네임스페이스 또는 프로젝트의 소유자 역할을 가진 관리자이거나 관리자여야 합니다.
-
instance_type
에 대해 GitLab 인스턴스의 관리자여야 합니다. - Owner 역할로
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": "<access-token>",
"token_expires_at": null
}
사용자의 인증 신원을 삭제합니다
해당 신원과 연결된 제공자 이름을 사용하여 사용자의 인증 신원을 삭제합니다.
필수 조건:
- 관리자여야 합니다.
DELETE /users/:id/identities/:provider
지원되는 속성:
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 사용자 ID |
provider
| 문자열 | 예 | 외부 제공자 이름 |