正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

ユーザーAPI

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

このAPIを使用して、GitLabのユーザーアカウントを操作します。これらのエンドポイントは、アカウントまたは他のユーザーのアカウントの管理に役立ちます。

ユーザーのリストを取得する

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

ユーザーのリストを制限するために、ページネーションパラメータpageper_pageを受け取ります。

標準ユーザーとして

GET /users

サポートされている属性は以下のとおりです:

属性必須説明
username文字列いいえ特定のユーザー名を持つ単一のユーザーを取得します。
public_email文字列いいえ特定の公開メールアドレスを持つ単一のユーザーを取得します。
search文字列いいえ名前、ユーザー名、または公開メールアドレスでユーザーを検索します。
activeブール値いいえアクティブユーザーのみをフィルタリングします。デフォルトはfalseです。
externalブール値いいえ外部ユーザーのみをフィルタリングします。デフォルトはfalseです。
blockedブール値いいえブロックされたユーザーのみをフィルタリングします。デフォルトはfalseです。
humansブール値いいえボットまたは内部ユーザーではない標準ユーザーのみをフィルタリングします。デフォルトはfalseです。
created_after日時いいえ指定された時刻以降に作成されたユーザーを返します。
created_before日時いいえ指定された時刻より前に作成されたユーザーを返します。
exclude_activeブール値いいえアクティブではないユーザーのみをフィルタリングします。デフォルトはfalseです。
exclude_externalブール値いいえ外部ユーザーではないユーザーのみをフィルタリングします。デフォルトはfalseです。
exclude_humansブール値いいえボットまたは内部ユーザーのみをフィルタリングします。デフォルトはfalseです。
exclude_internalブール値いいえ内部ユーザーではないユーザーのみをフィルタリングします。デフォルトはfalseです。
without_project_botsブール値いいえプロジェクトボットのないユーザーをフィルタリングします。デフォルトはfalseです。
saml_provider_id数値いいえGitLab 18.2で削除されました。代わりにGET /groups/:id/saml_usersを使用してください。

レスポンス例:

[
  {
    "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 17.0以降では、応答の数が50,000件以上の場合にはキーセットページネーションが必要です。

?search=を使用して、名前、ユーザー名、または公開メールアドレスでユーザーを検索することもできます。例: /users?search=John。検索対象に応じて、次のようになります:

  • 公開メールアドレスを検索する場合、完全一致する結果を取得するには、完全なメールアドレスを使用する必要があります。
  • 名前またはユーザー名を検索する場合、これはあいまい検索であるため、完全一致する結果を得る必要はありません。

さらに、ユーザー名でユーザーを検索できます:

GET /users?username=:username

例は次のとおりです:

GET /users?username=jack_smith

ユーザー名の検索では大文字と小文字は区別されません。

また、blocked状態とactive状態に基づいてユーザーをフィルタリングできます。active=falseblocked=falseはサポートされていません。

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

また、external=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

管理者として

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated
GET /users

すべてのユーザーが利用できるパラメータの他に、管理者のみが利用できる次の属性があります。

サポートされている属性は以下のとおりです:

属性必須説明
search文字列いいえ名前、ユーザー名、公開メールアドレス、または非公開メールアドレスでユーザーを検索します。
extern_uid文字列いいえ特定の外部認証プロバイダーUIDを持つ単一のユーザーを取得します。
provider文字列いいえ外部プロバイダー。
order_by文字列いいえidnameusernamecreated_at、またはupdated_atフィールドでユーザーを並べ替えて返します。デフォルトはidです。
sort文字列いいえascまたはdescの順にソートされたユーザーを返します。デフォルトはdescです。
two_factor文字列いいえ2要素認証でユーザーをフィルタリングします。フィルターの値はenabledまたはdisabledです。デフォルトでは、すべてのユーザーが返されます。
without_projectsブール値いいえプロジェクトのないユーザーをフィルタリングします。デフォルトはfalseです。これは、プロジェクトの有無にかかわらず、すべてのユーザーが返されることを意味します。
adminsブール値いいえ管理者のみを返します。デフォルトはfalseです。
auditorsブール値いいえ監査担当者ユーザーのみを返します。デフォルトはfalseです。含まれていない場合、すべてのユーザーが返されます。PremiumおよびUltimateのみ。
skip_ldapブール値いいえ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,
    "linkedin": "",
    "twitter": "",
    "discord": "",
    "github": "",
    "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",
    "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,
    "linkedin": "",
    "twitter": "",
    "discord": "",
    "github": "",
    "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_limitextra_shared_runners_minutes_limitis_auditorusing_license_seatパラメータも表示されます。

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

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

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

?search=を使用して、名前、ユーザー名、またはメールアドレスでユーザーを検索することもできます。例: /users?search=John。検索対象に応じて、次のようになります:

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

外部固有識別子(UID)とプロバイダーを使用してユーザーを検索できます:

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

例は次のとおりです:

GET /users?extern_uid=1234567&provider=github

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

GET /users?extern_uid=1234567&provider=scim

作成日時範囲でユーザーを検索するには、以下を使用します:

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

プロジェクトのないユーザーを検索するには、/users?without_projects=trueを使用します。

カスタム属性でフィルタリングするには、以下を使用します:

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

応答にユーザーのカスタム属性を含めるには、以下を使用します:

GET /users?with_custom_attributes=true

created_byパラメータを使用して、ユーザーアカウントが以下のように作成されたかどうかを確認できます:

返された値がnullの場合、自分でアカウントを登録したユーザーによって作成されています。

単一のユーザーを取得する

単一のユーザーを取得します。

標準ユーザーとして

標準ユーザーとして単一のユーザーを取得します。

前提要件:

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

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいユーザーのID

レスポンス例:

{
  "id": 1,
  "username": "john_smith",
  "name": "John Smith",
  "state": "active",
  "locked": false,
  "avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg",
  "web_url": "http://localhost:3000/john_smith",
  "created_at": "2012-05-23T08:00:58Z",
  "bio": "",
  "bot": false,
  "location": null,
  "public_email": "john@example.com",
  "linkedin": "",
  "twitter": "",
  "discord": "",
  "github": "",
  "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
}

管理者として

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab 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",
  "linkedin": "",
  "twitter": "",
  "discord": "",
  "github": "",
  "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
}

planパラメータとtrialパラメータは、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

現在のユーザーを取得する

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

標準ユーザーとして

ユーザーの詳細を取得します。

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",
  "linkedin": "",
  "twitter": "",
  "discord": "",
  "github": "",
  "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",
  "preferred_language": "en",
}

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

管理者として

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab 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",
  "linkedin": "",
  "twitter": "",
  "discord": "",
  "github": "",
  "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

ユーザーを作成する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

ユーザーを作成します。

前提要件:

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

private_profileのデフォルトは、新しいユーザーのプロファイルをデフォルトで非公開に設定するの値に設定されます。bioのデフォルトは、nullではなく""に設定されます。

POST /users

サポートされている属性は以下のとおりです:

属性必須説明
usernameはいユーザーのユーザー名
nameはいユーザーの名前
emailはいユーザーのメールアドレス
password条件付きユーザーのパスワード。force_random_passwordまたはreset_passwordが定義されていない場合は必須です。force_random_passwordまたはreset_passwordのいずれかが定義されている場合、それらの設定が優先されます。
adminいいえユーザーは管理者です。有効な値は、trueまたはfalseです。デフォルトはfalseです。
auditorいいえユーザーは監査担当者です。有効な値は、trueまたはfalseです。デフォルトはfalseです。GitLab 15.3で導入されました。PremiumおよびUltimateのみ。
avatarいいえユーザーのアバターの画像ファイル
bioいいえユーザーの経歴
can_create_groupいいえユーザーがトップレベルグループを作成できるかどうか(trueまたはfalse)
color_scheme_idいいえファイルビューアーのユーザーの配色(詳細については、ユーザー設定のドキュメントを参照してください)
commit_emailいいえユーザーのコミットメールアドレス
extern_uidいいえ外部固有識別子(UID)
externalいいえユーザーを外部としてフラグ設定します(trueまたはfalse(デフォルト))
extra_shared_runners_minutes_limitいいえ管理者のみが設定できます。このユーザーの追加のコンピューティング時間です。PremiumおよびUltimateのみ。
force_random_passwordいいえtrueの場合、ユーザーのパスワードをランダムな値に設定します。reset_passwordと一緒に使用できます。passwordより優先されます。
group_id_for_samlいいえSAMLが設定されているグループのID
linkedinいいえLinkedIn
locationいいえユーザーの場所
noteいいえこのユーザーの管理者ノート
organizationいいえ組織名
private_profileいいえユーザーのプロファイルは非公開です(trueまたはfalse)。デフォルト値は、設定によって決まります。
projects_limitいいえユーザーが作成できるプロジェクトの数
pronounsいいえユーザーの代名詞
providerいいえ外部プロバイダー名
public_emailいいえユーザーの公開メールアドレス
reset_passwordいいえtrueの場合、ユーザーにパスワードをリセットするためのリンクを送信します。force_random_passwordと一緒に使用できます。passwordより優先されます。
shared_runners_minutes_limitいいえ管理者のみが設定できます。このユーザーの1か月あたりのコンピューティング時間の最大数。nil(デフォルト、システムのデフォルトを継承)、0(無制限)、または> 0のいずれかです。PremiumおよびUltimateのみ。
skip_confirmationいいえ確認をスキップします(trueまたはfalse(デフォルト))
theme_idいいえユーザーのGitLabテーマ(詳細については、ユーザー設定のドキュメントを参照してください)
twitterいいえX(旧Twitter)アカウント
discordいいえDiscordアカウント
githubいいえGitHubユーザー名
view_diffs_file_by_fileいいえユーザーに対し1ページあたり1つのファイル差分のみを表示することを示すフラグ
website_urlいいえWebサイトのURL

ユーザーを変更する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

既存のユーザーを変更します。

前提要件:

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

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

PUT /users/:id

サポートされている属性は以下のとおりです:

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

ユーザーのパスワードを更新すると、次回のサインイン時にパスワードの変更が強制的に適用されます。

409(競合)が適切な場合でも、404エラーが返されます。たとえば、メールアドレスを既存のアドレスに変更する場合などです。

ユーザーを削除する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

ユーザーを削除します。

前提要件:

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

戻り値:

  • 操作が成功した場合は、204 No Contentステータスコード。
  • リソースが見つからなかった場合は404
  • ユーザーをソフト削除できない場合は409
DELETE /users/:id

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいユーザーのID
hard_deleteブール値いいえtrueの場合、通常はGhostユーザーに移動されるコントリビュートは削除され、このユーザーのみが所有するグループも削除されます。

自分のユーザーステータスを取得

自分のユーザーステータスを取得します。

前提要件:

  • 認証済みである必要があります。
GET /user/status

リクエストの例:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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 --url "https://gitlab.example.com/users/<username>/status"

レスポンス例:

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

ユーザーのステータスを設定する

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

前提要件:

  • 認証済みである必要があります。
PUT /user/status
PATCH /user/status

サポートされている属性は以下のとおりです:

属性必須説明
emoji文字列いいえ状態として使用する絵文字の名前。省略した場合、speech_balloonが使用されます。絵文字の名前は、Gemojioneインデックスで指定されている名前のいずれかにできます。
message文字列いいえステータスとして設定するメッセージ。絵文字コードを含めることもできます。100文字以下でなければなりません。
availability文字列いいえユーザーの利用状況。使用できる値は、busynot_setです。
clear_status_after文字列いいえ特定の期間の経過後に状態を自動的にクリーンアップします。使用できる値は30_minutes3_hours8_hours1_day3_days7_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" --data "availability=busy" \
  --url "https://gitlab.example.com/api/v4/user/status"

レスポンス例:

{
  "emoji":"coffee",
  "availability":"busy",
  "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はいユーザーに対して差分に空白の変更を表示することを示すフラグ。
pass_user_identities_to_ci_jwtはいユーザーが自身の外部IDをCI情報として渡すことを示すフラグ。この属性には、外部システムでユーザーを識別または認証するのに十分な情報が含まれていません。これはGitLabの内部属性であり、サードパーティサービスに渡してはなりません。詳細と例については、トークンペイロードを参照してください。

自分のアバターをアップロードする

自分のアバターをアップロードします。

前提要件:

  • 認証済みである必要があります。
PUT /user/avatar

サポートされている属性は以下のとおりです:

属性必須説明
avatar文字列はいアップロードするファイル。理想的な画像サイズは192×192ピクセルです。ファイルの最大許容サイズは200KiBです。

ファイルシステムからアバターをアップロードするには、--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
  • ファイルサイズが200KiBを超える場合は400 Bad Request

割り当てられたイシュー、マージリクエスト、およびレビューの数を取得する

割り当てられたイシュー、マージリクエスト、およびレビューの数を取得します。

前提要件:

  • 認証済みである必要があります。

サポートされている属性は以下のとおりです:

属性説明
assigned_issues数値現在のユーザーに割り当てられているオープンイシューの数。
assigned_merge_requests数値現在のユーザーに割り当てられているアクティブなマージリクエストの数。
merge_requests数値非推奨になりました(GitLab 13.8)。assigned_merge_requestsと同等であり、これにより置き換えられました。
review_requested_merge_requests数値現在のユーザーがレビューをリクエストされたマージリクエストの数。
todos数値現在のユーザーの保留中のTo-Doアイテムの数。
GET /user_counts

リクエストの例:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/user_counts"

レスポンス例:

{
  "merge_requests": 4,
  "assigned_issues": 15,
  "assigned_merge_requests": 11,
  "review_requested_merge_requests": 0,
  "todos": 1
}

ユーザーのプロジェクト、グループ、イシュー、およびマージリクエストの数を取得する

ユーザーの以下のアイテムの数のリストを取得します:

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

管理者は任意のユーザーに対してクエリできますが、管理者以外のユーザーは自分自身に対してのみクエリできます。

GET /users/:id/associations_count

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいユーザーのID

レスポンス例:

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

ユーザーのアクティビティーのリストを取得する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

前提要件:

  • 非公開プロファイルを持つユーザーのアクティビティーを表示するには、管理者である必要があります。

公開プロファイルを持つユーザーの最終アクティビティーの日付を、古い順で取得します。

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

  • Git HTTP/SSHアクティビティー(クローン、プッシュなど)
  • GitLabへのユーザーログイン
  • ダッシュボード、プロジェクト、イシュー、マージリクエストに関連するページへのユーザーアクセス
  • ユーザーによるAPIの使用
  • ユーザーによるGraphQL APIの使用

デフォルトでは、公開プロファイルを持つユーザーの過去6か月間のアクティビティーが表示されます。ただし、fromパラメータを使用してこれを変更できます。

GET /user/activities

サポートされている属性は以下のとおりです:

属性必須説明
from文字列いいえYEAR-MM-DD形式の日付文字列。例: 2016-03-11。デフォルトは6か月前です。

リクエストの例:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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を使用してください。

ユーザーがメンバーであるプロジェクトとグループのリストを取得する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

前提要件:

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

ユーザーがメンバーであるすべてのプロジェクトとグループのリストを取得します。

メンバーシップのsource_idsource_namesource_type、およびaccess_levelを返します。ソースのタイプは、Namespace(グループを表す)またはProjectになります。応答は、直接メンバーシップのみを表します。サブグループなどの継承メンバーシップは含まれません。アクセスレベルは整数値で表されます。詳細については、アクセスレベルの値の意味を参照してください。

GET /users/:id/memberships

サポートされている属性は以下のとおりです:

属性必須説明
id整数はい指定されたユーザーのID
type文字列いいえメンバーシップをtypeでフィルタリングします。ProjectまたはNamespaceのいずれかになります

リクエストの例:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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
  • リクエストされたtypeがサポートされていない場合は400 Bad Request

ユーザーの2要素認証を無効にする

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

前提要件:

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

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

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

PATCH /users/:id/disable_two_factor

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいユーザーのID

リクエストの例:

curl --request PATCH --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/users/1/disable_two_factor"

戻り値:

  • 成功した場合は204 No content
  • 指定されたユーザーの2要素認証が有効になっていない場合は400 Bad request
  • 管理者として認証されていない場合は403 Forbidden
  • ユーザーが見つからない場合は404 User Not Found

ユーザーにリンクされたRunnerを作成する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

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

前提要件:

  • 管理者であるか、ターゲットネームスペースまたはプロジェクトのオーナーロールを持っている必要があります。
  • instance_typeの場合、GitLabインスタンスの管理者である必要があります。
  • オーナーロールを持つgroup_typeまたはproject_typeの場合、Runnerの登録を許可する必要があります。
  • create_runnerスコープが設定されたアクセストークン。

tokenは再度取得することができないため、応答にこの値を必ずコピーまたは保存してください。

POST /user/runners

サポートされている属性は以下のとおりです:

属性必須説明
runner_type文字列はいRunnerのスコープを指定します(instance_typegroup_type、またはproject_type)。
group_id整数いいえRunnerが作成されるグループのID。runner_typegroup_typeの場合は必須です。
project_id整数いいえRunnerが作成されるプロジェクトのID。runner_typeproject_typeの場合は必須です。
description文字列いいえRunnerの説明。
pausedブール値いいえRunnerが新規ジョブを無視する必要があるかどうかを指定します。
lockedブール値いいえ現在のプロジェクトに対してRunnerをロックする必要があるかどうかを指定します。
run_untaggedブール値いいえタグ付けされていないジョブをRunnerが処理する必要があるかどうかを指定します。
tag_list文字列いいえRunnerタグのカンマ区切りリスト。
access_level文字列いいえRunnerのアクセスレベル(not_protectedまたはref_protected)。
maximum_timeout整数いいえRunnerがジョブを実行できる時間(秒単位)を制限する最大タイムアウト。
maintenance_note文字列いいえRunnerの自由形式のメンテナンスノート(1024文字)。

リクエストの例:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "runner_type=instance_type" \
  --url "https://gitlab.example.com/api/v4/user/runners"

レスポンス例:

{
    "id": 9171,
    "token": "<access-token>",
    "token_expires_at": null
}

ユーザーから認証IDを削除する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

ユーザーの認証IDに関連付けられているプロバイダー名を使用して、そのIDを削除します。

前提要件:

  • 管理者である必要があります。
DELETE /users/:id/identities/:provider

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいユーザーのID
provider文字列はい外部プロバイダー名

サポートPINを作成する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

ユーザーアカウントのサポートPINを作成します。PINは作成後7日で有効期限切れになります。GitLabサポートは、ユーザーの身元を検証するためにこのPINを求めることがあります。

前提要件:

  • 認証済みである必要があります。
POST /user/support_pin

リクエストの例:

curl --request POST |
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/user/support_pin"

レスポンス例:

{
  "pin":"123456",
  "expires_at":"2025-02-27T22:06:57Z"
}

サポートPINの詳細を取得する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

アカウントのサポートPINの詳細を取得します。GitLabサポートは、ユーザーの身元を検証するためにこのPINを求めることがあります。

前提要件:

  • 認証済みである必要があります。
GET /user/support_pin

リクエストの例:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/user/support_pin"

レスポンス例:

{
  "pin":"123456",
  "expires_at":"2025-02-27T22:06:57Z"
}

ユーザーのサポートPINを取得する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

指定されたユーザーのサポートPINの詳細を取得します。GitLabサポートは、ユーザーの身元を検証するためにこのPINを求めることがあります。

前提要件:

  • 管理者である必要があります。
GET /users/:id/support_pin

リクエストの例:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/users/1234/support_pin"

レスポンス例:

{
  "pin":"123456",
  "expires_at":"2025-02-27T22:06:57Z"
}

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいユーザーアカウントのID

ユーザーのサポートPINを失効させる

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

指定されたユーザーのサポートPINを、有効期限より前に失効させます。これにより、PINが直ちに失効し、削除されます。

前提要件:

  • 管理者である必要があります。
POST /users/:id/support_pin/revoke

リクエストの例:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/users/1234/support_pin/revoke"

レスポンス例:

成功した場合、202 Acceptedを返します。

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいユーザーのID