diff options
Diffstat (limited to 'doc/api/projects.md')
-rw-r--r-- | doc/api/projects.md | 1096 |
1 files changed, 549 insertions, 547 deletions
diff --git a/doc/api/projects.md b/doc/api/projects.md index 3d3a11fc59e..257dd88a770 100644 --- a/doc/api/projects.md +++ b/doc/api/projects.md @@ -51,38 +51,38 @@ are returned. GET /projects ``` -| Attribute | Type | Required | Description | -|--------------------------------------------|----------|------------------------|-------------| -| `archived` | boolean | No | Limit by archived status. | -| `id_after` | integer | No | Limit results to projects with IDs greater than the specified ID. | -| `id_before` | integer | No | Limit results to projects with IDs less than the specified ID. | -| `imported` | boolean | No | Limit results to projects which were imported from external systems by current user. | -| `include_hidden` **(PREMIUM ALL)** | boolean | No | Include hidden projects. _(administrators only)_ | -| `include_pending_delete` | boolean | No | Include projects pending deletion. _(administrators only)_ | -| `last_activity_after` | datetime | No | Limit results to projects with last activity after specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`) | -| `last_activity_before` | datetime | No | Limit results to projects with last activity before specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`) | -| `membership` | boolean | No | Limit by projects that the current user is a member of. | -| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). | -| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, `last_activity_at`, or `similarity` fields. `repository_size`, `storage_size`, `packages_size` or `wiki_size` fields are only allowed for administrators. `similarity` ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/332890) in GitLab 14.1) is only available when searching and is limited to projects that the current user is a member of. Default is `created_at`. | -| `owned` | boolean | No | Limit by projects explicitly owned by the current user. | -| `repository_checksum_failed` **(PREMIUM ALL)** | boolean | No | Limit projects where the repository checksum calculation has failed. | -| `repository_storage` | string | No | Limit results to projects stored on `repository_storage`. _(administrators only)_ | -| `search_namespaces` | boolean | No | Include ancestor namespaces when matching search criteria. Default is `false`. | -| `search` | string | No | Return list of projects matching the search criteria. | -| `simple` | boolean | No | Return only limited fields for each project. This operation is a no-op without authentication where only simple fields are returned. | -| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. | -| `starred` | boolean | No | Limit by projects starred by the current user. | -| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. | -| `topic` | string | No | Comma-separated topic names. Limit results to projects that match all of given topics. See `topics` attribute. | -| `topic_id` | integer | No | Limit results to projects with the assigned topic given by the topic ID. | -| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. | -| `wiki_checksum_failed` **(PREMIUM ALL)** | boolean | No | Limit projects where the wiki checksum calculation has failed. | -| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ | -| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. | -| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. | -| `with_programming_language` | string | No | Limit by projects which use the given programming language. | -| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. For this filter to work, you must also provide `updated_at` as the `order_by` attribute. | -| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. For this filter to work, you must also provide `updated_at` as the `order_by` attribute. | +| Attribute | Type | Required | Description | +|------------------------------------------------|----------|----------|-------------| +| `archived` | boolean | No | Limit by archived status. | +| `id_after` | integer | No | Limit results to projects with IDs greater than the specified ID. | +| `id_before` | integer | No | Limit results to projects with IDs less than the specified ID. | +| `imported` | boolean | No | Limit results to projects which were imported from external systems by current user. | +| `include_hidden` **(PREMIUM ALL)** | boolean | No | Include hidden projects. _(administrators only)_ | +| `include_pending_delete` | boolean | No | Include projects pending deletion. _(administrators only)_ | +| `last_activity_after` | datetime | No | Limit results to projects with last activity after specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`) | +| `last_activity_before` | datetime | No | Limit results to projects with last activity before specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`) | +| `membership` | boolean | No | Limit by projects that the current user is a member of. | +| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). | +| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, `last_activity_at`, or `similarity` fields. `repository_size`, `storage_size`, `packages_size` or `wiki_size` fields are only allowed for administrators. `similarity` ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/332890) in GitLab 14.1) is only available when searching and is limited to projects that the current user is a member of. Default is `created_at`. | +| `owned` | boolean | No | Limit by projects explicitly owned by the current user. | +| `repository_checksum_failed` **(PREMIUM ALL)** | boolean | No | Limit projects where the repository checksum calculation has failed. | +| `repository_storage` | string | No | Limit results to projects stored on `repository_storage`. _(administrators only)_ | +| `search_namespaces` | boolean | No | Include ancestor namespaces when matching search criteria. Default is `false`. | +| `search` | string | No | Return list of projects matching the search criteria. | +| `simple` | boolean | No | Return only limited fields for each project. This operation is a no-op without authentication where only simple fields are returned. | +| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. | +| `starred` | boolean | No | Limit by projects starred by the current user. | +| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. | +| `topic_id` | integer | No | Limit results to projects with the assigned topic given by the topic ID. | +| `topic` | string | No | Comma-separated topic names. Limit results to projects that match all of given topics. See `topics` attribute. | +| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. For this filter to work, you must also provide `updated_at` as the `order_by` attribute. | +| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. For this filter to work, you must also provide `updated_at` as the `order_by` attribute. | +| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. | +| `wiki_checksum_failed` **(PREMIUM ALL)** | boolean | No | Limit projects where the wiki checksum calculation has failed. | +| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ | +| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. | +| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. | +| `with_programming_language` | string | No | Limit by projects which use the given programming language. | This endpoint supports [keyset pagination](rest/index.md#keyset-based-pagination) for selected `order_by` options. @@ -326,28 +326,28 @@ for selected `order_by` options. GET /users/:user_id/projects ``` -| Attribute | Type | Required | Description | -|-------------------------------|---------|------------------------|-------------| -| `user_id` | string | Yes | The ID or username of the user. | -| `archived` | boolean | No | Limit by archived status. | -| `id_after` | integer | No | Limit results to projects with IDs greater than the specified ID. | -| `id_before` | integer | No | Limit results to projects with IDs less than the specified ID. | -| `membership` | boolean | No | Limit by projects that the current user is a member of. | -| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). | -| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. | -| `owned` | boolean | No | Limit by projects explicitly owned by the current user. | -| `search` | string | No | Return list of projects matching the search criteria. | -| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. | -| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. | -| `starred` | boolean | No | Limit by projects starred by the current user. | -| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. | -| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. | -| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ | -| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. | -| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. | -| `with_programming_language` | string | No | Limit by projects which use the given programming language. | -| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | -| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | +| Attribute | Type | Required | Description | +|-------------------------------|----------|----------|-------------| +| `user_id` | string | Yes | The ID or username of the user. | +| `archived` | boolean | No | Limit by archived status. | +| `id_after` | integer | No | Limit results to projects with IDs greater than the specified ID. | +| `id_before` | integer | No | Limit results to projects with IDs less than the specified ID. | +| `membership` | boolean | No | Limit by projects that the current user is a member of. | +| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). | +| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. | +| `owned` | boolean | No | Limit by projects explicitly owned by the current user. | +| `search` | string | No | Return list of projects matching the search criteria. | +| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. | +| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. | +| `starred` | boolean | No | Limit by projects starred by the current user. | +| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. | +| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | +| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | +| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. | +| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ | +| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. | +| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. | +| `with_programming_language` | string | No | Limit by projects which use the given programming language. | ```json [ @@ -602,12 +602,12 @@ Get a list of visible projects a given user has contributed to. GET /users/:user_id/contributed_projects ``` -| Attribute | Type | Required | Description | -|-------------------------------|---------|------------------------|-------------| -| `user_id` | string | Yes | The ID or username of the user. | -| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. | -| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. | -| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. | +| Attribute | Type | Required | Description | +|------------|---------|----------|-------------| +| `user_id` | string | Yes | The ID or username of the user. | +| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. | +| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. | +| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/5/contributed_projects" @@ -847,25 +847,25 @@ authentication, only public projects are returned. GET /users/:user_id/starred_projects ``` -| Attribute | Type | Required | Description | -|-------------------------------|---------|------------------------|-------------| -| `user_id` | string | Yes | The ID or username of the user. | -| `archived` | boolean | No | Limit by archived status. | -| `membership` | boolean | No | Limit by projects that the current user is a member of. | -| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). | -| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. | -| `owned` | boolean | No | Limit by projects explicitly owned by the current user. | -| `search` | string | No | Return list of projects matching the search criteria. | -| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. | -| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. | -| `starred` | boolean | No | Limit by projects starred by the current user. | -| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. | -| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. | -| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ | -| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. | -| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. | -| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | -| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | +| Attribute | Type | Required | Description | +|-------------------------------|----------|----------|-------------| +| `user_id` | string | Yes | The ID or username of the user. | +| `archived` | boolean | No | Limit by archived status. | +| `membership` | boolean | No | Limit by projects that the current user is a member of. | +| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). | +| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. | +| `owned` | boolean | No | Limit by projects explicitly owned by the current user. | +| `search` | string | No | Return list of projects matching the search criteria. | +| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. | +| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. | +| `starred` | boolean | No | Limit by projects starred by the current user. | +| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. | +| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | +| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | +| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. | +| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrator only)_ | +| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. | +| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/5/starred_projects" @@ -1105,12 +1105,12 @@ the project is publicly accessible. GET /projects/:id ``` -| Attribute | Type | Required | Description | -|--------------------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `license` | boolean | No | Include project license data. | -| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. | -| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrators only)_ | +| Attribute | Type | Required | Description | +|--------------------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `license` | boolean | No | Include project license data. | +| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. | +| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrators only)_ | ```json { @@ -1373,11 +1373,11 @@ Get the users list of a project. GET /projects/:id/users ``` -| Attribute | Type | Required | Description | -|--------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `search` | string | No | Search for specific users. | -| `skip_users` | integer array | No | Filter out users with the specified IDs. | +| Attribute | Type | Required | Description | +|--------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `search` | string | No | Search for specific users. | +| `skip_users` | integer array | No | Filter out users with the specified IDs. | ```json [ @@ -1408,14 +1408,14 @@ Get a list of ancestor groups for this project. GET /projects/:id/groups ``` -| Attribute | Type | Required | Description | -|-----------------------------|-------------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `search` | string | No | Search for specific groups. | -| `shared_min_access_level` | integer | No | Limit to shared groups with at least this [role (`access_level`)](members.md#roles). | -| `shared_visible_only` | boolean | No | Limit to shared groups user has access to. | -| `skip_groups` | array of integers | No | Skip the group IDs passed. | -| `with_shared` | boolean | No | Include projects shared with this group. Default is `false`. | +| Attribute | Type | Required | Description | +|---------------------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `search` | string | No | Search for specific groups. | +| `shared_min_access_level` | integer | No | Limit to shared groups with at least this [role (`access_level`)](members.md#roles). | +| `shared_visible_only` | boolean | No | Limit to shared groups user has access to. | +| `skip_groups` | array of integers | No | Skip the group IDs passed. | +| `with_shared` | boolean | No | Include projects shared with this group. Default is `false`. | ```json [ @@ -1446,10 +1446,10 @@ Get a list of groups that can be shared with a project GET /projects/:id/share_locations ``` -| Attribute | Type | Required | Description | -|-----------------------------|-------------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `search` | string | No | Search for specific groups. | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `search` | string | No | Search for specific groups. | ```json [ @@ -1501,81 +1501,81 @@ curl --request POST --header "PRIVATE-TOKEN: <your-token>" \ --url "https://gitlab.example.com/api/v4/projects/" ``` -| Attribute | Type | Required | Description | -|-------------------------------------------------------------|---------|------------------------|-------------| -| `name` | string | Yes (if `path` isn't provided) | The name of the new project. Equals path if not provided. | -| `path` | string | Yes (if `name` isn't provided) | Repository name for new project. Generated based on name if not provided (generated as lowercase with dashes). Starting with GitLab 14.9, path must not start or end with a special character and must not contain consecutive special characters. | -| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. | -| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. | -| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` | -| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. | -| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. | -| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`). | -| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. | -| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. | -| `avatar` | mixed | No | Image file for avatar of the project. | -| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. | -| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. | -| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `ci_config_path` | string | No | The path to CI configuration file. | -| `container_expiration_policy_attributes` | hash | No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). See the [container registry](../user/packages/container_registry/reduce_container_registry_storage.md#use-the-cleanup-policy-api) documentation for more information on `cadence`, `keep_n` and `older_than` values. | -| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. | -| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. | -| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. Requires `initialize_with_readme` to be `true`. | -| `description` | string | No | Short project description. | -| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead| -| `emails_enabled` | boolean | No | Enable email notifications. | -| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. | -| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `group_runners_enabled` | boolean | No | Enable group runners for this project. | -| `group_with_project_templates_id` **(PREMIUM ALL)** | integer | No | For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true. | -| `import_url` | string | No | URL to import repository from. When the URL value isn't empty, you must not set `initialize_with_readme` to `true`. Doing so might result in the [following error](https://gitlab.com/gitlab-org/gitlab/-/issues/360266): `not a git repository`. | -| `initialize_with_readme` | boolean | No | Whether to create a Git repository with just a `README.md` file. Default is `false`. When this boolean is true, you must not pass `import_url` or other attributes of this endpoint which specify alternative contents for the repository. Doing so might result in the [following error](https://gitlab.com/gitlab-org/gitlab/-/issues/360266): `not a git repository`. | -| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. | -| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. | -| `lfs_enabled` | boolean | No | Enable LFS. | -| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. | -| `merge_pipelines_enabled` | boolean | No | Enable or disable merge pipelines. | -| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. | -| `merge_trains_enabled` | boolean | No | Enable or disable merge trains. | -| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. | -| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. | -| `namespace_id` | integer | No | Namespace for the new project (defaults to the current user's namespace). | -| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. | -| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful pipelines. This setting is named [**Pipelines must succeed**](../user/project/merge_requests/merge_when_pipeline_succeeds.md#require-a-successful-pipeline-for-merge) in the project settings. | -| `packages_enabled` | boolean | No | Enable or disable packages repository feature. | -| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. | -| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. | -| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project members. | -| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `model_experiments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. | -| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `repository_storage` | string | No | Which storage shard the repository is on. _(administrator only)_ | -| `request_access_enabled` | boolean | No | Allow users to request member access. | -| `requirements_access_level` | string | No | One of `disabled`, `private` or `enabled` | -| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. | -| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. | -| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. | -| `show_default_award_emojis` | boolean | No | Show default emoji reactions. | -| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. | -| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. | -| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. | -| `template_name` | string | No | When used without `use_custom_template`, name of a [built-in project template](../user/project/index.md#create-a-project-from-a-built-in-template). When used with `use_custom_template`, name of a custom project template. | -| `template_project_id` **(PREMIUM ALL)** | integer | No | When used with `use_custom_template`, project ID of a custom project template. Using a project ID is preferable to using `template_name` since `template_name` may be ambiguous. | -| `topics` | array | No | The list of topics for a project; put array of topics, that should be finally assigned to a project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ | -| `use_custom_template` **(PREMIUM ALL)** | boolean | No | Use either custom [instance](../administration/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. | -| `visibility` | string | No | See [project visibility level](#project-visibility-level). | -| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. | +| Attribute | Type | Required | Description | +|-------------------------------------------------------------------|---------|--------------------------------|-------------| +| `name` | string | Yes (if `path` isn't provided) | The name of the new project. Equals path if not provided. | +| `path` | string | Yes (if `name` isn't provided) | Repository name for new project. Generated based on name if not provided (generated as lowercase with dashes). Starting with GitLab 14.9, path must not start or end with a special character and must not contain consecutive special characters. | +| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. | +| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` | +| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. | +| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. | +| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`). | +| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. | +| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. | +| `avatar` | mixed | No | Image file for avatar of the project. | +| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. | +| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. | +| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `ci_config_path` | string | No | The path to CI configuration file. | +| `container_expiration_policy_attributes` | hash | No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). See the [container registry](../user/packages/container_registry/reduce_container_registry_storage.md#use-the-cleanup-policy-api) documentation for more information on `cadence`, `keep_n` and `older_than` values. | +| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. | +| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. | +| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. Requires `initialize_with_readme` to be `true`. | +| `description` | string | No | Short project description. | +| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead | +| `emails_enabled` | boolean | No | Enable email notifications. | +| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. | +| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `group_runners_enabled` | boolean | No | Enable group runners for this project. | +| `group_with_project_templates_id` **(PREMIUM ALL)** | integer | No | For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true. | +| `import_url` | string | No | URL to import repository from. When the URL value isn't empty, you must not set `initialize_with_readme` to `true`. Doing so might result in the [following error](https://gitlab.com/gitlab-org/gitlab/-/issues/360266): `not a git repository`. | +| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `initialize_with_readme` | boolean | No | Whether to create a Git repository with just a `README.md` file. Default is `false`. When this boolean is true, you must not pass `import_url` or other attributes of this endpoint which specify alternative contents for the repository. Doing so might result in the [following error](https://gitlab.com/gitlab-org/gitlab/-/issues/360266): `not a git repository`. | +| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. | +| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. | +| `lfs_enabled` | boolean | No | Enable LFS. | +| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. | +| `merge_pipelines_enabled` | boolean | No | Enable or disable merged results pipelines. | +| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. | +| `merge_trains_enabled` | boolean | No | Enable or disable merge trains. | +| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. | +| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. | +| `model_experiments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `namespace_id` | integer | No | Namespace for the new project (defaults to the current user's namespace). | +| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. | +| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. | +| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful pipelines. This setting is named [**Pipelines must succeed**](../user/project/merge_requests/merge_when_pipeline_succeeds.md#require-a-successful-pipeline-for-merge) in the project settings. | +| `packages_enabled` | boolean | No | Enable or disable packages repository feature. | +| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. | +| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. | +| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project members. | +| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. | +| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `repository_storage` | string | No | Which storage shard the repository is on. _(administrator only)_ | +| `request_access_enabled` | boolean | No | Allow users to request member access. | +| `requirements_access_level` | string | No | One of `disabled`, `private` or `enabled` | +| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. | +| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. | +| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. | +| `show_default_award_emojis` | boolean | No | Show default emoji reactions. | +| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. | +| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. | +| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. | +| `template_name` | string | No | When used without `use_custom_template`, name of a [built-in project template](../user/project/index.md#create-a-project-from-a-built-in-template). When used with `use_custom_template`, name of a custom project template. | +| `template_project_id` **(PREMIUM ALL)** | integer | No | When used with `use_custom_template`, project ID of a custom project template. Using a project ID is preferable to using `template_name` since `template_name` may be ambiguous. | +| `topics` | array | No | The list of topics for a project; put array of topics, that should be finally assigned to a project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ | +| `use_custom_template` **(PREMIUM ALL)** | boolean | No | Use either custom [instance](../administration/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. | +| `visibility` | string | No | See [project visibility level](#project-visibility-level). | +| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. | ## Create project for user @@ -1592,83 +1592,83 @@ where `password` is a public access key with the `api` scope enabled. POST /projects/user/:user_id ``` -| Attribute | Type | Required | Description | -|-------------------------------------------------------------|---------|------------------------|-------------| -| `user_id` | integer | Yes | The user ID of the project owner. | -| `name` | string | Yes | The name of the new project. | -| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. | -| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. | -| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` | -| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). | -| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. | -| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`). | -| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. | -| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. | -| `avatar` | mixed | No | Image file for avatar of the project. | -| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. | -| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. | -| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `ci_config_path` | string | No | The path to CI configuration file. | -| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. | -| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. | -| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. Requires `initialize_with_readme` to be `true`. | -| `description` | string | No | Short project description. | -| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead| -| `emails_enabled` | boolean | No | Enable email notifications. | -| `enforce_auth_checks_on_uploads` | boolean | No | Enforce [auth checks](../security/user_file_uploads.md#enable-authorization-checks-for-all-media-files) on uploads. | -| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. | -| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `group_runners_enabled` | boolean | No | Enable group runners for this project. | -| `group_with_project_templates_id` **(PREMIUM ALL)** | integer | No | For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true. | -| `import_url` | string | No | URL to import repository from. | -| `initialize_with_readme` | boolean | No | `false` by default. | -| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. | -| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. | -| `lfs_enabled` | boolean | No | Enable LFS. | -| `merge_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create merge commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20263) in GitLab 14.5.)_ | -| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. | -| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. | -| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. | -| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. | -| `namespace_id` | integer | No | Namespace for the new project (defaults to the current user's namespace). | -| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. | -| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful jobs. | -| `packages_enabled` | boolean | No | Enable or disable packages repository feature. | -| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. | -| `path` | string | No | Custom repository name for new project. By default generated based on name. | -| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. | -| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project-members. | -| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `model_experiments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. | -| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `repository_storage` | string | No | Which storage shard the repository is on. _(administrators only)_ | -| `request_access_enabled` | boolean | No | Allow users to request member access. | -| `requirements_access_level` | string | No | One of `disabled`, `private`, `enabled` or `public` | -| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. | -| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. | -| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. | -| `show_default_award_emojis` | boolean | No | Show default emoji reactions. | -| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. | -| `issue_branch_template` | string | No | Template used to suggest names for [branches created from issues](../user/project/merge_requests/creating_merge_requests.md#from-an-issue). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21243) in GitLab 15.6.)_ | -| `squash_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create squash commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/345275) in GitLab 14.6.)_ | -| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. | -| `suggestion_commit_message` | string | No | The commit message used to apply merge request [suggestions](../user/project/merge_requests/reviews/suggestions.md). | -| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. | -| `template_name` | string | No | When used without `use_custom_template`, name of a [built-in project template](../user/project/index.md#create-a-project-from-a-built-in-template). When used with `use_custom_template`, name of a custom project template. | -| `topics` | array | No | The list of topics for the project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ | -| `use_custom_template` **(PREMIUM ALL)** | boolean | No | Use either custom [instance](../administration/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. | -| `visibility` | string | No | See [project visibility level](#project-visibility-level). | -| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. | +| Attribute | Type | Required | Description | +|-------------------------------------------------------------------|---------|----------|-------------| +| `name` | string | Yes | The name of the new project. | +| `user_id` | integer | Yes | The user ID of the project owner. | +| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. | +| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` | +| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). | +| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. | +| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`). | +| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. | +| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. | +| `avatar` | mixed | No | Image file for avatar of the project. | +| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. | +| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. | +| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `ci_config_path` | string | No | The path to CI configuration file. | +| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. | +| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. | +| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. Requires `initialize_with_readme` to be `true`. | +| `description` | string | No | Short project description. | +| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead | +| `emails_enabled` | boolean | No | Enable email notifications. | +| `enforce_auth_checks_on_uploads` | boolean | No | Enforce [auth checks](../security/user_file_uploads.md#enable-authorization-checks-for-all-media-files) on uploads. | +| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. | +| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `group_runners_enabled` | boolean | No | Enable group runners for this project. | +| `group_with_project_templates_id` **(PREMIUM ALL)** | integer | No | For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true. | +| `import_url` | string | No | URL to import repository from. | +| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `initialize_with_readme` | boolean | No | `false` by default. | +| `issue_branch_template` | string | No | Template used to suggest names for [branches created from issues](../user/project/merge_requests/creating_merge_requests.md#from-an-issue). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21243) in GitLab 15.6.)_ | +| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. | +| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. | +| `lfs_enabled` | boolean | No | Enable LFS. | +| `merge_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create merge commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20263) in GitLab 14.5.)_ | +| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. | +| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. | +| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. | +| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. | +| `model_experiments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `namespace_id` | integer | No | Namespace for the new project (defaults to the current user's namespace). | +| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. | +| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. | +| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful jobs. | +| `packages_enabled` | boolean | No | Enable or disable packages repository feature. | +| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. | +| `path` | string | No | Custom repository name for new project. By default generated based on name. | +| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. | +| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project-members. | +| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. | +| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `repository_storage` | string | No | Which storage shard the repository is on. _(administrators only)_ | +| `request_access_enabled` | boolean | No | Allow users to request member access. | +| `requirements_access_level` | string | No | One of `disabled`, `private`, `enabled` or `public` | +| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. | +| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. | +| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. | +| `show_default_award_emojis` | boolean | No | Show default emoji reactions. | +| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. | +| `squash_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create squash commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/345275) in GitLab 14.6.)_ | +| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. | +| `suggestion_commit_message` | string | No | The commit message used to apply merge request [suggestions](../user/project/merge_requests/reviews/suggestions.md). | +| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. | +| `template_name` | string | No | When used without `use_custom_template`, name of a [built-in project template](../user/project/index.md#create-a-project-from-a-built-in-template). When used with `use_custom_template`, name of a custom project template. | +| `topics` | array | No | The list of topics for the project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ | +| `use_custom_template` **(PREMIUM ALL)** | boolean | No | Use either custom [instance](../administration/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. | +| `visibility` | string | No | See [project visibility level](#project-visibility-level). | +| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. | ## Edit project @@ -1696,96 +1696,98 @@ curl --request PUT --header "PRIVATE-TOKEN: <your-token>" \ Supported attributes: -| Attribute | Type | Required | Description | -|-------------------------------------------------------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. | -| `allow_pipeline_trigger_approve_deployment` **(PREMIUM ALL)** | boolean | No | Set whether or not a pipeline triggerer is allowed to approve deployments. | -| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false.<br/><br/>[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. The feature flag was enabled by default in GitLab 15.9. | -| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` | -| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). | -| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. | -| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual`, or `timed_incremental`). | -| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. | -| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. | -| `avatar` | mixed | No | Image file for avatar of the project. | -| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. | -| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. | -| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `ci_config_path` | string | No | The path to CI configuration file. | -| `ci_default_git_depth` | integer | No | Default number of revisions for [shallow cloning](../ci/pipelines/settings.md#limit-the-number-of-changes-fetched-during-clone). | -| `ci_forward_deployment_enabled` | boolean | No | Enable or disable [prevent outdated deployment jobs](../ci/pipelines/settings.md#prevent-outdated-deployment-jobs). | -| `ci_forward_deployment_rollback_allowed` | boolean | No | Enable or disable [allow job retries for rollback deployments](../ci/pipelines/settings.md#prevent-outdated-deployment-jobs). | -| `ci_allow_fork_pipelines_to_run_in_parent_project` | boolean | No | Enable or disable [running pipelines in the parent project for merge requests from forks](../ci/pipelines/merge_request_pipelines.md#run-pipelines-in-the-parent-project). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/325189) in GitLab 15.3.)_ | -| `ci_separated_caches` | boolean | No | Set whether or not caches should be [separated](../ci/caching/index.md#cache-key-names) by branch protection status. | -| `container_expiration_policy_attributes` | hash | No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). | -| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. | -| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. | -| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. | -| `description` | string | No | Short project description. | -| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead| -| `emails_enabled` | boolean | No | Enable email notifications. | -| `enforce_auth_checks_on_uploads` | boolean | No | Enforce [auth checks](../security/user_file_uploads.md#enable-authorization-checks-for-all-media-files) on uploads. | -| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. | -| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `group_runners_enabled` | boolean | No | Enable group runners for this project. | -| `import_url` | string | No | URL the repository was imported from. | -| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. | -| `issues_template` **(PREMIUM ALL)** | string | No | Default description for Issues. Description is parsed with GitLab Flavored Markdown. See [Templates for issues and merge requests](#templates-for-issues-and-merge-requests). | -| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. | -| `keep_latest_artifact` | boolean | No | Disable or enable the ability to keep the latest artifact for this project. | -| `lfs_enabled` | boolean | No | Enable LFS. | -| `merge_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create merge commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20263) in GitLab 14.5.)_ | -| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. | -| `merge_pipelines_enabled` | boolean | No | Enable or disable merge pipelines. | -| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. | -| `merge_requests_template` **(PREMIUM ALL)** | string | No | Default description for merge requests. Description is parsed with GitLab Flavored Markdown. See [Templates for issues and merge requests](#templates-for-issues-and-merge-requests). | -| `merge_trains_enabled` | boolean | No | Enable or disable merge trains. | -| `mirror_overwrites_diverged_branches` **(PREMIUM ALL)** | boolean | No | Pull mirror overwrites diverged branches. | -| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. | -| `mirror_user_id` **(PREMIUM ALL)** | integer | No | User responsible for all the activity surrounding a pull mirror event. _(administrators only)_ | -| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. | -| `mr_default_target_self` | boolean | No | For forked projects, target merge requests to this project. If `false`, the target is the upstream project. | -| `name` | string | No | The name of the project. | -| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. | -| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful jobs. | -| `only_mirror_protected_branches` **(PREMIUM ALL)** | boolean | No | Only mirror protected branches. | -| `packages_enabled` | boolean | No | Enable or disable packages repository feature. | -| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. | -| `path` | string | No | Custom repository name for the project. By default generated based on name. | -| `prevent_merge_without_jira_issue` **(PREMIUM ALL)** | boolean | No | Set whether merge requests require an associated issue from Jira. -| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. | -| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project members. | -| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. | -| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `repository_storage` | string | No | Which storage shard the repository is on. _(administrators only)_ | -| `request_access_enabled` | boolean | No | Allow users to request member access. | -| `requirements_access_level` | string | No | One of `disabled`, `private`, `enabled` or `public` | -| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. | -| `restrict_user_defined_variables` | boolean | No | Allow only users with the Maintainer role to pass user-defined variables when triggering a pipeline. For example when the pipeline is triggered in the UI, with the API, or by a trigger token. | -| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. | -| `service_desk_enabled` | boolean | No | Enable or disable Service Desk feature. | -| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. | -| `show_default_award_emojis` | boolean | No | Show default emoji reactions. | -| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. | -| `issue_branch_template` | string | No | Template used to suggest names for [branches created from issues](../user/project/merge_requests/creating_merge_requests.md#from-an-issue). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21243) in GitLab 15.6.)_ | -| `squash_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create squash commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/345275) in GitLab 14.6.)_ | -| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. | -| `suggestion_commit_message` | string | No | The commit message used to apply merge request suggestions. | -| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. | -| `topics` | array | No | The list of topics for the project. This replaces any existing topics that are already added to the project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ | -| `visibility` | string | No | See [project visibility level](#project-visibility-level). | -| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | -| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. | +| Attribute | Type | Required | Description | +|-------------------------------------------------------------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `allow_merge_on_skipped_pipeline` | boolean | No | Set whether or not merge requests can be merged with skipped jobs. | +| `allow_pipeline_trigger_approve_deployment` **(PREMIUM ALL)** | boolean | No | Set whether or not a pipeline triggerer is allowed to approve deployments. | +| `only_allow_merge_if_all_status_checks_passed` **(ULTIMATE ALL)** | boolean | No | Indicates that merges of merge requests should be blocked unless all status checks have passed. Defaults to false.<br/><br/>[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 with feature flag `only_allow_merge_if_all_status_checks_passed` disabled by default. The feature flag was enabled by default in GitLab 15.9. | +| `analytics_access_level` | string | No | One of `disabled`, `private` or `enabled` | +| `approvals_before_merge` **(PREMIUM ALL)** | integer | No | How many approvers should approve merge requests by default. [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/353097) in GitLab 16.0. To configure approval rules, see [Merge request approvals API](merge_request_approvals.md). | +| `auto_cancel_pending_pipelines` | string | No | Auto-cancel pending pipelines. This action toggles between an enabled state and a disabled state; it is not a boolean. | +| `auto_devops_deploy_strategy` | string | No | Auto Deploy strategy (`continuous`, `manual`, or `timed_incremental`). | +| `auto_devops_enabled` | boolean | No | Enable Auto DevOps for this project. | +| `autoclose_referenced_issues` | boolean | No | Set whether auto-closing referenced issues on default branch. | +| `avatar` | mixed | No | Image file for avatar of the project. | +| `build_git_strategy` | string | No | The Git strategy. Defaults to `fetch`. | +| `build_timeout` | integer | No | The maximum amount of time, in seconds, that a job can run. | +| `builds_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `ci_config_path` | string | No | The path to CI configuration file. | +| `ci_default_git_depth` | integer | No | Default number of revisions for [shallow cloning](../ci/pipelines/settings.md#limit-the-number-of-changes-fetched-during-clone). | +| `ci_forward_deployment_enabled` | boolean | No | Enable or disable [prevent outdated deployment jobs](../ci/pipelines/settings.md#prevent-outdated-deployment-jobs). | +| `ci_forward_deployment_rollback_allowed` | boolean | No | Enable or disable [allow job retries for rollback deployments](../ci/pipelines/settings.md#prevent-outdated-deployment-jobs). | +| `ci_allow_fork_pipelines_to_run_in_parent_project` | boolean | No | Enable or disable [running pipelines in the parent project for merge requests from forks](../ci/pipelines/merge_request_pipelines.md#run-pipelines-in-the-parent-project). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/325189) in GitLab 15.3.)_ | +| `ci_separated_caches` | boolean | No | Set whether or not caches should be [separated](../ci/caching/index.md#cache-key-names) by branch protection status. | +| `ci_restrict_pipeline_cancellation_role` **(PREMIUM ALL)** | string | No | Set the [role required to cancel a pipeline or job](../ci/pipelines/settings.md#restrict-roles-that-can-cancel-pipelines-or-jobs). One of `developer`, `maintainer`, or `no_one`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/429921) in GitLab 16.8.)_ | +| `container_expiration_policy_attributes` | hash | No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). | +| `container_registry_access_level` | string | No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. | +| `container_registry_enabled` | boolean | No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. | +| `default_branch` | string | No | The [default branch](../user/project/repository/branches/default.md) name. | +| `description` | string | No | Short project description. | +| `emails_disabled` | boolean | No | _(Deprecated)_ Disable email notifications. Use `emails_enabled` instead | +| `emails_enabled` | boolean | No | Enable email notifications. | +| `enforce_auth_checks_on_uploads` | boolean | No | Enforce [auth checks](../security/user_file_uploads.md#enable-authorization-checks-for-all-media-files) on uploads. | +| `external_authorization_classification_label` **(PREMIUM ALL)** | string | No | The classification label for the project. | +| `forking_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `group_runners_enabled` | boolean | No | Enable group runners for this project. | +| `import_url` | string | No | URL the repository was imported from. | +| `issues_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `issues_enabled` | boolean | No | _(Deprecated)_ Enable issues for this project. Use `issues_access_level` instead. | +| `issues_template` **(PREMIUM ALL)** | string | No | Default description for Issues. Description is parsed with GitLab Flavored Markdown. See [Templates for issues and merge requests](#templates-for-issues-and-merge-requests). | +| `jobs_enabled` | boolean | No | _(Deprecated)_ Enable jobs for this project. Use `builds_access_level` instead. | +| `keep_latest_artifact` | boolean | No | Disable or enable the ability to keep the latest artifact for this project. | +| `lfs_enabled` | boolean | No | Enable LFS. | +| `merge_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create merge commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20263) in GitLab 14.5.)_ | +| `merge_method` | string | No | Set the [merge method](#project-merge-method) used. | +| `merge_pipelines_enabled` | boolean | No | Enable or disable merged results pipelines. | +| `merge_requests_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `merge_requests_enabled` | boolean | No | _(Deprecated)_ Enable merge requests for this project. Use `merge_requests_access_level` instead. | +| `merge_requests_template` **(PREMIUM ALL)** | string | No | Default description for merge requests. Description is parsed with GitLab Flavored Markdown. See [Templates for issues and merge requests](#templates-for-issues-and-merge-requests). | +| `merge_trains_enabled` | boolean | No | Enable or disable merge trains. | +| `mirror_overwrites_diverged_branches` **(PREMIUM ALL)** | boolean | No | Pull mirror overwrites diverged branches. | +| `mirror_trigger_builds` **(PREMIUM ALL)** | boolean | No | Pull mirroring triggers builds. | +| `mirror_user_id` **(PREMIUM ALL)** | integer | No | User responsible for all the activity surrounding a pull mirror event. _(administrators only)_ | +| `mirror` **(PREMIUM ALL)** | boolean | No | Enables pull mirroring in a project. | +| `mr_default_target_self` | boolean | No | For forked projects, target merge requests to this project. If `false`, the target is the upstream project. | +| `name` | string | No | The name of the project. | +| `only_allow_merge_if_all_discussions_are_resolved` | boolean | No | Set whether merge requests can only be merged when all the discussions are resolved. | +| `only_allow_merge_if_pipeline_succeeds` | boolean | No | Set whether merge requests can only be merged with successful jobs. | +| `only_mirror_protected_branches` **(PREMIUM ALL)** | boolean | No | Only mirror protected branches. | +| `packages_enabled` | boolean | No | Enable or disable packages repository feature. | +| `pages_access_level` | string | No | One of `disabled`, `private`, `enabled`, or `public`. | +| `path` | string | No | Custom repository name for the project. By default generated based on name. | +| `prevent_merge_without_jira_issue` **(PREMIUM ALL)** | boolean | No | Set whether merge requests require an associated issue from Jira. | +| `printing_merge_request_link_enabled` | boolean | No | Show link to create/view merge request when pushing from the command line. | +| `public_builds` | boolean | No | If `true`, jobs can be viewed by non-project members. | +| `releases_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `environments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `feature_flags_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `infrastructure_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `monitor_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `model_experiments_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `model_registry_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `remove_source_branch_after_merge` | boolean | No | Enable `Delete source branch` option by default for all new merge requests. | +| `repository_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `repository_storage` | string | No | Which storage shard the repository is on. _(administrators only)_ | +| `request_access_enabled` | boolean | No | Allow users to request member access. | +| `requirements_access_level` | string | No | One of `disabled`, `private`, `enabled` or `public` | +| `resolve_outdated_diff_discussions` | boolean | No | Automatically resolve merge request diffs discussions on lines changed with a push. | +| `restrict_user_defined_variables` | boolean | No | Allow only users with the Maintainer role to pass user-defined variables when triggering a pipeline. For example when the pipeline is triggered in the UI, with the API, or by a trigger token. | +| `security_and_compliance_access_level` | string | No | (GitLab 14.9 and later) Security and compliance access level. One of `disabled`, `private`, or `enabled`. | +| `service_desk_enabled` | boolean | No | Enable or disable Service Desk feature. | +| `shared_runners_enabled` | boolean | No | Enable shared runners for this project. | +| `show_default_award_emojis` | boolean | No | Show default emoji reactions. | +| `snippets_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `snippets_enabled` | boolean | No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. | +| `issue_branch_template` | string | No | Template used to suggest names for [branches created from issues](../user/project/merge_requests/creating_merge_requests.md#from-an-issue). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21243) in GitLab 15.6.)_ | +| `squash_commit_template` | string | No | [Template](../user/project/merge_requests/commit_templates.md) used to create squash commit message in merge requests. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/345275) in GitLab 14.6.)_ | +| `squash_option` | string | No | One of `never`, `always`, `default_on`, or `default_off`. | +| `suggestion_commit_message` | string | No | The commit message used to apply merge request suggestions. | +| `tag_list` | array | No | _([Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0)_ The list of tags for a project; put array of tags, that should be finally assigned to a project. Use `topics` instead. | +| `topics` | array | No | The list of topics for the project. This replaces any existing topics that are already added to the project. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328226) in GitLab 14.0.)_ | +| `visibility` | string | No | See [project visibility level](#project-visibility-level). | +| `wiki_access_level` | string | No | One of `disabled`, `private`, or `enabled`. | +| `wiki_enabled` | boolean | No | _(Deprecated)_ Enable wiki for this project. Use `wiki_access_level` instead. | ## Fork project @@ -1799,18 +1801,18 @@ fork of the project has completed, query the `import_status` for the new project POST /projects/:id/fork ``` -| Attribute | Type | Required | Description | -|------------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `description` | string | No | The description assigned to the resultant project after forking. | -| `mr_default_target_self` | boolean | No | For forked projects, target merge requests to this project. If `false`, the target is the upstream project. | -| `name` | string | No | The name assigned to the resultant project after forking. | -| `namespace_id` | integer | No | The ID of the namespace that the project is forked to. | -| `namespace_path` | string | No | The path of the namespace that the project is forked to. | -| `namespace` | integer or string | No | _(Deprecated)_ The ID or path of the namespace that the project is forked to. | -| `path` | string | No | The path assigned to the resultant project after forking. | -| `visibility` | string | No | The [visibility level](#project-visibility-level) assigned to the resultant project after forking. | -| `branches` | string | No | Branches to fork (empty for all branches). | +| Attribute | Type | Required | Description | +|--------------------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `branches` | string | No | Branches to fork (empty for all branches). | +| `description` | string | No | The description assigned to the resultant project after forking. | +| `mr_default_target_self` | boolean | No | For forked projects, target merge requests to this project. If `false`, the target is the upstream project. | +| `name` | string | No | The name assigned to the resultant project after forking. | +| `namespace_id` | integer | No | The ID of the namespace that the project is forked to. | +| `namespace_path` | string | No | The path of the namespace that the project is forked to. | +| `namespace` | integer or string | No | _(Deprecated)_ The ID or path of the namespace that the project is forked to. | +| `path` | string | No | The path assigned to the resultant project after forking. | +| `visibility` | string | No | The [visibility level](#project-visibility-level) assigned to the resultant project after forking. | ## List forks of a project @@ -1823,25 +1825,25 @@ forked relationship with the specified project GET /projects/:id/forks ``` -| Attribute | Type | Required | Description | -|-------------------------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `archived` | boolean | No | Limit by archived status. | -| `membership` | boolean | No | Limit by projects that the current user is a member of. | -| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). | -| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. | -| `owned` | boolean | No | Limit by projects explicitly owned by the current user. | -| `search` | string | No | Return list of projects matching the search criteria. | -| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. | -| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. | -| `starred` | boolean | No | Limit by projects starred by the current user. | -| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. | -| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. | -| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrators only)_ | -| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. | -| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. | -| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | -| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | +| Attribute | Type | Required | Description | +|-------------------------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `archived` | boolean | No | Limit by archived status. | +| `membership` | boolean | No | Limit by projects that the current user is a member of. | +| `min_access_level` | integer | No | Limit by current user minimal [role (`access_level`)](members.md#roles). | +| `order_by` | string | No | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at`. | +| `owned` | boolean | No | Limit by projects explicitly owned by the current user. | +| `search` | string | No | Return list of projects matching the search criteria. | +| `simple` | boolean | No | Return only limited fields for each project. Without authentication, this operation is a no-op; only simple fields are returned. | +| `sort` | string | No | Return projects sorted in `asc` or `desc` order. Default is `desc`. | +| `starred` | boolean | No | Limit by projects starred by the current user. | +| `statistics` | boolean | No | Include project statistics. Available only to users with at least the Reporter role. | +| `updated_after` | datetime | No | Limit results to projects last updated after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | +| `updated_before` | datetime | No | Limit results to projects last updated before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393979) in GitLab 15.10. | +| `visibility` | string | No | Limit by visibility `public`, `internal`, or `private`. | +| `with_custom_attributes` | boolean | No | Include [custom attributes](custom_attributes.md) in response. _(administrators only)_ | +| `with_issues_enabled` | boolean | No | Limit by enabled issues feature. | +| `with_merge_requests_enabled` | boolean | No | Limit by enabled merge requests feature. | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/forks" @@ -1942,9 +1944,9 @@ starred. POST /projects/:id/star ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/star" @@ -2202,9 +2204,9 @@ Get languages used in a project with percentage value. GET /projects/:id/languages ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/languages" @@ -2233,9 +2235,9 @@ does not change the project. POST /projects/:id/archive ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/archive" @@ -2366,9 +2368,9 @@ doesn't change the project. POST /projects/:id/unarchive ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/unarchive" @@ -2514,11 +2516,11 @@ The option to delete projects immediately from deletion protection settings in t DELETE /projects/:id ``` -| Attribute | Type | Required | Description | -|------------------------------------|-------------------|------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `permanently_remove` **(PREMIUM ALL)** | boolean/string | no | Immediately deletes a project if it is marked for deletion. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/396500) in GitLab 15.11 | -| `full_path` **(PREMIUM ALL)** | string | no | Full path of project to use with `permanently_remove`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/396500) in GitLab 15.11. To find the project path, use `path_with_namespace` from [get single project](projects.md#get-single-project) | +| Attribute | Type | Required | Description | +|----------------------------------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `full_path` **(PREMIUM ALL)** | string | no | Full path of project to use with `permanently_remove`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/396500) in GitLab 15.11. To find the project path, use `path_with_namespace` from [get single project](projects.md#get-single-project) | +| `permanently_remove` **(PREMIUM ALL)** | boolean/string | no | Immediately deletes a project if it is marked for deletion. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/396500) in GitLab 15.11 | ## Restore project marked for deletion **(PREMIUM ALL)** @@ -2530,9 +2532,9 @@ Restores project marked for deletion. POST /projects/:id/restore ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ## Upload a file @@ -2547,10 +2549,10 @@ description, or a comment. POST /projects/:id/uploads ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `file` | string | Yes | The file to be uploaded. | -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `file` | string | Yes | The file to be uploaded. | +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | To upload a file from your file system, use the `--form` argument. This causes cURL to post data using the header `Content-Type: multipart/form-data`. The @@ -2585,10 +2587,10 @@ Uploads an avatar to the specified project. PUT /projects/:id ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `avatar` | string | Yes | The file to be uploaded. | -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `avatar` | string | Yes | The file to be uploaded. | +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | To upload an avatar from your file system, use the `--form` argument. This causes cURL to post data using the header `Content-Type: multipart/form-data`. The @@ -2631,12 +2633,12 @@ Allow to share project with group. POST /projects/:id/share ``` -| Attribute | Type | Required | Description | -|----------------|----------------|------------------------|-------------| -| `group_access` | integer | Yes | The [role (`access_level`)](members.md#roles) to grant the group. | -| `group_id` | integer | Yes | The ID of the group to share with. | -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `expires_at` | string | No | Share expiration date in ISO 8601 format: 2016-09-26 | +| Attribute | Type | Required | Description | +|----------------|-------------------|----------|-------------| +| `group_access` | integer | Yes | The [role (`access_level`)](members.md#roles) to grant the group. | +| `group_id` | integer | Yes | The ID of the group to share with. | +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `expires_at` | string | No | Share expiration date in ISO 8601 format. For example, `2016-09-26`. | ## Delete a shared project link within a group @@ -2646,10 +2648,10 @@ Unshare the project from the group. Returns `204` and no content on success. DELETE /projects/:id/share/:group_id ``` -| Attribute | Type | Required | Description | -|------------|----------------|------------------------|-------------| -| `group_id` | integer | Yes | The ID of the group. | -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|------------|-------------------|----------|-------------| +| `group_id` | integer | Yes | The ID of the group. | +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ```shell curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/share/17" @@ -2668,10 +2670,10 @@ If the importing member's role in the target project is: POST /projects/:id/import_project_members/:project_id ``` -| Attribute | Type | Required | Description | -|--------------|-------------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path](rest/index.md#namespaced-path-encoding) of the target project to receive the members. | -| `project_id` | integer or string | Yes | The ID or [URL-encoded path](rest/index.md#namespaced-path-encoding) of the source project to import the members from. | +| Attribute | Type | Required | Description | +|--------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path](rest/index.md#namespaced-path-encoding) of the target project to receive the members. | +| `project_id` | integer or string | Yes | The ID or [URL-encoded path](rest/index.md#namespaced-path-encoding) of the source project to import the members from. | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/import_project_members/32" @@ -2723,9 +2725,9 @@ Get a list of project hooks. GET /projects/:id/hooks ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ### Get project hook @@ -2735,10 +2737,10 @@ Get a specific hook for a project. GET /projects/:id/hooks/:hook_id ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|---------------------------| -| `hook_id` | integer | Yes | The ID of a project hook. | -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `hook_id` | integer | Yes | The ID of a project hook. | +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ```json { @@ -2775,25 +2777,25 @@ Adds a hook to a specified project. POST /projects/:id/hooks ``` -| Attribute | Type | Required | Description | -|------------------------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `url` | string | Yes | The hook URL. | -| `confidential_issues_events` | boolean | No | Trigger hook on confidential issues events. | -| `confidential_note_events` | boolean | No | Trigger hook on confidential note events. | -| `deployment_events` | boolean | No | Trigger hook on deployment events. | -| `enable_ssl_verification` | boolean | No | Do SSL verification when triggering the hook. | -| `issues_events` | boolean | No | Trigger hook on issues events. | -| `job_events` | boolean | No | Trigger hook on job events. | -| `merge_requests_events` | boolean | No | Trigger hook on merge requests events. | -| `note_events` | boolean | No | Trigger hook on note events. | -| `pipeline_events` | boolean | No | Trigger hook on pipeline events. | -| `push_events_branch_filter` | string | No | Trigger hook on push events for matching branches only. | -| `push_events` | boolean | No | Trigger hook on push events. | -| `releases_events` | boolean | No | Trigger hook on release events. | -| `tag_push_events` | boolean | No | Trigger hook on tag push events. | -| `token` | string | No | Secret token to validate received payloads; the token isn't returned in the response. | -| `wiki_page_events` | boolean | No | Trigger hook on wiki events. | +| Attribute | Type | Required | Description | +|------------------------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `url` | string | Yes | The hook URL. | +| `confidential_issues_events` | boolean | No | Trigger hook on confidential issues events. | +| `confidential_note_events` | boolean | No | Trigger hook on confidential note events. | +| `deployment_events` | boolean | No | Trigger hook on deployment events. | +| `enable_ssl_verification` | boolean | No | Do SSL verification when triggering the hook. | +| `issues_events` | boolean | No | Trigger hook on issues events. | +| `job_events` | boolean | No | Trigger hook on job events. | +| `merge_requests_events` | boolean | No | Trigger hook on merge requests events. | +| `note_events` | boolean | No | Trigger hook on note events. | +| `pipeline_events` | boolean | No | Trigger hook on pipeline events. | +| `push_events_branch_filter` | string | No | Trigger hook on push events for matching branches only. | +| `push_events` | boolean | No | Trigger hook on push events. | +| `releases_events` | boolean | No | Trigger hook on release events. | +| `tag_push_events` | boolean | No | Trigger hook on tag push events. | +| `token` | string | No | Secret token to validate received payloads; the token isn't returned in the response. | +| `wiki_page_events` | boolean | No | Trigger hook on wiki events. | ### Edit project hook @@ -2803,26 +2805,26 @@ Edits a hook for a specified project. PUT /projects/:id/hooks/:hook_id ``` -| Attribute | Type | Required | Description | -|------------------------------|----------------|------------------------|-------------| -| `hook_id` | integer | Yes | The ID of the project hook. | -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `url` | string | Yes | The hook URL. | -| `confidential_issues_events` | boolean | No | Trigger hook on confidential issues events. | -| `confidential_note_events` | boolean | No | Trigger hook on confidential note events. | -| `deployment_events` | boolean | No | Trigger hook on deployment events. | -| `enable_ssl_verification` | boolean | No | Do SSL verification when triggering the hook. | -| `issues_events` | boolean | No | Trigger hook on issues events. | -| `job_events` | boolean | No | Trigger hook on job events. | -| `merge_requests_events` | boolean | No | Trigger hook on merge requests events. | -| `note_events` | boolean | No | Trigger hook on note events. | -| `pipeline_events` | boolean | No | Trigger hook on pipeline events. | -| `push_events_branch_filter` | string | No | Trigger hook on push events for matching branches only. | -| `push_events` | boolean | No | Trigger hook on push events. | -| `releases_events` | boolean | No | Trigger hook on release events. | -| `tag_push_events` | boolean | No | Trigger hook on tag push events. | -| `token` | string | No | Secret token to validate received payloads. Not returned in the response. When you change the webhook URL, the secret token is reset and not retained. | -| `wiki_page_events` | boolean | No | Trigger hook on wiki page events. | +| Attribute | Type | Required | Description | +|------------------------------|-------------------|----------|-------------| +| `hook_id` | integer | Yes | The ID of the project hook. | +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `url` | string | Yes | The hook URL. | +| `confidential_issues_events` | boolean | No | Trigger hook on confidential issues events. | +| `confidential_note_events` | boolean | No | Trigger hook on confidential note events. | +| `deployment_events` | boolean | No | Trigger hook on deployment events. | +| `enable_ssl_verification` | boolean | No | Do SSL verification when triggering the hook. | +| `issues_events` | boolean | No | Trigger hook on issues events. | +| `job_events` | boolean | No | Trigger hook on job events. | +| `merge_requests_events` | boolean | No | Trigger hook on merge requests events. | +| `note_events` | boolean | No | Trigger hook on note events. | +| `pipeline_events` | boolean | No | Trigger hook on pipeline events. | +| `push_events_branch_filter` | string | No | Trigger hook on push events for matching branches only. | +| `push_events` | boolean | No | Trigger hook on push events. | +| `releases_events` | boolean | No | Trigger hook on release events. | +| `tag_push_events` | boolean | No | Trigger hook on tag push events. | +| `token` | string | No | Secret token to validate received payloads. Not returned in the response. When you change the webhook URL, the secret token is reset and not retained. | +| `wiki_page_events` | boolean | No | Trigger hook on wiki page events. | ### Delete project hook @@ -2833,10 +2835,10 @@ multiple times. Either the hook is available or not. DELETE /projects/:id/hooks/:hook_id ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `hook_id` | integer | Yes | The ID of the project hook. | -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `hook_id` | integer | Yes | The ID of the project hook. | +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | Note the JSON response differs if the hook is available or not. If the project hook is available before it's returned in the JSON response or an empty response @@ -2853,10 +2855,10 @@ Available only for project owners and administrators. POST /projects/:id/fork/:forked_from_id ``` -| Attribute | Type | Required | Description | -|------------------|----------------|------------------------|-------------| -| `forked_from_id` | ID | Yes | The ID of the project that was forked from. | -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|------------------|-------------------|----------|-------------| +| `forked_from_id` | ID | Yes | The ID of the project that was forked from. | +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ### Delete an existing forked from relationship @@ -2864,9 +2866,9 @@ POST /projects/:id/fork/:forked_from_id DELETE /projects/:id/fork ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ## Search for projects by name @@ -2878,11 +2880,11 @@ accessible. GET /projects ``` -| Attribute | Type | Required | Description | -|------------|--------|------------------------|-------------| -| `search` | string | Yes | A string contained in the project name. | -| `order_by` | string | No | Return requests ordered by `id`, `name`, `created_at` or `last_activity_at` fields. | -| `sort` | string | No | Return requests sorted in `asc` or `desc` order. | +| Attribute | Type | Required | Description | +|------------|--------|----------|-------------| +| `search` | string | Yes | A string contained in the project name. | +| `order_by` | string | No | Return requests ordered by `id`, `name`, `created_at` or `last_activity_at` fields. | +| `sort` | string | No | Return requests sorted in `asc` or `desc` order. | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects?search=test" @@ -2894,10 +2896,10 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/a POST /projects/:id/housekeeping ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `task` | string | No | `prune` to trigger manual prune of unreachable objects or `eager` to trigger eager housekeeping. | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `task` | string | No | `prune` to trigger manual prune of unreachable objects or `eager` to trigger eager housekeeping. | ## Push rules **(PREMIUM ALL)** @@ -2910,9 +2912,9 @@ project. GET /projects/:id/push_rule ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | ```json { @@ -2942,21 +2944,21 @@ Adds a push rule to a specified project. POST /projects/:id/push_rule ``` -| Attribute | Type | Required | Description | -|-----------------------------------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `author_email_regex` | string | No | All commit author emails must match this, for example `@my-company.com$`. | -| `branch_name_regex` | string | No | All branch names must match this, for example `(feature|hotfix)\/*`. | -| `commit_committer_check` | boolean | No | Users can only push commits to this repository if the committer email is one of their own verified emails. | -| `commit_committer_name_check` | boolean | No | Users can only push commits to this repository if the commit author name is consistent with their GitLab account name. | -| `commit_message_negative_regex` | string | No | No commit message is allowed to match this, for example `ssh\:\/\/`. | -| `commit_message_regex` | string | No | All commit messages must match this, for example `Fixed \d+\..*`. | -| `deny_delete_tag` | boolean | No | Deny deleting a tag. | -| `file_name_regex` | string | No | All committed file names must **not** match this, for example `(jar|exe)$`. | -| `max_file_size` | integer | No | Maximum file size (MB). | -| `member_check` | boolean | No | Restrict commits by author (email) to existing GitLab users. | -| `prevent_secrets` | boolean | No | GitLab rejects any files that are likely to contain secrets. | -| `reject_unsigned_commits` | boolean | No | Reject commit when it's not signed through GPG. | +| Attribute | Type | Required | Description | +|---------------------------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `author_email_regex` | string | No | All commit author emails must match this, for example `@my-company.com$`. | +| `branch_name_regex` | string | No | All branch names must match this, for example `(feature | +| `commit_committer_check` | boolean | No | Users can only push commits to this repository if the committer email is one of their own verified emails. | +| `commit_committer_name_check` | boolean | No | Users can only push commits to this repository if the commit author name is consistent with their GitLab account name. | +| `commit_message_negative_regex` | string | No | No commit message is allowed to match this, for example `ssh\:\/\/`. | +| `commit_message_regex` | string | No | All commit messages must match this, for example `Fixed \d+\..*`. | +| `deny_delete_tag` | boolean | No | Deny deleting a tag. | +| `file_name_regex` | string | No | All committed file names must **not** match this, for example `(jar | +| `max_file_size` | integer | No | Maximum file size (MB). | +| `member_check` | boolean | No | Restrict commits by author (email) to existing GitLab users. | +| `prevent_secrets` | boolean | No | GitLab rejects any files that are likely to contain secrets. | +| `reject_unsigned_commits` | boolean | No | Reject commit when it's not signed through GPG. | ### Edit project push rule @@ -2966,21 +2968,21 @@ Edits a push rule for a specified project. PUT /projects/:id/push_rule ``` -| Attribute | Type | Required | Description | -|-----------------------------------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `author_email_regex` | string | No | All commit author emails must match this, for example `@my-company.com$`. | -| `branch_name_regex` | string | No | All branch names must match this, for example `(feature|hotfix)\/*`. | -| `commit_committer_check` | boolean | No | Users can only push commits to this repository if the committer email is one of their own verified emails. | -| `commit_committer_name_check` | boolean | No | Users can only push commits to this repository if the commit author name is consistent with their GitLab account name. | -| `commit_message_negative_regex` | string | No | No commit message is allowed to match this, for example `ssh\:\/\/`. | -| `commit_message_regex` | string | No | All commit messages must match this, for example `Fixed \d+\..*`. | -| `deny_delete_tag` | boolean | No | Deny deleting a tag. | -| `file_name_regex` | string | No | All committed file names must **not** match this, for example `(jar|exe)$`. | -| `max_file_size` | integer | No | Maximum file size (MB). | -| `member_check` | boolean | No | Restrict commits by author (email) to existing GitLab users. | -| `prevent_secrets` | boolean | No | GitLab rejects any files that are likely to contain secrets. | -| `reject_unsigned_commits` | boolean | No | Reject commits when they are not GPG signed. | +| Attribute | Type | Required | Description | +|---------------------------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `author_email_regex` | string | No | All commit author emails must match this, for example `@my-company.com$`. | +| `branch_name_regex` | string | No | All branch names must match this, for example `(feature | +| `commit_committer_check` | boolean | No | Users can only push commits to this repository if the committer email is one of their own verified emails. | +| `commit_committer_name_check` | boolean | No | Users can only push commits to this repository if the commit author name is consistent with their GitLab account name. | +| `commit_message_negative_regex` | string | No | No commit message is allowed to match this, for example `ssh\:\/\/`. | +| `commit_message_regex` | string | No | All commit messages must match this, for example `Fixed \d+\..*`. | +| `deny_delete_tag` | boolean | No | Deny deleting a tag. | +| `file_name_regex` | string | No | All committed file names must **not** match this, for example `(jar | +| `max_file_size` | integer | No | Maximum file size (MB). | +| `member_check` | boolean | No | Restrict commits by author (email) to existing GitLab users. | +| `prevent_secrets` | boolean | No | GitLab rejects any files that are likely to contain secrets. | +| `reject_unsigned_commits` | boolean | No | Reject commits when they are not GPG signed. | ### Delete project push rule @@ -2992,9 +2994,9 @@ Removes a push rule from a project. DELETE /projects/:id/push_rule ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ## Get groups to which a user can transfer a project @@ -3006,10 +3008,10 @@ Retrieve a list of groups to which the user can transfer a project. GET /projects/:id/transfer_locations ``` -| Attribute | Type | Required | Description | -|-------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `search` | string | No | The group names to search for. | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `search` | string | No | The group names to search for. | Example request: @@ -3051,10 +3053,10 @@ for prerequisites to transfer a project. PUT /projects/:id/transfer ``` -| Attribute | Type | Required | Description | -|-------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `namespace` | integer or string | Yes | The ID or path of the namespace to transfer to project to. | +| Attribute | Type | Required | Description | +|-------------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `namespace` | integer or string | Yes | The ID or path of the namespace to transfer to project to. | Example request: @@ -3202,9 +3204,9 @@ GET /projects/:id/mirror/pull Supported attributes: -| Attribute | Type | Required | Description | -|:----------|:------|:------------|:------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | Example request: @@ -3242,13 +3244,13 @@ you can add the authentication information to the URL: where `token` is a [personal access token](../user/profile/personal_access_tokens.md) with the API scope enabled. -| Attribute | Type | Required | Description | -|--------------|---------|------------------------|-------------| -| `import_url` | string | Yes | URL of remote repository being mirrored (with `user:token` if needed). | -| `mirror` | boolean | Yes | Enables pull mirroring on project when set to `true`. | -| `mirror_trigger_builds`| boolean | No | Trigger pipelines for mirror updates when set to `true`. | -| `only_mirror_protected_branches`| boolean | No | Limits mirroring to only protected branches when set to `true`. | -| `mirror_branch_regex` | String | No | Contains a regular expression. Only branches with names matching the regex are mirrored. Requires `only_mirror_protected_branches` to be disabled. | +| Attribute | Type | Required | Description | +|----------------------------------|---------|----------|-------------| +| `import_url` | string | Yes | URL of remote repository being mirrored (with `user:token` if needed). | +| `mirror` | boolean | Yes | Enables pull mirroring on project when set to `true`. | +| `mirror_trigger_builds` | boolean | No | Trigger pipelines for mirror updates when set to `true`. | +| `only_mirror_protected_branches` | boolean | No | Limits mirroring to only protected branches when set to `true`. | +| `mirror_branch_regex` | String | No | Contains a regular expression. Only branches with names matching the regex are mirrored. Requires `only_mirror_protected_branches` to be disabled. | Example creating a project with pull mirroring: @@ -3288,9 +3290,9 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \ POST /projects/:id/mirror/pull ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/mirror/pull" @@ -3315,10 +3317,10 @@ snapshot may allow some of the data to be retrieved. GET /projects/:id/snapshot ``` -| Attribute | Type | Required | Description | -|-----------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | -| `wiki` | boolean | No | Whether to download the wiki, rather than project, repository. | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| `wiki` | boolean | No | Whether to download the wiki, rather than project, repository. | ## Get the path to repository storage @@ -3333,9 +3335,9 @@ Available for administrators only. GET /projects/:id/storage ``` -| Attribute | Type | Required | Description | -|--------------|----------------|------------------------|-------------| -| `id` | integer or string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | +| Attribute | Type | Required | Description | +|-----------|-------------------|----------|-------------| +| `id` | integer or string | Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | ```json [ |