ユーザーAPI

このドキュメントには、Users API の API コール、パラメータ、およびレスポンスに関する情報が記載されています。

ユーザーイベントのタイムスタンプを更新するユーザーアクティビティについては、ユーザーアクティビティの取得を参照してください。

ユーザー一覧

ユーザーのリストを取得します。

この関数は、ページ分割パラメータpageper_page を受け取り、ユーザーのリストを制限します。

管理者以外のユーザーの場合

GET /users
属性種類必須説明
username文字列です。いいえ特定のユーザー名を持つ単一のユーザーを取得します。
extern_uid文字列です。いいえ特定の外部認証プロバイダUIDを持つ単一のユーザーを取得します。
provider文字列です。いいえ外部プロバイダー。
search文字列です。いいえユーザー名を検索します。
activebooleanいいえアクティビティユーザーのみをフィルタリングします。デフォルトはfalse です。
externalbooleanいいえ外部ユーザーのみをフィルタリングします。デフォルトはfalse です。
exclude_externalbooleanいいえ外部ユーザー以外をフィルタリングします。デフォルトはfalse です。
blockedbooleanいいえブロックされたユーザーのみをフィルタリングします。デフォルトはfalse です。
created_after日付いいえ指定した時間以降に作成されたユーザーを返します。
created_before日付いいえ指定された時間以前に作成されたユーザーを返します。
exclude_internalbooleanいいえ内部ユーザー以外をフィルタリングします。デフォルトはfalse です。
without_project_botsbooleanいいえプロジェクトボットのないユーザーをフィルタリングします。デフォルトはfalse です。
[
  {
    "id": 1,
    "username": "john_smith",
    "name": "John Smith",
    "state": "active",
    "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",
    "avatar_url": "http://gravatar.com/../e32131cd8.jpeg",
    "web_url": "http://localhost:3000/jack_smith"
  }
]

また、?search= を使って、名前、ユーザー名、公開Eメールでユーザーを検索することもできます。たとえば、/users?search=John 。を検索する場合:

  • 公開電子メールを検索する場合は、完全一致を得るために完全な電子メール・アドレスを使用する必要があります。検索は部分一致を返すことがあります。たとえば、電子メールを検索した場合、on@example.com検索は on@example.com jon@example.comon@example.com両方を返す可能性が on@example.comあります。
  • 名前またはユーザー名は、あいまい検索なので、完全に一致する必要はありません。

また、ユーザー名でユーザーを検索することもできます:

GET /users?username=:username

使用例:

GET /users?username=jack_smith
note
ユーザー名検索は大文字と小文字を区別しません。

さらに、blockedactive の状態に基づいてユーザーをフィルタリングすることができます。active=falseblocked=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

管理者の場合

  • レスポンスのnamespace_id フィールドは GitLab 14.10 で導入されました。
  • レスポンスのcreated_by フィールドは GitLab 15.6 で導入されました。
  • レスポンスのscim_identities フィールドは GitLab 16.1 で導入されました。
  • GitLab 16.2 で導入されたレスポンスのauditors フィールド。
GET /users

誰でも使える全てのパラメータと、管理者だけが使える追加のパラメータを使うことができます。

属性種類必須説明
order_by文字列です。いいえ idnameusernamecreated_atupdated_at フィールドの順にユーザーを返します。デフォルトはid
sort文字列です。いいえユーザーをasc またはdesc 順序で descソートして返しますdesc 。デフォルトは desc
two_factor文字列です。いいえユーザーを二要素認証でフィルタリングします。フィルタ値はenabled またはdisabled です。 デフォルトでは、すべてのユーザーを返します。
without_projectsbooleanいいえプロジェクトのないユーザーをフィルタリングします。デフォルトはfalse で、プロジェクトの有無にかかわらず、すべてのユーザーを返します。
adminsbooleanいいえ管理者のみを返します。デフォルトはfalse
auditors booleanいいえ監査役ユーザーのみを返します。デフォルトはfalse です。 含まれない場合、すべてのユーザーを返します。
saml_provider_id いいえ指定した SAML プロバイダ ID によって作成されたユーザのみを返します。指定しない場合は、すべてのユーザを返します。
skip_ldap booleanいいえLDAPユーザーをスキップします。
[
  {
    "id": 1,
    "username": "john_smith",
    "email": "john@example.com",
    "name": "John Smith",
    "state": "active",
    "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
  },
  {
    "id": 2,
    "username": "jack_smith",
    "email": "jack@example.com",
    "name": "Jack Smith",
    "state": "blocked",
    "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
  }
]

GitLab Premium または Ultimateのユーザーには、shared_runners_minutes_limit,extra_shared_runners_minutes_limit,is_auditor,using_license_seat パラメータも表示されます。

[
  {
    "id": 1,
    ...
    "shared_runners_minutes_limit": 133,
    "extra_shared_runners_minutes_limit": 133,
    "is_auditor": false,
    "using_license_seat": true
    ...
  }
]

GitLab Premium または Ultimateのユーザーには、group_saml プロバイダーオプションとprovisioned_by_group_id パラメーターも表示されます:

