라이선스

Tier: Free, Premium, Ultimate Offering: Self-managed

라이선스 엔드포인트와 상호 작용하려면 관리자로 자격을 인증해야 합니다.

현재 라이선스에 대한 정보 검색

GET /license
{
  "id": 2,
  "plan": "gold",
  "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"
  },
  "add_ons": {
    "GitLab_FileLocks": 1,
    "GitLab_Auditor_User": 1
  }
}

모든 라이선스에 대한 정보 검색

GET /licenses
[
  {
    "id": 1,
    "plan": "silver",
    "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"
    },
    "add_ons": {
      "GitLab_FileLocks": 1,
      "GitLab_Auditor_User": 1
    }
  },
  {
    "id": 2,
    "plan": "gold",
    "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"
    },
    "add_ons": {
      "GitLab_FileLocks": 1
    }
  }
]

과다 사용은 과금 대상 사용자 수와 라이선스된 사용자 수의 차이입니다. 라이선스가 만료되었는지 여부에 따라 계산이 달라집니다.

  • 라이선스가 만료된 경우, 과거 최대 과금 대상 사용자 수 (historical_max)를 사용합니다.
  • 라이선스가 만료되지 않은 경우, 현재 과금 대상 사용자 수를 사용합니다.

반환:

  • 라이선스가 없는 경우 빈 JSON 배열로 응답하는 경우, 라이선스가 있는 경우 JSON 형식으로 응답합니다(상태 코드: 200 OK).
  • 현재 사용자가 라이선스를 읽는 데 허용되지 않은 경우 403 Forbidden 상태 코드를 반환합니다.

단일 라이선스에 대한 정보 검색

GET /license/:id

지원되는 속성:

속성 유형 필수 설명
id integer yes GitLab 라이선스의 ID.

다음 상태 코드를 반환합니다:

  • 200 OK: 응답에는 JSON 형식으로 라이선스가 포함됩니다.
  • 404 Not Found: 요청한 라이선스가 존재하지 않음.
  • 403 Forbidden: 현재 사용자가 라이선스를 읽는 데 허용되지 않음.

예시 요청:

curl --header "PRIVATE-TOKEN: <당신의_액세스_토큰>" "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"
  },
  "add_ons": {
    "GitLab_FileLocks": 1,
    "GitLab_Auditor_User": 1
  }
}

새 라이선스 추가

POST /license
속성 유형 필수 설명
license string yes 라이선스 문자열
curl --request POST --header "PRIVATE-TOKEN: <당신의_액세스_토큰>" "https://gitlab.example.com/api/v4/license?license=eyJkYXRhIjoiMHM5Q...S01Udz09XG4ifQ=="

예시 응답:

{
  "id": 1,
  "plan": "gold",
  "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"
  },
  "add_ons": {
    "GitLab_FileLocks": 1,
    "GitLab_Auditor_User": 1
  }
}

반환:

  • 라이선스가 성공적으로 추가된 경우 201 Created 상태를 반환합니다.
  • 라이선스를 추가하지 못한 경우 400 Bad Request 상태에 에러 메시지가 포함된 응답을 반환합니다.

라이선스 삭제

DELETE /license/:id
속성 유형 필수 설명
id integer yes GitLab 라이선스의 ID.
curl --request DELETE --header "PRIVATE-TOKEN: <당신의_액세스_토큰>" "https://gitlab.example.com/api/v4/license/:id"

예시 응답:

{
  "id": 2,
  "plan": "gold",
  "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 Doe"
  },
  "add_ons": {
    "GitLab_FileLocks": 1,
    "GitLab_Auditor_User": 1
  }
}

반환:

  • 라이선스가 성공적으로 삭제된 경우 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>" "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 PUT --header "PRIVATE-TOKEN: <your_access_token>" "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

반환:

  • 요청이 성공적으로 시작된 경우 202 Accepted.
  • 현재 사용자가 라이선스의 과금 가능한 사용자를 새로 고침할 수 없는 경우 403 Forbidden.
  • 라이선스를 찾을 수 없는 경우 404 Not Found.