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

ライセンスAPI

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

このAPIを使用して、ライセンスエンドポイントと対話します。詳細については、ライセンスファイルまたはキーを使用してGitLab EEをアクティベートするを参照してください。

前提条件:

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

ライセンス情報を取得する

現在のライセンスに関する情報を取得します。

GET /license
{
  "id": 2,
  "plan": "ultimate",
  "created_at": "2018-02-27T23:21:58.674Z",
  "starts_at": "2018-01-27",
  "expires_at": "2022-01-27",
  "historical_max": 300,
  "maximum_user_count": 300,
  "expired": false,
  "overage": 200,
  "user_limit": 100,
  "active_users": 300,
  "licensee": {
    "Name": "John Doe1",
    "Email": "johndoe1@gitlab.com",
    "Company": "GitLab"
  },
  "add_ons": {
    "GitLab_FileLocks": 1,
    "GitLab_Auditor_User": 1
  }
}

すべてのライセンスを一覧表示

すべてのライセンスに関する情報を一覧表示します。

GET /licenses
[
  {
    "id": 1,
    "plan": "premium",
    "created_at": "2018-02-27T23:21:58.674Z",
    "starts_at": "2018-01-27",
    "expires_at": "2022-01-27",
    "historical_max": 300,
    "maximum_user_count": 300,
    "expired": false,
    "overage": 200,
    "user_limit": 100,
    "licensee": {
      "Name": "John Doe1",
      "Email": "johndoe1@gitlab.com",
      "Company": "GitLab"
    },
    "add_ons": {
      "GitLab_FileLocks": 1,
      "GitLab_Auditor_User": 1
    }
  },
  {
    "id": 2,
    "plan": "ultimate",
    "created_at": "2018-02-27T23:21:58.674Z",
    "starts_at": "2018-01-27",
    "expires_at": "2022-01-27",
    "historical_max": 300,
    "maximum_user_count": 300,
    "expired": false,
    "overage": 200,
    "user_limit": 100,
    "licensee": {
      "Name": "Doe John",
      "Email": "doejohn@gitlab.com",
      "Company": "GitLab"
    },
    "add_ons": {
      "GitLab_FileLocks": 1
    }
  }
]

超過分は、請求対象ユーザー数とライセンスされたユーザー数との差です。これは、ライセンスの有効期限が切れているかどうかによって計算方法が異なります。

  • ライセンスの有効期限が切れている場合、過去最大の請求対象ユーザー数(historical_max)を使用します。
  • ライセンスの有効期限が切れていない場合、現在の請求対象ユーザー数を使用します。

戻り値:

  • ライセンスをJSON形式で含む応答とともに200 OK。ライセンスがない場合、これは空のJSON配列です。
  • 現在のユーザーがライセンスの読み取りを許可されていない場合は403 Forbidden

ライセンスを取得する

指定されたライセンスに関する情報を取得します。

GET /license/:id

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

属性必須説明
id整数はいGitLabライセンスのID。

次のステータスコードが返されます:

  • 200 OK: 応答にはJSON形式のライセンスが含まれます。
  • 404 Not Found: リクエストされたライセンスは存在しません。
  • 403 Forbidden: 現在のユーザーはライセンスの読み取りを許可されていません。

リクエスト例:

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

レスポンス例:

{
  "id": 1,
  "plan": "premium",
  "created_at": "2018-02-27T23:21:58.674Z",
  "starts_at": "2018-01-27",
  "expires_at": "2022-01-27",
  "historical_max": 300,
  "maximum_user_count": 300,
  "expired": false,
  "overage": 200,
  "user_limit": 100,
  "active_users": 50,
  "licensee": {
    "Name": "John Doe1",
    "Email": "johndoe1@gitlab.com",
    "Company": "GitLab"
  },
  "add_ons": {
    "GitLab_FileLocks": 1,
    "GitLab_Auditor_User": 1
  }
}

ライセンスを作成する

新しいライセンスを作成します。

POST /license
属性必須説明
license文字列はいライセンス文字列
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/license?license=eyJkYXRhIjoiMHM5Q...S01Udz09XG4ifQ=="

レスポンス例:

{
  "id": 1,
  "plan": "ultimate",
  "created_at": "2018-02-27T23:21:58.674Z",
  "starts_at": "2018-01-27",
  "expires_at": "2022-01-27",
  "historical_max": 300,
  "maximum_user_count": 300,
  "expired": false,
  "overage": 200,
  "user_limit": 100,
  "active_users": 300,
  "licensee": {
    "Name": "John Doe1",
    "Email": "johndoe1@gitlab.com",
    "Company": "GitLab"
  },
  "add_ons": {
    "GitLab_FileLocks": 1,
    "GitLab_Auditor_User": 1
  }
}

戻り値:

  • ライセンスが正常に追加された場合は201 Created
  • ライセンスを追加できなかった場合、その理由を説明するエラーメッセージとともに400 Bad Request

ライセンスを削除する

指定されたライセンスを削除します。

DELETE /license/:id
属性必須説明
id整数はいGitLabライセンスのID。
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/license/:id"

戻り値:

  • ライセンスが正常に削除された場合は204 No Content
  • 現在のユーザーがライセンスの削除を許可されていない場合は403 Forbidden
  • 削除するライセンスが見つからなかった場合は404 Not Found

請求対象ユーザーの再計算をトリガーする

指定されたライセンスの請求対象ユーザーの再計算をトリガーします。

PUT /license/:id/refresh_billable_users
属性必須説明
id整数はいGitLabライセンスのID。
curl --request PUT \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/license/:id/refresh_billable_users"

レスポンス例:

{
  "success": true
}

戻り値:

  • 請求対象ユーザーの更新リクエストが正常に開始された場合は202 Accepted
  • 現在のユーザーがライセンスの請求対象ユーザーを更新することが許可されていない場合は403 Forbidden
  • ライセンスが見つからなかった場合は404 Not Found
属性説明
successブール値リクエストが成功したかどうか。

ライセンス使用状況情報を取得する

現在のライセンスに関する使用状況情報を取得し、CSV形式でエクスポートします。

GET /license/usage_export.csv
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/license/usage_export.csv"

レスポンス例:

License Key,"eyJkYXRhIjoib1EwRWZXU3RobDY2Yl=
"
Email,user@example.com
License Start Date,2023-02-22
License End Date,2024-02-22
Company,Example Corp.
Generated At,2023-09-05 06:56:23
"",""
Date,Billable User Count
2023-07-11 12:00:05,21
2023-07-13 12:00:06,21
2023-08-16 12:00:02,21
2023-09-04 12:00:12,21

戻り値:

  • 200 OK: 応答にはCSV形式のライセンス使用状況が含まれます。
  • 現在のユーザーがライセンス使用状況の表示を許可されていない場合は403 Forbidden