[
  {
    "id": 1,
    ...
    "identities": [
      {"provider": "github", "extern_uid": "2435223452345"},
      {"provider": "bitbucket", "extern_uid": "john.smith"},
      {"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"},
      {"provider": "group_saml", "extern_uid": "123789", "saml_provider_id": 10}
    ],
    "provisioned_by_group_id": 123789
    ...
  }
]

また、?search= を使って、名前、ユーザー名、Eメールでユーザーを検索することもできます。例えば、/users?search=John.を検索する場合:

  • を検索する場合、完全一致を得るには、完全な電子メール・アドレスを使用する必要があります。管理者であれば、公開メールアドレスと非公開メールアドレスの両方を検索できます。
  • 名前またはユーザー名は、あいまい検索なので、完全に一致する必要はありません。

外部UIDとプロバイダからユーザーを検索することができます:

GET /users?extern_uid=:extern_uid&provider=:provider

使用例:

GET /users?extern_uid=1234567&provider=github

GitLab Premium または Ultimateのユーザーはscim プロバイダを利用できます:

GET /users?extern_uid=1234567&provider=scim

で作成日時の範囲でユーザーを検索できます:

GET /users?created_before=2001-01-02T00:00:00.060Z&created_after=1999-01-02T00:00:00.060

でプロジェクトがないユーザーを検索できます:/users?without_projects=true

カスタム属性でフィルタリングできます:

GET /users?custom_attributes[key]=value&custom_attributes[other_key]=other_value

でユーザーのカスタム属性をレスポンスに含めることができます:

GET /users?with_custom_attributes=true

created_by パラメータを使うと、ユーザーアカウントが作成されたかどうかを調べることができます:

返された値がnull の場合、アカウントはユーザー自身が登録したものです。

シングルユーザー

シングルユーザーを取得します。

ユーザー

前提条件:

  • このエンドポイントを使用するには、サインインする必要があります。
GET /users/:id

パラメータを指定します:

属性種類必須説明
id整数。yesユーザーのID
{
  "id": 1,
  "username": "john_smith",
  "name": "John Smith",
  "state": "active",
  "avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg",
  "web_url": "http://localhost:3000/john_smith",
  "created_at": "2012-05-23T08:00:58Z",
  "bio": "",
  "bot": false,
  "location": null,
  "public_email": "john@example.com",
  "skype": "",
  "linkedin": "",
  "twitter": "",
  "discord": "",
  "website_url": "",
  "organization": "",
  "job_title": "Operations Specialist",
  "pronouns": "he/him",
  "work_information": null,
  "followers": 1,
  "following": 1,
  "local_time": "3:38 PM",
  "is_followed": false
}

管理者の場合

  • レスポンスのnamespace_id フィールドは GitLab 14.10 で導入されました。
  • レスポンスのcreated_by フィールドは GitLab 15.6 で導入されました。
GET /users/:id

パラメータを指定します:

属性種類必須説明
id整数。yesユーザーのID

応答例

{
  "id": 1,
  "username": "john_smith",
  "email": "john@example.com",
  "name": "John Smith",
  "state": "active",
  "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
}
note
plantrial パラメータは GitLab Enterprise Edition でのみ利用可能です。

GitLab PremiumまたはUltimateのユーザーには、shared_runners_minutes_limitis_auditorextra_shared_runners_minutes_limit パラメータも表示されます。

{
  "id": 1,
  "username": "john_smith",
  "is_auditor": false,
  "shared_runners_minutes_limit": 133,
  "extra_shared_runners_minutes_limit": 133,
  ...
}

GitLab.com Premium または Ultimateのユーザーには、group_saml オプションとprovisioned_by_group_id パラメーターも表示されます:

{
  "id": 1,
  "username": "john_smith",
  "shared_runners_minutes_limit": 133,
  "extra_shared_runners_minutes_limit": 133,
  "identities": [
    {"provider": "github", "extern_uid": "2435223452345"},
    {"provider": "bitbucket", "extern_uid": "john.smith"},
    {"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"},
    {"provider": "group_saml", "extern_uid": "123789", "saml_provider_id": 10}
  ],
  "provisioned_by_group_id": 123789
  ...
}

GitLab.com Premium または Ultimateのユーザーには、scim_identities パラメータも表示されます:

{
  ...
  "extra_shared_runners_minutes_limit": null,
  "scim_identities": [
      {"extern_uid": "2435223452345", "group_id": "3", "active": true},
      {"extern_uid": "john.smith", "group_id": "42", "active": false}
    ]
  ...
}

管理者はcreated_by パラメータを使ってユーザーアカウントが作成されたかどうかを確認することができます:

返された値がnull の場合、アカウントはユーザー自身が登録したものです。

レスポンスには、ユーザーのカスタム属性を含めることができます:

GET /users/:id?with_custom_attributes=true

ユーザー作成

  • レスポンスのnamespace_id フィールドは GitLab 14.10 で導入されました。
  • 監査役ユーザーを作成する機能が GitLab 15.3 で導入されました。

新しいユーザーを作成します。新しいユーザーを作成できるのは管理者のみです。passwordreset_passwordforce_random_password のいずれかを指定する必要があります。reset_passwordforce_random_password の両方がfalse の場合、password が必要です。

force_random_passwordreset_password は、password より優先されます。また、reset_passwordforce_random_password は併用できます。

note
GitLab 12.1以降、private_profile のデフォルトはfalseGitLab 15.8からは、private_profile がデフォルトとなります
note
GitLab 13.2以降、bio のデフォルトはnull ではなく""
POST /users

パラメータを指定します:

属性必須説明
adminなしユーザーは管理者です。有効な値はtrue またはfalse です。デフォルトはfalseです。
auditor なしユーザーは監査役です。有効な値はtrue またはfalse です。デフォルトは false です。GitLab 15.3 で導入
avatarなしユーザーアバター用画像ファイル
bioなしユーザーの経歴
can_create_groupなしユーザーがトップレベルのグループを作成できる - true または false
color_scheme_idなしファイルビューアのユーザー配色(詳細については、ユーザー設定ドキュメントを参照してください。)
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なしユーザーが作成できるプロジェクトの数
providerなし外部プロバイダー名
reset_passwordなしユーザーパスワードリセットリンクの送信 - true または false(デフォルト)
shared_runners_minutes_limit なし管理者のみが設定できます。このユーザーの月間最大計算分数。nil (デフォルト。システムのデフォルトを継承)、0 (無制限)、または> 0
skip_confirmationなし確認をスキップ - true または false(デフォルト)
skypeなしスカイプID
theme_idなしユーザーのGitLabテーマ(詳細については、ユーザー設定ドキュメントを参照してください。)
twitterなしTwitterアカウント
discordなしDiscordアカウント
usernameはいユーザー名
view_diffs_file_by_fileなしユーザーが1ページに1つのファイル差分しか見ないことを示すフラグ
website_urlなしウェブサイトのURL

ユーザー修正

  • レスポンスのnamespace_id フィールドは GitLab 14.10 で導入されました。
  • 監査役ユーザーを変更する機能が GitLab 15.3 で導入されました。

既存のユーザーを変更します。ユーザーの属性を変更できるのは管理者のみです。

email フィールドはユーザーのプライマリメールアドレスです。このフィールドを変更できるのは、そのユーザー用にすでに追加されているセカンダリEメールアドレスのみです。同じユーザーにさらにメールアドレスを追加するには、メール追加機能を使用してください。

PUT /users/:id

パラメータを指定します:

属性必須説明
adminなしユーザーは管理者です。有効な値はtrue またはfalse です。デフォルトはfalseです。
auditor なしユーザーは監査役です。有効な値はtrue またはfalse です。デフォルトはfalse。GitLab 15.3で導入されました。
avatarなしユーザーアバター用画像ファイル
bioなしユーザーの経歴
can_create_groupなしユーザーがグループを作成できる - true または false
color_scheme_idなしファイル・ビューアーのユーザーの配色(詳細については、ユーザー設定のドキュメントを参照してください。)
commit_emailなしユーザーのコミットメール。非公開のコミットメールを使用するには_private に設定します。GitLab 15.5で導入されました
emailなしメール
extern_uidなし外部UID
externalなしユーザーを外部とフラグ付け - true または false (デフォルト)
extra_shared_runners_minutes_limit なし管理者のみが設定できます。このユーザーの追加計算分。
group_id_for_samlなしSAML が設定されているグループの ID
idはいユーザーのID
linkedinなしLinkedIn
locationなしユーザーの所在地
nameなし名前
noteなしこのユーザーの管理メモ
organizationなし組織名
passwordなしパスワード
private_profileなしユーザーのプロフィールは非公開です。
projects_limitなし各ユーザーが作成できるプロジェクトの制限
pronounsなし代名詞
providerなし外部プロバイダー名
public_emailなしユーザーの公開メール(認証済みである必要があります。)
shared_runners_minutes_limit なし管理者のみが設定できます。このユーザーの月間最大計算分数。nil (デフォルト、システムデフォルトを継承)、0 (無制限)、または> 0
skip_reconfirmationなし再確認をスキップ - true または false(デフォルト)
skypeなしスカイプID
theme_idなしユーザーのGitLabテーマ(詳細については、ユーザー設定ドキュメントを参照してください。)
twitterなしTwitterアカウント
discordなしDiscordアカウント
usernameなしユーザー名
view_diffs_file_by_fileなしユーザーが1ページに1つのファイル差分しか見ないことを示すフラグ
website_urlなしウェブサイトのURL

パスワードが更新されると、ユーザーは次回ログイン時にパスワードを変更するよう強制されます。今のところ、このメソッドは409 (Conflict) の方が適切な場合でも404 エラーしか返しません。例えば、メールアドレスの名前を既存のものに変更する場合などです。

ユーザーから認証 ID を削除します。

ID に関連付けられたプロバイダ名を使用して、ユーザーの認証 ID を削除します。管理者のみが使用できます。

DELETE /users/:id/identities/:provider

パラメータを指定します:

属性種類必須説明
id整数。yesユーザーのID
provider文字列です。yes外部プロバイダー名

ユーザー削除

ユーザーを削除します。管理者のみ利用可能です。オペレーションに成功した場合は204 No Content 、リソースが見つからなかった場合は404 、ユーザーをソフト削除できなかった場合は409

DELETE /users/:id

パラメータを指定します:

属性種類必須説明
id整数。yesユーザーのID
hard_deletebooleanいいえtrueの場合、通常Ghost Userに移動される貢献者は、このユーザーのみが所有するグループと同様に、代わりに削除されます。

現在のユーザーを表示

現在のユーザーを取得します。

管理者以外のユーザーの場合

認証済みユーザーを取得します。

GET /user
{
  "id": 1,
  "username": "john_smith",
  "email": "john@example.com",
  "name": "John Smith",
  "state": "active",
  "avatar_url": "http://localhost:3000/uploads/user/avatar/1/index.jpg",
  "web_url": "http://localhost:3000/john_smith",
  "created_at": "2012-05-23T08:00:58Z",
  "bio": "",
  "location": null,
  "public_email": "john@example.com",
  "skype": "",
  "linkedin": "",
  "twitter": "",
  "discord": "",
  "website_url": "",
  "organization": "",
  "job_title": "",
  "pronouns": "he/him",
  "bot": false,
  "work_information": null,
  "followers": 0,
  "following": 0,
  "local_time": "3:38 PM",
  "last_sign_in_at": "2012-06-01T11:41:01Z",
  "confirmed_at": "2012-05-23T09:05:22Z",
  "theme_id": 1,
  "last_activity_on": "2012-05-23",
  "color_scheme_id": 2,
  "projects_limit": 100,
  "current_sign_in_at": "2012-06-02T06:36:55Z",
  "identities": [
    {"provider": "github", "extern_uid": "2435223452345"},
    {"provider": "bitbucket", "extern_uid": "john_smith"},
    {"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"}
  ],
  "can_create_group": true,
  "can_create_project": true,
  "two_factor_enabled": true,
  "external": false,
  "private_profile": false,
  "commit_email": "admin@example.com",
}

GitLab Premium または Ultimateのユーザーにはshared_runners_minutes_limit,extra_shared_runners_minutes_limit パラメータも表示されます。

管理者の場合

  • レスポンスのnamespace_id フィールドは GitLab 14.10 で導入されました。
  • レスポンスのcreated_by フィールドは GitLab 15.6 で導入されました。
GET /user

パラメータを指定します:

属性種類必須説明
sudo整数。いいえ代わりに電話をかけるユーザーのID
{
  "id": 1,
  "username": "john_smith",
  "email": "john@example.com",
  "name": "John Smith",
  "state": "active",
  "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,
  "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文字列です。yesステータスを取得するユーザーのIDまたはユーザー名
curl "https://gitlab.example.com/users/janedoe/status"

応答例

{
  "emoji":"coffee",
  "availability":"busy",
  "message":"I crave coffee :coffee:",
  "message_html": "I crave coffee <gl-emoji title=\"hot beverage\" data-name=\"coffee\" data-unicode-version=\"4.0\">☕</gl-emoji>",
  "clear_status_at": null
}

ユーザーステータスの設定

現在のユーザーのステータスを設定します。

PUT /user/status
PATCH /user/status
属性種類必須説明
emoji文字列です。いいえステータスとして使用する絵文字の名前。省略時はspeech_balloon 。絵文字名はGemojioneインデックスで指定された名前のいずれかになります。
message文字列です。いいえステータスとして設定するメッセージ。絵文字コードを含むこともできます。100文字を超えることはできません。
clear_status_after文字列です。いいえ与えられた時間間隔の後に自動的にステータスをクリーンアップします:30_minutes 3_hours,8_hours,1_day,3_days,7_days30_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はいユーザーが1ページに1つのファイル差分しか見ないことを示すフラグ。
show_whitespace_in_diffsはいユーザーが diff で空白の変更を見ることを示すフラグ。
pass_user_identities_to_ci_jwtはいユーザーが CI 情報として外部 ID を渡すことを示すフラグ。この属性は、外部システムでユーザーを識別または認証するのに十分な情報を含んでいません。この属性は GitLab 内部で使われるものであり、サードパーティのサービスに渡してはいけません。詳細と例については、Token Payload を参照してください。

ユーザーフォロー

ユーザーのフォローとフォロー解除

ユーザーをフォロー

POST /users/:id/follow

ユーザーのフォローを解除します。

POST /users/:id/unfollow
属性種類必須説明
id整数。yesフォローするユーザーのID
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/users/3/follow"

応答例

{
  "id": 1,
  "username": "john_smith",
  "name": "John Smith",
  "state": "active",
  "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整数。yesフォローするユーザーのID
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>"  "https://gitlab.example.com/users/3/followers"

応答例

[
  {
    "id": 2,
    "name": "Lennie Donnelly",
    "username": "evette.kilback",
    "state": "active",
    "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",
    "avatar_url": "https://www.gravatar.com/avatar/a2daad869a7b60d3090b7b9bef4baf57?s=80&d=identicon",
    "web_url": "http://127.0.0.1:3000/cammy"
  }
]

ユーザー数

認証済みユーザーのカウント数(右上メニューと同じ)を取得します。

属性種類説明
assigned_issues現在のユーザーに割り当てられているイシューの数。GitLab 14.2 で追加されました。
assigned_merge_requestsアクティブで現在のユーザーに割り当てられているマージリクエストの数。GitLab 13.8 で追加されました。
merge_requestsGitLab 13.8 で非推奨assigned_merge_requests と同等であり、置き換わっています。
review_requested_merge_requests現在のユーザーがレビューをリクエストされたマージリクエストの数。GitLab 13.8 で追加されました。
todos現在のユーザーの保留中のTo-Doアイテムの数。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
}

サービスアカウントユーザーの作成

サービスアカウントユーザーを作成する機能はGitLab 16.1から導入されました。

自動生成されたメールアドレスとユーザー名でサービスアカウントユーザーを作成します。管理者のみ利用可能です。

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

ユーザープロジェクトのリスト

ユーザープロジェクトの一覧をご覧ください。

ユーザーのアソシエーション数一覧

指定したユーザーの関連カウントのリストを取得します:

  • プロジェクト
  • グループ
  • イシュー
  • マージリクエスト

管理者はどのユーザーにもクエリできますが、非管理者は自分自身にしかクエリできません。

GET /users/:id/associations_count

パラメータを指定します:

属性種類必須説明
id整数。yesユーザーの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文字列です。yesSSH キーを取得するユーザーの ID またはユーザー名。

単一のSSHキー

単一の鍵を取得します。

GET /user/keys/:key_id

パラメータを指定します:

属性種類必須説明
key_id文字列です。yesSSHキーのID
{
  "id": 1,
  "title": "Public key",
  "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
  "created_at": "2014-08-01T14:47:39.080Z"
}

指定されたユーザー用の単一のSSHキー

GitLab 14.9で導入されました

指定したユーザーのキーを一つ取得します。

GET /users/:id/keys/:key_id

パラメータを指定します:

属性種類必須説明
id整数。yes指定ユーザーのID
key_id整数。yesSSHキー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文字列です。yes新しいSSHキーのタイトル
key文字列です。yes新しい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": [
      "has already been taken"
    ],
    "key": [
      "has already been taken"
    ]
  }
}

ユーザー用の SSH キーを追加します。

usage_type パラメータは GitLab 15.7 で導入されました。

指定したユーザーが所有する新しいキーを作成します。管理者のみ使用可能。

POST /users/:id/keys

パラメータを指定します:

属性種類必須説明
id整数。yes指定ユーザーのID
title文字列です。yes新しいSSHキーのタイトル
key文字列です。yes新しい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": [
      "has already been taken"
    ],
    "key": [
      "has already been taken"
    ]
  }
}
note
監査インスタンス・イベント で説明するように、これは監査イベントも追加します。

現在のユーザーの SSH キーを削除します。

認証済みユーザーが所有する鍵を削除します。

オペレーションに成功した場合は204 No Content ステータスコードを返し、リソースが見つからなかった場合は404 を返します。

DELETE /user/keys/:key_id

パラメータを指定します:

属性種類必須説明
key_id整数。yesSSHキーID

指定したユーザーのSSHキーを削除します。

指定したユーザーが所有する鍵を削除します。管理者のみ利用可能です。

DELETE /users/:id/keys/:key_id

パラメータを指定します:

属性種類必須説明
id整数。yes指定ユーザーのID
key_id整数。yesSSHキー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整数。yesGPGキーの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文字列です。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整数。yesGPGキーの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整数。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整数。yesユーザーのID
key_id整数。yesGPGキーのID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys/1"

応答例

  {
      "id": 1,
      "key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----",
      "created_at": "2017-09-05T09:17:46.264Z"
  }

指定されたユーザーの GPG 鍵を追加します。

指定したユーザーが所有する新しいGPGキーを作成します。管理者のみ利用可能です。

POST /users/:id/gpg_keys

パラメータを指定します:

属性種類必須説明
id整数。yesユーザーのID
key_id整数。yesGPGキーのID
curl --data-urlencode "key=-----BEGIN PGP PUBLIC KEY BLOCK-----
> xsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj
> t1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O
> CfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa
> qKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO
> VaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57
> vilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp
> IDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV
> CAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/
> oO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5
> crfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4
> bjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn
> iE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp
> o4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=
> =XQoy
> -----END PGP PUBLIC KEY BLOCK-----" \
     --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys"

応答例

[
    {
        "id": 1,
        "key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\n=XQoy\n-----END PGP PUBLIC KEY BLOCK-----",
        "created_at": "2017-09-05T09:17:46.264Z"
    }
]

指定されたユーザーの GPG 鍵を削除します。

指定したユーザーが所有する GPG 鍵を削除します。管理者のみ利用可能です。

DELETE /users/:id/gpg_keys/:key_id

パラメータを指定します:

属性種類必須説明
id整数。yesユーザーのID
key_id整数。yesGPGキーの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
  }
]

パラメータを指定します:

  • なし

ユーザーのEメールをリストアップします。

指定したユーザーのメールのリストを取得します。管理者のみ利用可能

note
このエンドポイントはプライマリ・メール・アドレスを返しませんが、イシュー25077はこの動作を変更することを提案しています。
GET /users/:id/emails

パラメータを指定します:

属性種類必須説明
id整数。yes指定ユーザーのID

単一メール

単一の電子メールを取得します。

GET /user/emails/:email_id

パラメータを指定します:

属性種類必須説明
email_id整数。yesメールアドレス
{
  "id": 1,
  "email": "email@example.com",
  "confirmed_at" : "2021-03-26T19:07:56.248Z"
}

電子メールを追加

認証されたユーザーが所有する新しいEメールを作成します。

POST /user/emails

パラメータを指定します:

属性種類必須説明
email文字列です。yesアドレス
{
  "id": 4,
  "email": "email@example.com",
  "confirmed_at" : "2021-03-26T19:07:56.248Z"
}

成功した場合、作成された電子メールをステータス201 Created で返します。エラーが発生した場合は、エラーを説明するメッセージとともに400 Bad Request が返されます:

{
  "message": {
    "email": [
      "has already been taken"
    ]
  }
}

ユーザーの電子メールを追加します。

指定したユーザーのメールを新規作成します。管理者のみ利用可能

POST /users/:id/emails

パラメータを指定します:

属性種類必須説明
id文字列です。yes指定ユーザーのID
email文字列です。yesアドレス
skip_confirmationbooleanいいえ確認をスキップし、メールが確認されたものとします。

現在のユーザーのメールを削除します。

認証済みユーザーが所有する電子メールを削除します。

オペレーションに成功した場合は204 No Content ステータスコードを返し、リソースが見つからなかった場合は404 を返します。

プライマリ・メール・アドレスを削除することはできません。

DELETE /user/emails/:email_id

パラメータを指定します:

属性種類必須説明
email_id整数。yesメールアドレス

指定したユーザーのメールを削除します。

前提条件

  • セルフマネージド GitLab インスタンスの管理者である必要があります。

指定したユーザーが所有するメールアドレスを削除します。プライマリメールアドレスを削除することはできません。

DELETE /users/:id/emails/:email_id

パラメータを指定します:

属性種類必須説明
id整数。yes指定ユーザーのID
email_id整数。yesメールアドレス

ユーザーをブロック

指定したユーザーをブロックします。管理者のみ有効です。

POST /users/:id/block

パラメータを指定します:

属性種類必須説明
id整数。yes指定ユーザーのID

を返します:

  • 201 OK 成功時
  • 404 User Not Found ユーザーが見つからない場合。
  • 403 Forbidden ブロックしようとすると
    • LDAPでブロックされているユーザー。
    • 内部ユーザー。

ブロック解除ユーザー

指定したユーザーのブロックを解除します。管理者のみ有効です。

POST /users/:id/unblock

パラメータを指定します:

属性種類必須説明
id整数。yes指定ユーザーのID

成功した場合は201 OK を、ユーザーが見つからない場合は404 User Not Found を、LDAP 同期によってブロックされたユーザーのブロックを解除しようとした場合は403 Forbidden を返します。

ユーザーの無効化

GitLab 12.4で導入されました

指定したユーザーを非アクティブにします。管理者のみ使用可能。

POST /users/:id/deactivate

パラメータを指定します:

属性種類必須説明
id整数。yes指定ユーザーのID

を返します:

  • 201 OK 成功時
  • 404 User Not Found ユーザーが見つからない場合。
  • 403 Forbidden というユーザーを無効化しようとした場合:
    • 管理者またはLDAP同期によってブロックされているユーザー。
    • 休止状態でない
    • 内部。

ユーザーをアクティベート

GitLab 12.4で導入されました

指定したユーザーをアクティビティ化します。管理者のみ使用可能。

POST /users/:id/activate

パラメータを指定します:

属性種類必須説明
id整数。yes指定ユーザーのID

を返します:

  • 201 OK 成功時
  • 404 User Not Found ユーザーが見つからない場合は
  • 403 Forbidden 管理者または LDAP 同期によってブロックされているため、ユーザーをアクティブ化できない場合。

ユーザーを禁止

GitLab 14.3で導入されました

指定したユーザーを禁止します。管理者のみ使用可能。

POST /users/:id/ban

パラメータを指定します:

  • id (必須) - 指定されたユーザーのID

を返します:

  • 201 OK 成功時
  • 404 User Not Found ユーザーが見つからない場合。
  • 403 Forbidden アクティブでないユーザーを追放しようとしたとき。

ユーザーを追放

GitLab 14.3で導入されました

指定したユーザーのアクセス禁止を解除します。管理者のみ利用可能。

POST /users/:id/unban

パラメータを指定します:

  • id (必須) - 指定されたユーザーのID

を返します:

  • 201 OK 成功時
  • 404 User Not Found ユーザーが見つからない場合は
  • 403 Forbidden BANされていないユーザーをBAN解除しようとした場合。

ユーザー貢献イベントの取得

イベントAPIドキュメントを参照

ユーザーのすべてのなりすましトークンを取得

管理者権限が必要です。

ユーザーのすべてのなりすましトークンを取得します。ページ分割パラメータpageper_page を使用して、なりすましトークンのリストを制限します。

GET /users/:user_id/impersonation_tokens

パラメータを指定します:

属性種類必須説明
user_id整数。yesユーザーのID
state文字列です。いいえ状態に基づくトークンのフィルタ (all,active,inactive)
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"

応答例

[
   {
      "active" : true,
      "user_id" : 2,
      "scopes" : [
         "api"
      ],
      "revoked" : false,
      "name" : "mytoken",
      "id" : 2,
      "created_at" : "2017-03-17T17:18:09.283Z",
      "impersonation" : true,
      "expires_at" : "2017-04-04",
      "last_used_at": "2017-03-24T09:44:21.722Z"
   },
   {
      "active" : false,
      "user_id" : 2,
      "scopes" : [
         "read_user"
      ],
      "revoked" : true,
      "name" : "mytoken2",
      "created_at" : "2017-03-17T17:19:28.697Z",
      "id" : 3,
      "impersonation" : true,
      "expires_at" : "2017-04-14",
      "last_used_at": "2017-03-24T09:44:21.722Z"
   }
]

ユーザーの承認者

GitLab 13.7 で導入されました

指定したユーザーを承認します。管理者のみ利用可能。

POST /users/:id/approve

パラメータを指定します:

属性種類必須説明
id整数。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 ユーザーが見つからない場合。
  • 403 Forbidden ユーザーが管理者によってブロックされているか、LDAP 同期によって承認者が見つからない場合。
  • 409 Conflict ユーザーが無効化されている場合。

応答例

{ "message": "Success" }
{ "message": "404 User Not Found" }
{ "message": "The user you are trying to approve is not pending approval" }

ユーザーを拒否

GitLab 14.3で導入されました

承認待ちユーザーを拒否します。管理者のみ利用可能。

POST /users/:id/reject

パラメータを指定します:

  • id (必須) - 指定されたユーザーのID
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/reject"

を返します:

  • 200 OK 成功時
  • 403 Forbidden 管理者として認証されていない場合
  • 404 User Not Found ユーザーが見つからない場合。
  • 409 Conflict ユーザーが承認待ちでない場合。

応答例

{ "message": "Success" }
{ "message": "404 User Not Found" }
{ "message": "User does not have a pending request" }

ユーザーのなりすましトークンの取得

管理者権限が必要です。

ユーザーのなりすましトークンを表示します。

GET /users/:user_id/impersonation_tokens/:impersonation_token_id

パラメータを指定します:

属性種類必須説明
user_id整数。yesユーザーのID
impersonation_token_id整数。yesなりすましトークンのID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/2"

応答例

{
   "active" : true,
   "user_id" : 2,
   "scopes" : [
      "api"
   ],
   "revoked" : false,
   "name" : "mytoken",
   "id" : 2,
   "created_at" : "2017-03-17T17:18:09.283Z",
   "impersonation" : true,
   "expires_at" : "2017-04-04"
}

なりすましトークンの作成

管理者権限が必要です。トークンの値は一度だけ返されます。二度とアクセスできないので、必ず保存してください。

新しいなりすましトークンを作成します。これは管理者しかできません。ユーザーになりすまし、APIコールとGitの読み書き両方を実行するためにのみ、なりすましトークンを作成することができます。ユーザーはこれらのトークンをプロフィール設定ページで見ることはできません。

POST /users/:user_id/impersonation_tokens
属性種類必須説明
user_id整数。yesユーザーのID
name文字列です。yesなりすましトークンの名前
expires_at期日いいえISOフォーマットによるなりすましトークンの有効期限 (YYYY-MM-DD)
scopesアレイyesなりすましトークンのスコープの配列 (api,read_user)
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "expires_at=2017-04-04" \
     --data "scopes[]=api" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"

応答例

{
   "id" : 2,
   "revoked" : false,
   "user_id" : 2,
   "scopes" : [
      "api"
   ],
   "token" : "EsMo-vhKfXGwX9RKrwiy",
   "active" : true,
   "impersonation" : true,
   "name" : "mytoken",
   "created_at" : "2017-03-17T17:18:09.283Z",
   "expires_at" : "2017-04-04"
}

なりすましトークンの取り消し

管理者権限が必要です。

なりすましトークンを取り消します。

DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id

パラメータを指定します:

属性種類必須説明
user_id整数。yesユーザーのID
impersonation_token_id整数。yesなりすましトークンのID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/1"

個人アクセストークンの作成

このAPIを使って新しい個人アクセストークンを作成してください。トークンの値は一度だけ返されるため、再度アクセストークンを作成することはできないので、必ず保存してください。このAPIはGitLab管理者のみが使用できます。

POST /users/:user_id/personal_access_tokens
属性種類必須説明
user_id整数。yesユーザーのID
name文字列です。yes個人アクセストークンの名前
expires_at期日いいえアクセストークンの有効期限をISOフォーマット(YYYY-MM-DD)で指定します。日付が設定されていない場合、アクセストークンの最大有効期限が設定されます。
scopesアレイyes個人アクセストークンのスコープの配列。指定可能な値はパーソナルアクセストークンのスコープを参照ください。
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"
}

