ユーザーAPI
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
このAPIを使用して、GitLabのユーザーアカウントを操作します。これらのエンドポイントは、アカウントまたは他のユーザーのアカウントの管理に役立ちます。
ユーザーのリストを取得する
ユーザーのリストを取得します。
ユーザーのリストを制限するために、ページネーションパラメータpageとper_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=falseとblocked=falseはサポートされていません。
GET /users?active=trueGET /users?blocked=trueまた、external=trueを使用して外部ユーザーのみを検索できます。external=falseはサポートされていません。
GET /users?external=trueGitLabは、アラートボットやサポートボットなどのボットユーザーをサポートしています。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 | 文字列 | いいえ | id、name、username、created_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_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=を使用して、名前、ユーザー名、またはメールアドレスでユーザーを検索することもできます。例: /users?search=John。検索対象に応じて、次のようになります:
- メールアドレスを検索する場合、完全一致する結果を取得するには、完全なメールアドレスを使用する必要があります。管理者は公開メールアドレスと非公開メールアドレスの両方を検索できます。
- 名前またはユーザー名を検索する場合、これはあいまい検索であるため、完全一致する結果を得る必要はありません。
外部固有識別子(UID)とプロバイダーを使用してユーザーを検索できます:
GET /users?extern_uid=:extern_uid&provider=:provider例は次のとおりです:
GET /users?extern_uid=1234567&provider=githubGitLab 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=truecreated_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_limit、is_auditor、extra_shared_runners_minutes_limitパラメータも表示されます。
{
"id": 1,
"username": "john_smith",
"is_auditor": false,
"shared_runners_minutes_limit": 133,
"extra_shared_runners_minutes_limit": 133,
...
}GitLab.com PremiumまたはUltimateのユーザーには、group_samlオプションとprovisioned_by_group_idパラメータも表示されます:
{
"id": 1,
"username": "john_smith",
"shared_runners_minutes_limit": 133,
"extra_shared_runners_minutes_limit": 133,
"identities": [
{"provider": "github", "extern_uid": "2435223452345"},
{"provider": "bitbucket", "extern_uid": "john.smith"},
{"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"},
{"provider": "group_saml", "extern_uid": "123789", "saml_provider_id": 10}
],
"provisioned_by_group_id": 123789
...
}GitLab.com PremiumまたはUltimateのユーザーには、scim_identitiesパラメータも表示されます:
{
...
"extra_shared_runners_minutes_limit": null,
"scim_identities": [
{"extern_uid": "2435223452345", "group_id": "3", "active": true},
{"extern_uid": "john.smith", "group_id": "42", "active": false}
]
...
}管理者はcreated_byパラメータを使用して、ユーザーアカウントが次のように作成されたかどうかを確認できます:
- 管理者により手動で作成される。
- プロジェクトボットユーザーとして作成される。
返された値がnullの場合、自分でアカウントを登録したユーザーによって作成されています。
応答にユーザーのカスタム属性を含めるには、以下を使用します:
GET /users/:id?with_custom_attributes=true現在のユーザーを取得する
現在のユーザーを取得します。
標準ユーザーとして
ユーザーの詳細を取得します。
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_limit、extra_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_limitextra_shared_runners_minutes_limitis_auditorprovisioned_by_group_idusing_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 | いいえ | |
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 | いいえ | |
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 | 文字列 | いいえ | ユーザーの利用状況。使用できる値は、busyとnot_setです。 |
clear_status_after | 文字列 | いいえ | 特定の期間の経過後に状態を自動的にクリーンアップします。使用できる値は30_minutes、3_hours、8_hours、1_day、3_days、7_days、30_daysです。 |
PUTとPATCHの違いは次のとおりです:
PUTを使用すると、渡されないパラメータはnullに設定され、クリアされます。PATCHを使用すると、渡されないパラメータは無視されます。フィールドをクリアするには、明示的にnullを渡します。
リクエストの例:
curl --request PUT \
--header "PRIVATE-TOKEN: <your_access_token>" \
--data "clear_status_after=1_day" \
--data "emoji=coffee" \
--data "message=I crave coffee" --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_onとcurrent_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_id、source_name、source_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_type、group_type、またはproject_type)。 |
group_id | 整数 | いいえ | Runnerが作成されるグループのID。runner_typeがgroup_typeの場合は必須です。 |
project_id | 整数 | いいえ | Runnerが作成されるプロジェクトのID。runner_typeがproject_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 |