コンテナリポジトリ保護ルールAPI
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed
このAPIを使用して、container repository protection rulesを管理します。
コンテナリポジトリ保護ルールの一覧
プロジェクトのコンテナリポジトリからコンテナリポジトリ保護ルールの一覧を取得します。
GET /api/v4/projects/:id/registry/protection/repository/rulesサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
成功した場合、200とコンテナリポジトリ保護ルールの一覧を返します。
次のステータスコードを返すことができます:
200 OK: 保護ルールの一覧。401 Unauthorized: アクセストークンが無効です。403 Forbidden: このプロジェクトの保護ルールを一覧表示する権限がユーザーにありません。404 Not Found: プロジェクトが見つかりませんでした。
リクエスト例:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/7/registry/protection/repository/rules"レスポンス例:
[
{
"id": 1,
"project_id": 7,
"repository_path_pattern": "flightjs/flight0",
"minimum_access_level_for_push": "maintainer",
"minimum_access_level_for_delete": "maintainer"
},
{
"id": 2,
"project_id": 7,
"repository_path_pattern": "flightjs/flight1",
"minimum_access_level_for_push": "maintainer",
"minimum_access_level_for_delete": "maintainer"
},
]コンテナリポジトリ保護ルールを作成する
プロジェクトのコンテナリポジトリのコンテナリポジトリ保護ルールを作成します。
POST /api/v4/projects/:id/registry/protection/repository/rulesサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
repository_path_pattern | 文字列 | はい | 保護ルールによって保護されるコンテナリポジトリパスパターン。例: flight/flight-*。ワイルドカード文字*を使用できます。 |
minimum_access_level_for_delete | 文字列 | いいえ | コンテナリポジトリ内のコンテナイメージを削除するために必要な最小GitLabアクセスレベル。例: maintainer、owner、admin。minimum_access_level_for_pushが設定されていない場合は、指定する必要があります。 |
minimum_access_level_for_push | 文字列 | いいえ | コンテナイメージをコンテナリポジトリにプッシュするために必要な最小GitLabアクセスレベル。例: maintainer、owner、admin。minimum_access_level_for_deleteが設定されていない場合は、指定する必要があります。 |
成功した場合、201と、作成されたコンテナリポジトリ保護ルールを返します。
次のステータスコードを返すことができます:
201 Created: 保護ルールが正常に作成されました。400 Bad Request: 保護ルールが無効です。401 Unauthorized: アクセストークンが無効です。403 Forbidden: 保護ルールを作成する権限がユーザーにありません。404 Not Found: プロジェクトが見つかりませんでした。422 Unprocessable Entity: 保護ルールを作成できませんでした。たとえば、repository_path_patternがすでに使用されているためです。
リクエスト例:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--url "https://gitlab.example.com/api/v4/projects/7/registry/protection/repository/rules" \
--data '{
"repository_path_pattern": "flightjs/flight-needs-to-be-a-unique-path",
"minimum_access_level_for_push": "maintainer",
"minimum_access_level_for_delete": "maintainer"
}'コンテナリポジトリ保護ルールを更新する
プロジェクトのコンテナリポジトリのコンテナリポジトリ保護ルールを更新します。
PATCH /api/v4/projects/:id/registry/protection/repository/rules/:protection_rule_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
protection_rule_id | 整数 | はい | 更新する保護ルールのID。 |
minimum_access_level_for_delete | 文字列 | いいえ | コンテナリポジトリ内のコンテナイメージを削除するために必要な最小GitLabアクセスレベル。例: maintainer、owner、admin。minimum_access_level_for_pushが設定されていない場合は、指定する必要があります。値を設定解除するには、空の文字列""を使用します。 |
minimum_access_level_for_push | 文字列 | いいえ | コンテナイメージをコンテナリポジトリにプッシュするために必要な最小GitLabアクセスレベル。例: maintainer、owner、admin。minimum_access_level_for_deleteが設定されていない場合は、指定する必要があります。値を設定解除するには、空の文字列""を使用します。 |
repository_path_pattern | 文字列 | いいえ | 保護ルールによって保護されるコンテナリポジトリパスパターン。例: flight/flight-*。ワイルドカード文字*を使用できます。 |
成功した場合、200と、更新された保護ルールを返します。
次のステータスコードを返すことができます:
200 OK: 保護ルールが正常に更新されました。400 Bad Request: 保護ルールが無効です。401 Unauthorized: アクセストークンが無効です。403 Forbidden: 保護ルールを更新する権限がユーザーにありません。404 Not Found: プロジェクトが見つかりませんでした。422 Unprocessable Entity: 保護ルールを更新できませんでした。たとえば、repository_path_patternがすでに使用されているためです。
リクエスト例:
curl --request PATCH \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--url "https://gitlab.example.com/api/v4/projects/7/registry/protection/repository/rules/32" \
--data '{
"repository_path_pattern": "flight/flight-*"
}'コンテナリポジトリ保護ルールを削除する
プロジェクトのコンテナリポジトリからコンテナリポジトリ保護ルールを削除します。
DELETE /api/v4/projects/:id/registry/protection/repository/rules/:protection_rule_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
protection_rule_id | 整数 | はい | 削除するコンテナリポジトリ保護ルールのID。 |
成功すると、204 No Contentを返します。
次のステータスコードを返すことができます:
204 No Content: 保護ルールは正常に削除されました。400 Bad Request:idまたはprotection_rule_idがないか、無効です。401 Unauthorized: アクセストークンが無効です。403 Forbidden: 保護ルールを削除する権限がユーザーにありません。404 Not Found: プロジェクトまたは保護ルールが見つかりませんでした。
リクエスト例:
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/7/registry/protection/repository/rules/1"