ユーザーアクティビティの取得

前提条件

  • 管理者である必要があります。

全ユーザーの最終アクティビティ日付を古い順から取得します。

ユーザーイベントのタイムスタンプ(last_activity_oncurrent_sign_in_at)を更新するアクティビティは以下の通りです:

  • Git HTTP/SSHアクティビティ(cloneやpushなど)。
  • GitLabにログインするユーザー
  • ダッシュボード、プロジェクト、イシュー、マージリクエストに関連するページを訪れたユーザー(GitLab 11.8 で導入)
  • API を利用するユーザー
  • GraphQL APIを使用するユーザー

デフォルトでは、過去6ヶ月間の全ユーザーのアクティビティが表示されますが、from パラメータを使用して変更することができます。

GET /user/activities

パラメータを指定します:

属性種類必須説明
from文字列です。いいえ YEAR-MM-DD という書式の日付文字列。例えば、2016-03-11 。デフォルトは6ヶ月前です。
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/activities"

応答例

[
  {
    "username": "user1",
    "last_activity_on": "2015-12-14",
    "last_activity_at": "2015-12-14"
  },
  {
    "username": "user2",
    "last_activity_on": "2015-12-15",
    "last_activity_at": "2015-12-15"
  },
  {
    "username": "user3",
    "last_activity_on": "2015-12-16",
    "last_activity_at": "2015-12-16"
  }
]

last_activity_at は非推奨です。代わりにlast_activity_on を使用してください。

ユーザーメンバーシップ

GitLab 12.8で導入されました

前提条件

  • 管理者である必要があります。

ユーザーがメンバーであるすべてのプロジェクトとグループを一覧表示します。メンバシップのsource_idsource_namesource_typeaccess_level を返します。ソースには、Namespace (グループを表す)またはProjectのタイプを指定できます。 レスポンスは、直接のメンバシップのみを表します。継承されたメンバシップ (サブグループなど) は含まれません。アクセスレベルは整数値で表されます。詳細は、アクセス・レベル値の意味を参照してください。

GET /users/:id/memberships

パラメータを指定します:

属性種類必須説明
id整数。yes指定ユーザーのID
type文字列です。いいえ会員をタイプ別に絞り込みます。Project またはNamespace

を返します:

  • 200 OK 成功時
  • 404 User Not Found ユーザーが見つからない場合は
  • 403 Forbidden 管理者から要求されていない場合
  • 400 Bad Request 要求されたタイプがサポートされていない場合。
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/:user_id/memberships"

応答例

[
  {
    "source_id": 1,
    "source_name": "Project one",
    "source_type": "Project",
    "access_level": "20"
  },
  {
    "source_id": 3,
    "source_name": "Group three",
    "source_type": "Namespace",
    "access_level": "20"
  }
]

二要素認証の無効化

GitLab 15.2 で導入されました

前提条件

  • 管理者である必要があります。

指定したユーザーの二要素認証(2FA)を無効にします。

管理者は、APIを使用して自分のユーザーアカウントや他の管理者の2FAを無効にすることはできません。代わりに、Railsコンソールを使って管理者の2FAを無効にすることができます。

PATCH /users/:id/disable_two_factor

パラメータを指定します:

属性種類必須説明
id整数。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 成功時
  • 400 Bad request 指定したユーザーで二要素認証が有効になっていない場合。
  • 403 Forbidden 管理者として認証されていない場合
  • 404 User Not Found ユーザーが見つからない場合。

ランナーの作成

現在のユーザーにリンクされたランナーを作成します。

前提条件:

  • 対象のネームスペースまたはプロジェクトの管理者またはオーナー・ロールを持っている必要があります。
  • instance_type の場合は、GitLabインスタンスの管理者である必要があります。
  • create_runner スコープのアクセストークン。

レスポンス内のtoken を必ずコピーまたは保存してください。

POST /user/runners
属性種類必須説明
runner_type文字列です。yesランナーのスコープを指定します;instance_typegroup_type 、またはproject_type
group_id整数。いいえランナーが作成されるグループのID。runner_typegroup_type の場合は必須です。
project_id整数。いいえランナーが作成されるプロジェクトのID。runner_typeproject_type の場合は必須です。
description文字列です。いいえランナーの説明
pausedbooleanいいえRunnerが新しいジョブを無視するかどうかを指定します。
lockedbooleanいいえ現在のプロジェクトでランナーをロックするかどうかを指定します。
run_untaggedbooleanいいえRunnerがタグなしジョブを処理するかどうかを指定します。
tag_list文字列配列いいえランナータグのリスト。
access_level文字列です。いいえランナーのアクセスレベル;not_protected またはref_protected
maximum_timeout整数。いいえランナーがジョブを実行できる時間(秒)を制限する最大タイムアウト。
maintenance_note文字列です。いいえランナーに対する自由形式のメンテナンスメモ(1024文字)。
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "runner_type=instance_type" \
     "https://gitlab.example.com/api/v4/user/runners"

応答例

{
    "id": 9171,
    "token": "glrt-kyahzxLaj4Dc1jQf4xjX",
    "token_expires_at": null
}