사용자 API

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

당신은 REST API를 사용하여 계정을 관리하고, 기타 사용자를 관리할 수 있습니다.

사용자 목록

사용자 목록을 가져옵니다.

pageper_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.comjon@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

관리자로서

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated
  • 응답의 created_by 필드는 GitLab 15.6에서 도입되었습니다.
  • 응답의 scim_identities 필드는 GitLab 16.1에서 도입되었습니다.
  • 응답의 auditors 필드는 GitLab 16.2에서 도입되었습니다.
  • 응답의 email_reset_offered_at 필드는 GitLab 16.7에서 도입되었습니다.
GET /users

일반 사용자를 대상으로 사용 가능한 모든 매개변수와 함께 관리자 전용 추가된 속성을 사용할 수 있습니다.

지원되는 속성:

속성 유형 필수 설명
extern_uid string 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
}

관리자로서

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

참고: plantrial 매개변수는 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 매개변수도 볼 수 있습니다.

관리자로서

Tier: Free, Premium, Ultimate 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

사용자 생성

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

사용자를 생성합니다.

전제 조건:

  • 관리자여야 합니다.

사용자를 생성할 때 다음 중 하나 이상을 지정해야 합니다:

  • password
  • reset_password
  • force_random_password

reset_passwordforce_random_password가 모두 false인 경우 password가 필요합니다.

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

참고: private_profile새로운 사용자의 프로필을 기본적으로 비공개로 설정하는 설정 값에 따라 기본값이 설정됩니다. bionull이 아닌 ""로 기본값이 설정됩니다.

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 아니요 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

사용자 수정

Tier: Free, Premium, Ultimate Offering: Self-Managed, GitLab Dedicated
  • 감사자 사용자 수정 기능은 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 (충돌)가 더 적절한데도 말이죠.

사용자 삭제

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

사용자를 삭제합니다.

필수조건:

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

반환값:

  • 작업이 성공한 경우 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

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 Yes 사용자가 페이지 당 파일 차이 하나만 볼 수 있는지 여부를 나타내는 플래그입니다.
show_whitespace_in_diffs Yes 사용자가 차이에서 공백 변경을 볼 수 있는지 여부를 나타내는 플래그입니다.
pass_user_identities_to_ci_jwt Yes 사용자가 외부 ID를 CI 정보로 전달하는지 여부를 나타내는 플래그입니다. 이 속성에는 사용자를 식별하거나 외부 시스템에서 사용자를 승인하는 데 충분한 정보가 포함되어 있지 않습니다. 이 속성은 GitLab 내부용이며, 제3자 서비스에 전달해서는 안됩니다. 자세한 정보 및 예시는 Token Payload를 참조하세요.

자신을 위한 아바타 업로드

자신을 위한 아바타를 업로드합니다.

전제 조건:

  • 인증되어 있어야 합니다.
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
}

사용자 활동 목록

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

사전 요구 사항:

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

공개 프로필을 가진 사용자의 마지막 활동 날짜를 가져와 오래된 순서대로 정렬합니다.

사용자 이벤트 타임스탬프(last_activity_oncurrent_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을 사용하세요.

사용자가 멤버인 프로젝트 및 그룹 목록

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 특정 사용자의 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

사용자의 이중 인증 비활성화

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

사전 요구 사항:

  • 관리자여야 합니다.

지정된 사용자의 이중 인증(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

사용자에 연결된 러너 생성

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

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

사전 요구 사항:

  • 대상 네임스페이스 또는 프로젝트의 소유자 역할을 가진 관리자이거나 관리자여야 합니다.
  • 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_typegroup_type인 경우 필요합니다.
project_id 정수 아니요 러너가 생성된 프로젝트의 ID입니다. runner_typeproject_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
}

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

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

해당 신원과 연결된 제공자 이름을 사용하여 사용자의 인증 신원을 삭제합니다.

필수 조건:

  • 관리자여야 합니다.
DELETE /users/:id/identities/:provider

지원되는 속성:

속성 유형 필요 여부 설명
id 정수 사용자 ID
provider 문자열 외부 제공자 이름