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

キーAPI

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

キーを使用して、SSHキー、またはそのフィンガープリントに関連付けられているユーザーを特定します。デプロイキーのフィンガープリントに関するクエリは、そのキーを使用しているプロジェクトに関する情報も取得します。

SHA256フィンガープリントをAPIコールで使用する場合は、フィンガープリントをURLエンコードする必要があります。

IDでSSHキーとユーザーを取得

前提要件:

  • インスタンスへの管理者アクセス権が必要です。

SSHキーと、そのキーを所有するユーザーに関する情報を取得できます。

GET /keys/:id

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

属性必須説明
id整数はいSSHキーのID。

成功した場合、200 OKと次のレスポンス属性を返します:

属性説明
created_at文字列ISO 8601形式でのSSHキーの作成日時。
expires_at文字列ISO 8601形式でのSSHキーの有効期限日時。
id整数SSHキーのID。
key文字列SSHキーのコンテンツ。
last_used_at文字列ISO 8601形式でのSSHキーの最終使用日時。
title文字列SSHキーのタイトル。
usage_type文字列SSHキーの使用タイプ(例: authまたはauth_and_signing)。
userオブジェクトキーに関連付けられているユーザー
user.avatar_url文字列ユーザーのアバターのURL。
user.bio文字列ユーザーの経歴。
user.created_at文字列ISO 8601形式でのユーザーアカウントの作成日時。
user.id整数ユーザーのID。
user.linkedin文字列ユーザーのLinkedInプロファイルURL。
user.location文字列ユーザーの所在地。
user.name文字列ユーザー名
user.organization文字列ユーザーの組織。
user.public_email文字列ユーザーの公開メールアドレス。
user.state文字列ユーザーの状態。
user.twitter文字列ユーザーのTwitterプロファイルURL。
user.username文字列ユーザーのユーザー名。
user.web_url文字列ユーザーのプロフィールのURL
user.website_url文字列ユーザーのウェブサイトURL。

リクエスト例:

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

レスポンス例:

{
  "id": 1,
  "title": "Sample key 25",
  "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1256k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
  "created_at": "2015-09-03T07:24:44.627Z",
  "expires_at": "2020-05-05T00:00:00.000Z",
  "last_used_at": "2020-04-07T00:00:00.000Z",
  "usage_type": "auth",
  "user": {
    "name": "John Smith",
    "username": "john_smith",
    "id": 25,
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/cfa35b8cd2ec278026357769582fa563?s=40\u0026d=identicon",
    "web_url": "http://localhost:3000/john_smith",
    "created_at": "2015-09-03T07:24:01.670Z",
    "bio": null,
    "location": null,
    "public_email": "john@example.com",
    "linkedin": "",
    "twitter": "",
    "website_url": "",
    "organization": null,
    "last_sign_in_at": "2015-09-03T07:24:01.670Z",
    "confirmed_at": "2015-09-03T07:24:01.670Z",
    "last_activity_on": "2015-09-03",
    "email": "john@example.com",
    "theme_id": 2,
    "color_scheme_id": 1,
    "projects_limit": 10,
    "current_sign_in_at": null,
    "identities": [],
    "can_create_group": true,
    "can_create_project": true,
    "two_factor_enabled": false,
    "external": false,
    "private_profile": null
  }
}

SSHキーのフィンガープリントでユーザーを取得

前提要件:

  • インスタンスへの管理者アクセス権が必要です。

特定のSSHキーを所有するユーザーを検索できます。

GET /keys

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

属性必須説明
fingerprint文字列はいSSHキーのフィンガープリント。

成功した場合、200 OKと次のレスポンス属性を返します:

属性説明
created_at文字列ISO 8601形式でのSSHキーの作成日時。
expires_at文字列ISO 8601形式でのSSHキーの有効期限日時。
id整数SSHキーのID。
key文字列SSHキーのコンテンツ。
last_used_at文字列ISO 8601形式でのSSHキーの最終使用日時。
title文字列SSHキーのタイトル。
usage_type文字列SSHキーの使用タイプ(例: authまたはauth_and_signing)。
userオブジェクトキーに関連付けられているユーザー
user.avatar_url文字列ユーザーのアバターのURL。
user.bio文字列ユーザーの経歴。
user.can_create_groupブール値trueの場合、ユーザーはグループを作成できます。
user.can_create_projectブール値trueの場合、ユーザーはプロジェクトを作成できます。
user.color_scheme_id整数ユーザーの配色ID。
user.confirmed_at文字列ISO 8601形式でのユーザーの確認日時。
user.created_at文字列ISO 8601形式でのユーザーアカウントの作成日時。
user.current_sign_in_at文字列ISO 8601形式でのユーザーの現在のサインイン日時。
user.email文字列ユーザーのメールアドレス
user.externalブール値trueの場合、ユーザーは外部ユーザーです。
user.id整数ユーザーのID。
user.identities配列ユーザーに関連付けられたID。
user.last_activity_on文字列ユーザーの最終アクティビティー日。
user.last_sign_in_at文字列ISO 8601形式でのユーザーの最終サインイン日時。
user.linkedin文字列ユーザーのLinkedInプロファイルURL。
user.location文字列ユーザーの所在地。
user.name文字列ユーザー名
user.organization文字列ユーザーの組織。
user.private_profileブール値trueの場合、ユーザーのプロファイルは非公開です。
user.projects_limit整数ユーザーのプロジェクト制限。
user.public_email文字列ユーザーの公開メールアドレス。
user.state文字列ユーザーアカウントの状態。
user.theme_id整数ユーザーのテーマID
user.twitter文字列ユーザーのTwitterプロファイルURL。
user.two_factor_enabledブール値trueの場合、ユーザーに対して2要素認証が有効になっています。
user.username文字列ユーザーのユーザー名。
user.web_url文字列ユーザーのプロフィールのURL
user.website_url文字列ユーザーのウェブサイトURL。

リクエスト例:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/keys?fingerprint=ba:81:59:68:d7:6c:cd:02:02:bf:6a:9b:55:4e:af:d1"

レスポンス例:

{
  "id": 1,
  "title": "Sample key 1",
  "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1016k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
  "created_at": "2019-11-14T15:11:13.222Z",
  "expires_at": "2020-05-05T00:00:00.000Z",
  "last_used_at": "2020-04-07T00:00:00.000Z",
  "usage_type": "auth",
  "user": {
    "id": 1,
    "name": "Administrator",
    "username": "root",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
    "web_url": "http://0.0.0.0:3000/root",
    "created_at": "2019-11-14T15:09:34.831Z",
    "bio": null,
    "location": null,
    "public_email": "",
    "linkedin": "",
    "twitter": "",
    "website_url": "",
    "organization": null,
    "last_sign_in_at": "2019-11-16T22:41:26.663Z",
    "confirmed_at": "2019-11-14T15:09:34.575Z",
    "last_activity_on": "2019-11-20",
    "email": "admin@example.com",
    "theme_id": 1,
    "color_scheme_id": 1,
    "projects_limit": 100000,
    "current_sign_in_at": "2019-11-19T14:42:18.078Z",
    "identities": [],
    "can_create_group": true,
    "can_create_project": true,
    "two_factor_enabled": false,
    "external": false,
    "private_profile": false,
    "shared_runners_minutes_limit": null,
    "extra_shared_runners_minutes_limit": null
  }
}

デプロイキーのフィンガープリントでユーザーを取得

デプロイキーは、作成ユーザーにバインドされています。デプロイキーのフィンガープリントでクエリを実行すると、そのキーを使用しているプロジェクトに関する追加情報が取得されます。

GET /keys

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

属性必須説明
fingerprint文字列はいデプロイキーのフィンガープリント。

成功した場合、200 OKと次のレスポンス属性を返します:

属性説明
created_at文字列ISO 8601形式でのデプロイキーの作成日時。
deploy_keys_projects配列デプロイキープロジェクトの情報。
deploy_keys_projects[].can_pushブール値trueの場合、デプロイキーはプロジェクトにプッシュできます。
deploy_keys_projects[].created_at文字列ISO 8601形式での作成日時。
deploy_keys_projects[].deploy_key_id整数デプロイキーのID。
deploy_keys_projects[].id整数デプロイキープロジェクト関係のID。
deploy_keys_projects[].project_id整数プロジェクトのID。
deploy_keys_projects[].updated_at文字列ISO 8601形式での最終更新日時。
expires_at文字列ISO 8601形式でのデプロイキーの有効期限日時。
id整数デプロイキーのID。
key文字列デプロイキーのコンテンツ。
last_used_at文字列ISO 8601形式でのデプロイキーの最終使用日時。
title文字列デプロイキーのタイトル。
usage_type文字列デプロイキーの使用タイプ(例:authまたはauth_and_signing)。
userオブジェクトデプロイキーに関連付けられたユーザー。
user.avatar_url文字列ユーザーのアバターのURL。
user.bio文字列ユーザーの経歴。
user.can_create_groupブール値trueの場合、ユーザーはグループを作成できます。
user.can_create_projectブール値trueの場合、ユーザーはプロジェクトを作成できます。
user.color_scheme_id整数ユーザーの配色ID。
user.confirmed_at文字列ISO 8601形式でのユーザーの確認日時。
user.created_at文字列ISO 8601形式でのユーザーアカウントの作成日時。
user.current_sign_in_at文字列ISO 8601形式でのユーザーの現在のサインイン日時。
user.email文字列ユーザーのメールアドレス
user.externalブール値trueの場合、ユーザーは外部ユーザーです。
user.extra_shared_runners_minutes_limit整数ユーザーの追加の共有Runnerの分数制限。
user.id整数ユーザーのID。
user.identities配列ユーザーに関連付けられたID。
user.last_activity_on文字列ユーザーの最終アクティビティー日。
user.last_sign_in_at文字列ISO 8601形式でのユーザーの最終サインイン日時。
user.linkedin文字列ユーザーのLinkedInプロファイルURL。
user.location文字列ユーザーの所在地。
user.name文字列ユーザー名
user.organization文字列ユーザーの組織。
user.private_profileブール値trueの場合、ユーザーのプロファイルは非公開です。
user.projects_limit整数ユーザーのプロジェクト制限。
user.public_email文字列ユーザーの公開メールアドレス。
user.shared_runners_minutes_limit整数ユーザーの共有Runnerの分数制限。
user.state文字列ユーザーアカウントの状態。
user.theme_id整数ユーザーのテーマID
user.twitter文字列ユーザーのTwitterプロファイルURL。
user.two_factor_enabledブール値trueの場合、ユーザーに対して2要素認証が有効になっています。
user.username文字列ユーザーのユーザー名。
user.web_url文字列ユーザーのプロフィールのURL
user.website_url文字列ユーザーのウェブサイトURL。

MD5フィンガープリントを使用したリクエストの例:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/keys?fingerprint=ba:81:59:68:d7:6c:cd:02:02:bf:6a:9b:55:4e:af:d1"

SHA256フィンガープリントを使用したリクエストの例(URLエンコード):

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/keys?fingerprint=SHA256%3AnUhzNyftwADy8AH3wFY31tAKs7HufskYTte2aXo%2FlCg"

SHA256の例では、/%2Fで表され、:%3Aで表されます。

レスポンス例:

{
  "id": 1,
  "title": "Sample key 1",
  "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1016k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
  "created_at": "2019-11-14T15:11:13.222Z",
  "expires_at": "2020-05-05T00:00:00.000Z",
  "last_used_at": "2020-04-07T00:00:00.000Z",
  "usage_type": "auth",
  "user": {
    "id": 1,
    "name": "Administrator",
    "username": "root",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
    "web_url": "http://0.0.0.0:3000/root",
    "created_at": "2019-11-14T15:09:34.831Z",
    "bio": null,
    "location": null,
    "public_email": "",
    "linkedin": "",
    "twitter": "",
    "website_url": "",
    "organization": null,
    "last_sign_in_at": "2019-11-16T22:41:26.663Z",
    "confirmed_at": "2019-11-14T15:09:34.575Z",
    "last_activity_on": "2019-11-20",
    "email": "admin@example.com",
    "theme_id": 1,
    "color_scheme_id": 1,
    "projects_limit": 100000,
    "current_sign_in_at": "2019-11-19T14:42:18.078Z",
    "identities": [],
    "can_create_group": true,
    "can_create_project": true,
    "two_factor_enabled": false,
    "external": false,
    "private_profile": false,
    "shared_runners_minutes_limit": null,
    "extra_shared_runners_minutes_limit": null
  },
  "deploy_keys_projects": [
    {
      "id": 1,
      "deploy_key_id": 1,
      "project_id": 1,
      "created_at": "2020-01-09T07:32:52.453Z",
      "updated_at": "2020-01-09T07:32:52.453Z",
      "can_push": false
    }
  ]
}