사용자 API

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

이 문서에는 사용자 API의 API 호출, 매개변수 및 응답에 대한 정보가 있습니다.

사용자 이벤트 타임스탬프를 업데이트하는 사용자 활동 정보에 대해서는 사용자 활동 가져오기를 참조하십시오.

사용자 디렉터리

사용자 디렉터리을 가져옵니다.

이 기능은 페이지네이션 매개변수 pageper_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.comjon@example.com이 모두 반환될 수 있습니다.
  • 이름 또는 사용자 이름의 경우 정확한 일치를 얻을 필요가 없습니다. 이는 퍼지 검색이기 때문입니다.

또한 사용자 이름으로 사용자를 조회할 수 있습니다.

GET /users?username=:username

예를 들어:

GET /users?username=jack_smith
note
사용자 이름 검색은 대소문자를 구분하지 않습니다.

또한 blockedactive 상태를 기준으로 사용자를 필터링할 수 있습니다. active=false 또는 blocked=false은 지원하지 않습니다.

GET /users?active=true
GET /users?blocked=true

또한 external=true를 사용하여 외부 사용자만 검색할 수 있습니다. external=false를 지원하지 않습니다.

GET /users?external=true

GitLab은 경보 봇 또는 지원 봇과 같은 봇 사용자를 지원합니다. 사용자 디렉터리에서 다음 유형의 내부 사용자exclude_internal=true 매개변수로 제외할 수 있습니다(GitLab 13.4에서 소개):

  • 경보 봇
  • 지원 봇

그러나이 동작은 프로젝트용 봇 사용자그룹용 봇 사용자 등의 봇 사용자를 제외하지 않습니다.

GET /users?exclude_internal=true

또한 사용자 디렉터리에서 외부 사용자를 제외하려면 매개변수 exclude_external=true를 사용할 수 있습니다.

GET /users?exclude_external=true

프로젝트용 봇 사용자그룹용 봇 사용자를 제외하려면 without_project_bots=true 매개변수를 사용할 수 있습니다.

GET /users?without_project_bots=true

관리자의 경우

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated
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
    ...
  }
]

또한 다음과 같이 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 매개변수를 사용하여 사용자 계정 생성 정보를 확인할 수 있습니다.

단일 사용자

단일 사용자 정보를 가져옵니다.

사용자용

전제 조건:

  • 이 엔드포인트를 사용하려면 로그인해야 합니다.
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
}

관리자용

Tier: Free, Premium, Ultimate 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
}
note
plantrial 매개변수는 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

사용자 생성

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated
  • 응답의 namespace_id 필드는 GitLab 14.10에서 도입되었습니다.
  • 감사자 사용자 생성 기능은 GitLab 15.3에 도입되었습니다.

새 사용자를 생성합니다. 관리자만이 새로운 사용자를 생성할 수 있습니다. password, reset_password, 또는 force_random_password 중 하나를 지정해야 합니다. reset_passwordforce_random_password가 둘 다 false이면 password가 필요합니다.

force_random_passwordreset_passwordpassword보다 우선시됩니다. 또한, reset_passwordforce_random_password는 함께 사용할 수 있습니다.

note
GitLab 12.1부터 private_profilefalse로 기본 설정됩니다. GitLab 15.8부터, private_profile의 기본값은 설정으로 결정됩니다.
note
GitLab 13.2부터, bio의 기본값은 null이 아닌 ""로 설정됩니다.
POST /users

매개변수:

속성 필수 설명
admin 아니오 사용자가 관리자인지 여부. true 또는 false 중 하나의 값이 유효합니다. 기본값은 false입니다.
auditor 아니오 사용자가 감사자인지 여부. true 또는 false 중 하나의 값이 유효합니다. GitLab 15.3에 도입되었습니다. Premium 및 Ultimate 전용.
avatar 아니오 사용자 아바타의 이미지 파일
bio 아니오 사용자의 전기
can_create_group 아니오 사용자가 그룹을 만들 수 있는지 여부 - true 또는 false
color_scheme_id 아니오 사용자 파일 뷰어의 색 구성표 (자세한 내용은 user preference documentation) 참조)
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 아니오 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 테마 (자세한 내용은 user preference documentation 참조)
twitter 아니오 X(이전으로는 Twitter) 계정
discord 아니오 Discord 계정
username 사용자 이름
view_diffs_file_by_file 아니오 사용자가 페이지 당 하나의 파일 차이만 보는지 여부를 나타내는 플래그
website_url 아니오 웹사이트 URL

사용자 수정

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated
  • 응답의 namespace_id 필드는 GitLab 14.10에서 도입되었습니다.
  • 감사자 사용자 수정 기능은 GitLab 15.3에서 도입되었습니다.

기존 사용자를 수정합니다. 관리자만이 사용자의 속성을 변경할 수 있습니다.

email 필드는 사용자의 기본 이메일 주소입니다. 이 필드를 변경하려면 해당 사용자에게 이미 추가된 보조 이메일 주소로만 변경할 수 있습니다. 동일한 사용자에게 더 많은 이메일 주소를 추가하려면 이메일 추가 기능을 사용하십시오.

PUT /users/:id

매개변수:

속성 필수 설명
admin 아니오 사용자가 관리자인지 여부. true 또는 false 중 하나의 값이 유효합니다. 기본값은 false입니다.
auditor 아니오 사용자가 감사자인지 여부. true 또는 false 중 하나의 값이 유효합니다. GitLab 15.3에 도입되었습니다. (기본) Premium 및 Ultimate 전용.
avatar 아니오 사용자의 아바타 이미지 파일
bio 아니오 사용자의 전기
can_create_group 아니오 사용자가 그룹을 만들 수 있는지 여부 - true 또는 false
color_scheme_id 아니오 사용자의 파일 뷰어용 색 구성표 (자세한 내용은 user preference documentation) 참조)
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 아니오 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 테마 (자세한 내용은 user preference documentation) 참조)
twitter 아니오 X(이전으로는 Twitter) 계정
discord 아니오 Discord 계정
username 아니오 사용자 이름
view_diffs_file_by_file 아니오 사용자가 페이지 당 하나의 파일 차이만 보는지 여부를 나타내는 플래그
website_url 아니오 웹사이트 URL

비밀번호를 업데이트하면 사용자는 다음 로그인 시에 비밀번호를 변경해야 합니다. 현재 이 방법은 404 오류만 반환하며, 경우에 따라 409 (충돌)가 더 적절한 경우에도 404 오류가 반환합니다. 예를 들어, 이메일 주소를 기존 이메일 주소로 변경할 때도 409 (충돌) 오류를 반환해야 합니다.

사용자의 인증 신원을 삭제합니다

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

사용자의 인증 신원을 삭제하여 해당 신원과 관련된 제공자 이름을 사용합니다. 관리자만 사용할 수 있습니다.

DELETE /users/:id/identities/:provider

매개변수:

속성 유형 필수 설명
id integer 사용자 ID
provider string 외부 제공자 이름

사용자 삭제

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

사용자를 삭제합니다. 관리자만 사용할 수 있습니다. 이 작업이 성공적이면 204 No Content 상태 코드가 반환되며, 리소스를 찾을 수 없는 경우 404, 사용자를 소프트 삭제할 수 없는 경우 409가 반환됩니다.

DELETE /users/:id

매개변수:

속성 유형 필수 설명
id integer 사용자 ID
hard_delete boolean 아니오 참이면 일반적으로 Ghost 사용자로 이동해야 하는 기여를 삭제하고 이 사용자가 고유하게 소유한 그룹도 삭제합니다.

현재 사용자 디렉터리

현재 사용자를 가져옵니다.

관리자가 아닌 사용자

인증된 사용자를 가져옵니다.

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 매개변수도 볼 수 있습니다.

관리자

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated
GET /user

매개변수:

속성 유형 필수 설명
sudo integer 아니요 다른 사용자 대신 호출하려면 해당 사용자의 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 index의 지정된 이름 중 하나일 수 있습니다.
message 문자열 아니요 상태로 설정할 메시지. 이모지 코드를 포함할 수도 있습니다. 100자를 초과할 수 없습니다.
clear_status_after 문자열 아니요 주어진 시간 간격 후에 상태를 자동으로 정리합니다. 허용된 값: 30_minutes, 3_hours, 8_hours, 1_day, 3_days, 7_days, 30_days

PUTPATCH의 차이점

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 내부용이며, 제3자 서비스에 전달해서는 안 됩니다. 자세한 내용과 예시는 Token Payload을 참조하세요.

사용자 팔로우

사용자 팔로우 및 언팔로우

사용자를 팔로우합니다.

POST /users/:id/follow

사용자의 팔로우를 취소합니다.

POST /users/:id/unfollow
속성 유형 필수 여부 설명
id 정수 팔로우할 사용자의 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 정수 팔로우할 사용자의 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 현재 사용자에 할당되어 열려있는 이슈의 수. GitLab 14.2에서 추가.
assigned_merge_requests number 현재 사용자에게 할당되어 활성화된 Merge Request의 수. GitLab 13.8에 추가.
merge_requests number GitLab 13.8에서 사용 중단. assigned_merge_requests로 대체됨.
review_requested_merge_requests number 현재 사용자가 리뷰를 요청받은 Merge Request의 수. GitLab 13.8에 추가.
todos number 현재 사용자의 보류 중인 할 일 항목의 수. GitLab 14.2에서 추가.
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
}

서비스 계정 사용자 생성

Tier: Premium, Ultimate Offering: Self-managed, GitLab Dedicated
  • 서비스 계정 사용자 생성 기능은 GitLab 16.1에서 도입되었습니다.

서비스 계정 사용자를 생성합니다. 계정 사용자 이름과 이름을 지정할 수 있습니다. 이러한 속성을 지정하지 않으면 기본 이름은 서비스 계정 사용자이고 사용자 이름은 자동으로 생성됩니다. 관리자만 사용 가능합니다.

POST /service_accounts
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/service_accounts"

지원되는 속성:

속성 유형 필수 여부 설명
name string 아니오 사용자 이름
username string 아니오 사용자의 사용자 이름

예시 응답:

{
  "id": 57,
  "username": "service_account_6018816a18e515214e0c34c2b33523fc",
  "name": "Service account user"
}

사용자 프로젝트 디렉터리

사용자 프로젝트 디렉터리을 참조하세요.

사용자 연결 카운트 디렉터리

특정 사용자의 연결 수를 가져옵니다:

  • 프로젝트.
  • 그룹.
  • 이슈.
  • Merge Request.

관리자는 어떤 사용자든 조회할 수 있지만, 일반 사용자는 자신만 조회할 수 있습니다.

GET /users/:id/associations_count

매개변수:

속성 유형 필수 여부 설명
id integer 사용자의 ID

예시 응답:

{
  "groups_count": 2,
  "projects_count": 3,
  "issues_count": 8,
  "merge_requests_count": 5
}

SSH 키 디렉터리

인증된 사용자의 SSH 키 디렉터리을 가져옵니다.

pageper_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 SSH 키를 가져올 사용자의 ID 또는 사용자 이름

단일 SSH 키

단일 키를 가져옵니다.

GET /user/keys/:key_id

매개변수:

속성 타입 필수 설명
key_id 문자열 SSH 키 ID
{
  "id": 1,
  "title": "Public key",
  "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
  "created_at": "2014-08-01T14:47:39.080Z"
}

지정된 사용자를 위한 단일 SSH 키

지정된 사용자를 위한 단일 키를 가져옵니다.

GET /users/:id/keys/:key_id

매개변수:

속성 타입 필수 설명
id 정수 지정된 사용자의 ID
key_id 정수 SSH 키 ID
{
  "id": 1,
  "title": "Public key",
  "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 문자열 새 SSH 키의 제목
key 문자열 새 SSH 키
expires_at 문자열 아니요 SSH 키의 만료 날짜을 ISO 8601 형식(YYYY-MM-DDTHH:MM:SSZ)로 지정합니다.
usage_type 문자열 아니요 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 키 추가

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated
  • usage_type 매개변수는 GitLab 15.7에서 소개되었습니다.

관리자 전용으로 지정된 사용자에 의해 소유된 새로운 키를 생성합니다.

POST /users/:id/keys

매개변수:

속성 타입 필수 설명
id 정수 지정된 사용자의 ID
title 문자열 새 SSH 키의 제목
key 문자열 새 SSH 키
expires_at 문자열 아니요 SSH 키의 만료 날짜을 ISO 8601 형식(YYYY-MM-DDTHH:MM:SSZ)로 지정합니다.
usage_type 문자열 아니요 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가 반환됩니다.

참고: 이로 인해 감사 이벤트가 추가됩니다.

현재 사용자의 SSH 키 삭제

인증된 사용자가 소유한 키를 삭제합니다.

성공적으로 작업을 수행한 경우 204 No Content 상태 코드가 반환되며, 자원을 찾을 수 없는 경우 404가 반환됩니다.

DELETE /user/keys/:key_id

매개변수:

속성 유형 필수 설명
key_id integer yes SSH 키 ID

지정된 사용자의 SSH 키 삭제

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자가 소유한 키를 삭제합니다. 관리자만 사용할 수 있습니다.

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 키를 가져옵니다. GitLab 13.5에서 소개된 이 엔드포인트는 관리자 인증 없이 액세스할 수 있습니다.

GET /users/:id/gpg_keys/:key_id

매개변수:

속성 타입 필수여부 설명
id integer yes 사용자 ID
key_id integer yes 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 키 추가

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자의 소유인 새 GPG 키를 생성합니다. 관리자만 사용할 수 있습니다.

POST /users/:id/gpg_keys

매개변수:

속성 타입 필요 설명
id integer yes 사용자의 ID
key_id integer yes 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 키 삭제

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자가 소유한 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"

이메일 디렉터리

인증된 사용자의 이메일 디렉터리을 가져옵니다.

note
이 엔드포인트는 기본 이메일 주소를 반환하지 않지만 이슈 25077에서 이 동작을 변경하도록 제안합니다.
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
  }
]

매개변수:

  • 없음

사용자의 이메일 디렉터리 가져오기

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자의 이메일 디렉터리을 가져옵니다. 관리자만 사용할 수 있습니다.

note
이 엔드포인트는 기본 이메일 주소를 반환하지 않지만 이슈 25077에서 이 동작을 변경하도록 제안합니다.
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": [
      "이미 사용 중인 이메일입니다"
    ]
  }
}

사용자의 이메일 추가

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자가 소유한 새 이메일을 생성합니다. 관리자만 사용할 수 있습니다.

POST /users/:id/emails

매개변수:

속성 유형 필수 설명
id string yes 지정된 사용자의 ID
email string yes 이메일 주소
skip_confirmation boolean no 확인을 건너뛰고 이메일이 확인된 것으로 가정 - true 또는 false (기본)

사용자의 현재 이메일 삭제

인증된 사용자가 소유한 지정된 이메일 주소를 삭제합니다. 기본 이메일 주소를 삭제하는 데 사용할 수는 없습니다.

삭제된 이메일 주소가 사용자 이메일에 사용되는 경우 해당 사용자 이메일은 기본 이메일 주소로 대신 전송됩니다.

note
알려진 이슈로 인해 그룹 알림은 여전히 삭제된 이메일 주소로 전송됩니다.
DELETE /user/emails/:email_id

매개변수:

속성 유형 필수 설명
email_id integer yes 이메일 ID

반환:

  • 작업이 성공한 경우 204 No Content를 반환합니다.
  • 리소스를 찾을 수 없는 경우 404를 반환합니다.

지정된 사용자의 이메일 삭제

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

전제 조건:

  • Self-managed GitLab 인스턴스의 관리자여야 합니다.

지정된 사용자가 소유한 이메일 주소를 삭제합니다. 기본 이메일 주소를 삭제할 수는 없습니다.

DELETE /users/:id/emails/:email_id

매개변수:

속성 유형 필수 설명
id integer yes 지정된 사용자의 ID
email_id integer yes 이메일 ID

사용자 차단

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자를 차단합니다. 관리자만 사용할 수 있습니다.

POST /users/:id/block

매개변수:

속성 유형 필수 설명
id integer yes 지정된 사용자의 ID

반환:

  • 성공 시 201 OK을 반환합니다.
  • 사용자를 찾을 수 없는 경우 404 User Not Found를 반환합니다.
  • 다음을 차단할 때 403 Forbidden을 반환합니다:
    • LDAP를 통해 차단된 사용자.
    • 내부 사용자.

사용자 차단 해제

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자의 차단을 해제합니다. 관리자만 사용할 수 있습니다.

POST /users/:id/unblock

매개변수:

속성 유형 필수 설명
id integer yes 지정된 사용자의 ID

성공 시 201 OK을 반환하며, 사용자를 찾을 수 없는 경우 404 User Not Found이거나 LDAP 동기화에 의해 차단된 사용자를 차단 해제하려고 시도할 때 403 Forbidden을 반환합니다.

사용자 비활성화

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자를 비활성화합니다. 관리자 전용 기능입니다.

POST /users/:id/deactivate

매개변수:

속성 유형 필수 설명
id integer yes 지정된 사용자의 ID

반환:

  • 성공 시 201 OK.
  • 사용자를 찾을 수 없는 경우 404 User Not Found.
  • 관리자 또는 LDAP 동기화에 의해 차단된 사용자, 휴면 상태가 아닌 사용자, 내부에서 시도할 경우 403 Forbidden.

사용자 활성화

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자를 활성화합니다. 관리자 전용 기능입니다.

POST /users/:id/activate

매개변수:

속성 유형 필수 설명
id integer yes 지정된 사용자의 ID

반환:

  • 성공 시 201 OK.
  • 사용자를 찾을 수 없는 경우 404 User Not Found.
  • 관리자 또는 LDAP 동기화에 의해 사용자를 활성화할 수 없는 경우 403 Forbidden.

사용자 차단

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자를 차단합니다. 관리자 전용 기능입니다.

POST /users/:id/ban

매개변수:

  • id (필수) - 지정된 사용자의 ID

반환:

  • 성공 시 201 OK.
  • 사용자를 찾을 수 없는 경우 404 User Not Found.
  • 활성 상태가 아닌 사용자를 차단하려는 경우 403 Forbidden.

사용자 차단 해제

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자의 차단을 해제합니다. 관리자 전용 기능입니다.

POST /users/:id/unban

매개변수:

  • id (필수) - 지정된 사용자의 ID

반환:

  • 성공 시 201 OK.
  • 사용자를 찾을 수 없는 경우 404 User Not Found.
  • 차단해제하려는 사용자가 차단되지 않은 경우 403 Forbidden.

사용자 기여 이벤트 가져오기

이벤트 API 문서를 참조하세요.

사용자의 모든 가장함 토큰 가져오기

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

관리자 권한이 필요합니다.

해당 사용자의 모든 가장함 토큰을 검색합니다. 페이지네이션 매개변수 pageper_page를 사용하여 가장함 토큰 디렉터리을 제한합니다.

GET /users/:user_id/impersonation_tokens

매개변수:

속성 유형 필수 설명
user_id integer yes 사용자의 ID
state string no 상태에 따라 토큰 필터링 (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"
   }
]

사용자 승인

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

지정된 사용자를 승인합니다. 관리자 전용 기능입니다.

POST /users/:id/approve

매개변수:

속성 유형 필수 설명
id integer yes 지정된 사용자의 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" }

사용자 거부

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

허가 대기 중인 사용자를 거부합니다. 관리자만 사용할 수 있습니다.

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": "사용자에게 허가 대기 중인 요청이 없습니다" }

사용자의 위임 토큰 가져오기

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

관리자 권한이 필요합니다.

사용자의 위임 토큰을 표시합니다.

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"
}

위임 토큰 생성

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

관리자 액세스가 필요합니다. 토큰 값은 한 번만 반환됩니다. 다시 액세스할 수 없으므로 반드시 저장하세요.

새로운 위임 토큰을 생성합니다. 이 동작은 관리자만 수행할 수 있습니다. 사용자를 위해 위임 토큰을 생성하고, 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"
}

위임 토큰 취소

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

관리자 액세스가 필요합니다.

위임 토큰을 취소합니다.

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"

개인 액세스 토큰 생성

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated
  • GitLab 13.6에서 소개되었습니다.
  • GitLab 13.8에서 피처 플래그가 제거되었습니다.
  • expires_at 속성의 기본값은 GitLab 16.0에서 도입되었습니다.

새로운 개인 액세스 토큰을 생성하려면 이 API를 사용합니다. 토큰 값은 한 번만 반환되므로, 다시 액세스할 수 없으므로 꼭 저장하세요. 이 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"
}

현재 인증된 사용자를 위해 제한된 범위의 개인 액세스 토큰 생성

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

현재 인증된 사용자를 위해 새로운 개인 액세스 토큰을 생성하려면 이 API를 사용하십시오. 보안 목적으로 토큰:

  • k8s_proxy 범위로 제한됩니다. 이 범위는 쿠버네티스 에이전트를 사용하여 쿠버네티스 API 호출을 수행할 수 있는 권한을 부여합니다.
  • 기본적으로 생성된 날의 마지막에 만료됩니다.

토큰 값은 한 번만 반환되므로 토큰을 저장해야 합니다. 다시 액세스할 수 없습니다.

POST /user/personal_access_tokens
속성 유형 필수 설명
name string yes 개인 액세스 토큰의 이름
scopes array yes 개인 액세스 토큰의 범위 배열. 가능한 값은 k8s_proxy입니다.
expires_at array no 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>"
}

사용자 활동 가져오기

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

사전 요구 사항:

  • 비공개 프로필을 가진 사용자의 활동을 보려면 관리자여야 합니다.

공개 프로필을 가진 사용자의 마지막 활동 날짜를 오래부터 최신순으로 가져옵니다.

사용자 이벤트 타임스탬프(last_activity_oncurrent_sign_in_at)를 업데이트하는 활동은 다음과 같습니다:

  • Git HTTP/SSH 활동(예: 복제, 푸시)
  • GitLab에 로그인한 사용자
  • 대시보드, 프로젝트, 이슈, 및 Merge Request과 관련된 페이지를 방문한 사용자 (GitLab 11.8에 도입됨)
  • API 사용자
  • GraphQL API 사용자

기본적으로 6개월 전의 공개 프로필을 가진 사용자의 활동을 표시하지만, from 매개변수를 사용하여 수정할 수 있습니다.

GET /user/activities

매개변수:

속성 유형 필수 설명
from string no YYYY-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을 대신 사용하십시오.

사용자 멤버십

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

사전 요구 사항:

  • 관리자여야 합니다.

사용자가 소속된 모든 프로젝트와 그룹을 나열합니다. 멤버십의 source_id, source_name, source_type, 및 access_level을 반환합니다. 소스는 Namespace(그룹을 나타냄) 또는 Project 유형일 수 있습니다. 응답은 직접 멤버십만을 대상으로 합니다. 예를 들어 하위 그룹의 경우 상속된 멤버십은 포함되지 않습니다. 액세스 레벨은 정수 값으로 표시됩니다. 자세한 내용은 액세스 수준 값에 대해 읽어보세요.

GET /users/:id/memberships

매개변수:

속성 유형 필수 설명
id integer yes 지정된 사용자의 ID
type string no 유형에 따라 멤버십을 필터링합니다. 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"
  }
]

두 단계 인증 해제

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

사전 요구 사항:

  • 귀하는 관리자여야 합니다.

지정된 사용자의 두 단계 인증(2FA)을 해제합니다.

관리자는 API를 사용하여 자신의 사용자 계정 또는 다른 관리자의 2FA를 해제할 수 없습니다. 대신, Rails 콘솔을 사용하여 관리자의 2FA를 비활성화할 수 있습니다.

PATCH /users/:id/disable_two_factor

매개변수:

속성 유형 필수 설명
id integer yes 사용자의 ID
curl --request PATCH --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/1/disable_two_factor"

반환:

  • 성공한 경우 204 No content.
  • 지정된 사용자의 2FA가 활성화되어 있지 않은 경우 400 Bad request.
  • 관리자로 인증되지 않은 경우 403 Forbidden.
  • 사용자를 찾을 수 없는 경우 404 User Not Found.

사용자와 연결된 러너 생성

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

현재 사용자에 연결된 러너를 생성합니다.

전제 조건:

  • 귀하는 관리자이거나 대상 네임스페이스 또는 프로젝트의 소유자 역할을 가져야 합니다.
  • instance_type의 경우, GitLab 인스턴스의 관리자이어야 합니다.
  • group_type 또는 project_type의 경우, 소유자 역할에 있는 관리자가 러너 등록 제한을 활성화하지 않아야 합니다.
  • create_runner 스코프를 가진 액세스 토큰이 있어야 합니다.

응답에 포함된 token을 복사하거나 저장해두세요. 해당 값을 다시 검색할 수 없습니다.

POST /user/runners
속성 유형 필수 설명
runner_type string yes 러너의 범위를 지정합니다. instance_type, group_type, 또는 project_type 중 하나여야 합니다.
group_id integer no 러너가 생성된 그룹의 ID입니다. runner_typegroup_type인 경우 필요합니다.
project_id integer no 러너가 생성된 프로젝트의 ID입니다. runner_typeproject_type인 경우 필요합니다.
description string no 러너의 설명입니다.
paused boolean no 러너가 새 작업을 무시해야 하는지를 지정합니다.
locked boolean no 러너가 현재 프로젝트에 대해 잠긴 상태여야 하는지를 지정합니다.
run_untagged boolean no 러너가 태그가 지정되지 않은 작업을 처리해야 하는지를 지정합니다.
tag_list string array no 러너 태그의 디렉터리입니다.
access_level string no 러너의 액세스 수준입니다. not_protected 또는 ref_protected 중 하나여야 합니다.
maximum_timeout integer no 러너가 작업을 실행할 수 있는 시간(초)을 제한하는 최대 시간입니다.
maintenance_note string no 러너에 대한 자유 형식의 유지보수 노트(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
}