swagger: '2.0' info: title: GitLab access_requests projects API version: v4 description: Operations related to access requests host: gitlab.com produces: - application/json tags: - name: projects description: Operations related to projects paths: /api/v4/projects/{id}/runners: get: summary: List project's runners description: List all runners available in the project, including from ancestor groups and any allowed shared runners. produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project owned by the authenticated user type: string required: true - in: query name: scope description: 'Deprecated: Use `type` or `status` instead. The scope of runners to return' type: string enum: - specific - shared - instance_type - group_type - project_type - active - paused - online - offline - never_contacted - stale required: false - in: query name: type description: The type of runners to return type: string enum: - instance_type - group_type - project_type required: false - in: query name: paused description: Whether to include only runners that are accepting or ignoring new jobs type: boolean required: false - in: query name: status description: The status of runners to return type: string enum: - active - paused - online - offline - never_contacted - stale required: false - in: query name: tag_list description: A list of runner tags type: array items: type: string required: false example: '[''macos'', ''shell'']' - in: query name: version_prefix description: The version prefix of runners to return type: string required: false example: '''15.1.'' or ''16.''' - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 responses: '200': description: Get runners available for project schema: $ref: '#/definitions/API_Entities_Ci_Runner' '400': description: Scope contains invalid value '403': description: No access granted tags: - projects operationId: getApiV4ProjectsIdRunners post: summary: Assign a runner to project description: Assign an available project runner to the project. produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project owned by the authenticated user type: string required: true - name: postApiV4ProjectsIdRunners in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdRunners' responses: '201': description: Assign a runner to project schema: $ref: '#/definitions/API_Entities_Ci_Runner' '400': description: Bad Request '403': description: No access granted '404': description: Runner not found tags: - projects operationId: postApiV4ProjectsIdRunners /api/v4/projects/{id}/runners/{runner_id}: delete: summary: Unassign a project runner from the project description: It is not possible to unassign a runner from the owner project. If so, an error is returned. Use the call to delete a runner instead. produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project owned by the authenticated user type: string required: true - in: path name: runner_id description: The ID of a runner type: integer format: int32 required: true responses: '400': description: Bad Request '204': description: Unassign a runner from project schema: $ref: '#/definitions/API_Entities_Ci_Runner' '403': description: You cannot unassign a runner from the owner project. Delete the runner instead '404': description: Runner not found '412': description: Precondition Failed tags: - projects operationId: deleteApiV4ProjectsIdRunnersRunnerId /api/v4/projects/{id}/runners/reset_registration_token: post: summary: Reset the runner registration token for a project description: Reset runner registration token produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID of a project type: string required: true responses: '201': description: Reset runner registration token schema: $ref: '#/definitions/API_Entities_Ci_ResetTokenResult' '401': description: Unauthorized '403': description: Forbidden '404': description: Project Not Found tags: - projects operationId: postApiV4ProjectsIdRunnersResetRegistrationToken /api/v4/projects/{id}/issues: get: description: Get a list of project issues produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: query name: with_labels_details description: Return titles of labels and other details type: boolean default: false required: false - in: query name: state description: Return opened, closed, or all issues type: string default: all enum: - opened - closed - all required: false - in: query name: closed_by_id description: Return issues which were closed by the user with the given ID. type: integer format: int32 required: false - in: query name: order_by description: Return issues ordered by `created_at`, `due_date`, `label_priority`, `milestone_due`, `popularity`, `priority`, `relative_position`, `title`, or `updated_at` fields. type: string default: created_at enum: - created_at - due_date - label_priority - milestone_due - popularity - priority - relative_position - title - updated_at - weight required: false - in: query name: sort description: Return issues sorted in `asc` or `desc` order. type: string default: desc enum: - asc - desc required: false - in: query name: due_date description: 'Return issues that have no due date (`0`), or whose due date is this week, this month, between two weeks ago and next month, or which are overdue. Accepts: `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`, `0`' type: string enum: - '0' - any - today - tomorrow - overdue - week - month - next_month_and_previous_two_weeks - '' required: false - in: query name: issue_type description: 'The type of the issue. Accepts: issue, incident, test_case, requirement, task, ticket' type: string enum: - issue - incident - test_case - requirement - task - ticket required: false - in: query name: labels description: Comma-separated list of label names type: array items: type: string required: false - in: query name: milestone description: Milestone title type: string required: false - in: query name: milestone_id description: Return issues assigned to milestones with the specified timebox value ("Any", "None", "Upcoming" or "Started") type: string enum: - Any - None - Upcoming - Started required: false - in: query name: iids description: The IID array of issues type: array items: type: integer format: int32 required: false - in: query name: search description: Search issues for text present in the title, description, or any combination of these type: string required: false - in: query name: in description: '`title`, `description`, or a string joining them with comma' type: string required: false - in: query name: author_id description: Return issues which are authored by the user with the given ID type: integer format: int32 required: false - in: query name: author_username description: Return issues which are authored by the user with the given username type: string required: false - in: query name: assignee_id description: Return issues which are assigned to the user with the given ID type: integer format: int32 required: false - in: query name: assignee_username description: Return issues which are assigned to the user with the given username type: array items: type: string required: false - in: query name: created_after description: Return issues created after the specified time type: string format: date-time required: false - in: query name: created_before description: Return issues created before the specified time type: string format: date-time required: false - in: query name: updated_after description: Return issues updated after the specified time type: string format: date-time required: false - in: query name: updated_before description: Return issues updated before the specified time type: string format: date-time required: false - in: query name: not[labels] description: Comma-separated list of label names type: array items: type: string required: false - in: query name: not[milestone] description: Milestone title type: string required: false - in: query name: not[milestone_id] description: Return issues assigned to milestones without the specified timebox value ("Any", "None", "Upcoming" or "Started") type: string enum: - Any - None - Upcoming - Started required: false - in: query name: not[iids] description: The IID array of issues type: array items: type: integer format: int32 required: false - in: query name: not[author_id] description: Return issues which are not authored by the user with the given ID type: integer format: int32 required: false - in: query name: not[author_username] description: Return issues which are not authored by the user with the given username type: string required: false - in: query name: not[assignee_id] description: Return issues which are not assigned to the user with the given ID type: integer format: int32 required: false - in: query name: not[assignee_username] description: Return issues which are not assigned to the user with the given username type: array items: type: string required: false - in: query name: not[weight] description: Return issues without the specified weight type: integer format: int32 required: false - in: query name: not[iteration_id] description: Return issues which are not assigned to the iteration with the given ID type: integer format: int32 required: false - in: query name: not[iteration_title] description: Return issues which are not assigned to the iteration with the given title type: string required: false - in: query name: scope description: 'Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`' type: string enum: - created-by-me - assigned-to-me - created_by_me - assigned_to_me - all required: false - in: query name: my_reaction_emoji description: Return issues reacted by the authenticated user by the given emoji type: string required: false - in: query name: confidential description: Filter confidential or public issues type: boolean required: false - in: query name: weight description: The weight of the issue type: integer format: int32 required: false - in: query name: epic_id description: The ID of an epic associated with the issues type: integer format: int32 required: false - in: query name: health_status description: 'The health status of the issue. Must be one of: on_track, needs_attention, at_risk, none, any' type: string enum: - on_track - needs_attention - at_risk - none - any required: false - in: query name: iteration_id description: Return issues which are assigned to the iteration with the given ID type: integer format: int32 required: false - in: query name: iteration_title description: Return issues which are assigned to the iteration with the given title type: string required: false - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 - in: query name: cursor description: Cursor for obtaining the next set of records type: string required: false responses: '200': description: Get a list of project issues schema: $ref: '#/definitions/API_Entities_Issue' tags: - projects operationId: getApiV4ProjectsIdIssues post: description: Create a new project issue produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - name: postApiV4ProjectsIdIssues in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdIssues' responses: '201': description: Create a new project issue schema: $ref: '#/definitions/API_Entities_Issue' tags: - projects operationId: postApiV4ProjectsIdIssues /api/v4/projects/{id}/issues_statistics: get: description: Get statistics for the list of project issues produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: query name: labels description: Comma-separated list of label names type: array items: type: string required: false - in: query name: milestone description: Milestone title type: string required: false - in: query name: milestone_id description: Return issues assigned to milestones with the specified timebox value ("Any", "None", "Upcoming" or "Started") type: string enum: - Any - None - Upcoming - Started required: false - in: query name: iids description: The IID array of issues type: array items: type: integer format: int32 required: false - in: query name: search description: Search issues for text present in the title, description, or any combination of these type: string required: false - in: query name: in description: '`title`, `description`, or a string joining them with comma' type: string required: false - in: query name: author_id description: Return issues which are authored by the user with the given ID type: integer format: int32 required: false - in: query name: author_username description: Return issues which are authored by the user with the given username type: string required: false - in: query name: assignee_id description: Return issues which are assigned to the user with the given ID type: integer format: int32 required: false - in: query name: assignee_username description: Return issues which are assigned to the user with the given username type: array items: type: string required: false - in: query name: created_after description: Return issues created after the specified time type: string format: date-time required: false - in: query name: created_before description: Return issues created before the specified time type: string format: date-time required: false - in: query name: updated_after description: Return issues updated after the specified time type: string format: date-time required: false - in: query name: updated_before description: Return issues updated before the specified time type: string format: date-time required: false - in: query name: not[labels] description: Comma-separated list of label names type: array items: type: string required: false - in: query name: not[milestone] description: Milestone title type: string required: false - in: query name: not[milestone_id] description: Return issues assigned to milestones without the specified timebox value ("Any", "None", "Upcoming" or "Started") type: string enum: - Any - None - Upcoming - Started required: false - in: query name: not[iids] description: The IID array of issues type: array items: type: integer format: int32 required: false - in: query name: not[author_id] description: Return issues which are not authored by the user with the given ID type: integer format: int32 required: false - in: query name: not[author_username] description: Return issues which are not authored by the user with the given username type: string required: false - in: query name: not[assignee_id] description: Return issues which are not assigned to the user with the given ID type: integer format: int32 required: false - in: query name: not[assignee_username] description: Return issues which are not assigned to the user with the given username type: array items: type: string required: false - in: query name: not[weight] description: Return issues without the specified weight type: integer format: int32 required: false - in: query name: not[iteration_id] description: Return issues which are not assigned to the iteration with the given ID type: integer format: int32 required: false - in: query name: not[iteration_title] description: Return issues which are not assigned to the iteration with the given title type: string required: false - in: query name: scope description: 'Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`' type: string enum: - created-by-me - assigned-to-me - created_by_me - assigned_to_me - all required: false - in: query name: my_reaction_emoji description: Return issues reacted by the authenticated user by the given emoji type: string required: false - in: query name: confidential description: Filter confidential or public issues type: boolean required: false - in: query name: weight description: The weight of the issue type: integer format: int32 required: false - in: query name: epic_id description: The ID of an epic associated with the issues type: integer format: int32 required: false - in: query name: health_status description: 'The health status of the issue. Must be one of: on_track, needs_attention, at_risk, none, any' type: string enum: - on_track - needs_attention - at_risk - none - any required: false - in: query name: iteration_id description: Return issues which are assigned to the iteration with the given ID type: integer format: int32 required: false - in: query name: iteration_title description: Return issues which are assigned to the iteration with the given title type: string required: false responses: '200': description: Get statistics for the list of project issues tags: - projects operationId: getApiV4ProjectsIdIssuesStatistics /api/v4/projects/{id}/issues/{issue_iid}: get: description: Get a single project issue produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: issue_iid description: The internal ID of a project issue type: integer format: int32 required: true responses: '200': description: Get a single project issue schema: $ref: '#/definitions/API_Entities_Issue' tags: - projects operationId: getApiV4ProjectsIdIssuesIssueIid put: description: Update an existing issue produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: issue_iid description: The internal ID of a project issue type: integer format: int32 required: true - name: putApiV4ProjectsIdIssuesIssueIid in: body required: true schema: $ref: '#/definitions/putApiV4ProjectsIdIssuesIssueIid' responses: '200': description: Update an existing issue schema: $ref: '#/definitions/API_Entities_Issue' tags: - projects operationId: putApiV4ProjectsIdIssuesIssueIid delete: description: Delete a project issue produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: issue_iid description: The internal ID of a project issue type: integer format: int32 required: true responses: '204': description: Delete a project issue tags: - projects operationId: deleteApiV4ProjectsIdIssuesIssueIid /api/v4/projects/{id}/issues/{issue_iid}/reorder: put: description: Reorder an existing issue produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: issue_iid description: The internal ID of a project issue type: integer format: int32 required: true - name: putApiV4ProjectsIdIssuesIssueIidReorder in: body required: true schema: $ref: '#/definitions/putApiV4ProjectsIdIssuesIssueIidReorder' responses: '200': description: Reorder an existing issue schema: $ref: '#/definitions/API_Entities_Issue' tags: - projects operationId: putApiV4ProjectsIdIssuesIssueIidReorder /api/v4/projects/{id}/issues/{issue_iid}/move: post: description: Move an existing issue produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: issue_iid description: The internal ID of a project issue type: integer format: int32 required: true - name: postApiV4ProjectsIdIssuesIssueIidMove in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdIssuesIssueIidMove' responses: '201': description: Move an existing issue schema: $ref: '#/definitions/API_Entities_Issue' tags: - projects operationId: postApiV4ProjectsIdIssuesIssueIidMove /api/v4/projects/{id}/issues/{issue_iid}/clone: post: description: Clone an existing issue produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: issue_iid description: The internal ID of a project issue type: integer format: int32 required: true - name: postApiV4ProjectsIdIssuesIssueIidClone in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdIssuesIssueIidClone' responses: '201': description: Clone an existing issue schema: $ref: '#/definitions/API_Entities_Issue' tags: - projects operationId: postApiV4ProjectsIdIssuesIssueIidClone /api/v4/projects/{id}/issues/{issue_iid}/closed_by: get: description: List merge requests closing issue produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: issue_iid description: The internal ID of a project issue type: integer format: int32 required: true responses: '200': description: List merge requests closing issue schema: $ref: '#/definitions/API_Entities_MergeRequestBasic' tags: - projects operationId: getApiV4ProjectsIdIssuesIssueIidClosedBy /api/v4/projects/{id}/uploads/authorize: post: summary: Workhorse authorize the file upload description: This feature was introduced in GitLab 13.11 produces: - application/json consumes: - application/json parameters: - in: path name: id type: integer format: int32 required: true responses: '200': description: Workhorse authorize the file upload '404': description: Not found tags: - projects operationId: postApiV4ProjectsIdUploadsAuthorize /api/v4/projects/{id}/uploads: post: description: Upload a file produces: - application/json consumes: - application/json parameters: - in: path name: id type: integer format: int32 required: true - name: postApiV4ProjectsIdUploads in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdUploads' responses: '201': description: Upload a file schema: $ref: '#/definitions/API_Entities_ProjectUpload' '404': description: Not found tags: - projects operationId: postApiV4ProjectsIdUploads get: description: Get the list of uploads of a project produces: - application/json parameters: - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 - in: path name: id type: integer format: int32 required: true responses: '200': description: Get the list of uploads of a project schema: type: array items: $ref: '#/definitions/API_Entities_MarkdownUploadAdmin' '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: getApiV4ProjectsIdUploads /api/v4/projects/{id}/uploads/{upload_id}: get: description: Download a single project upload by ID produces: - application/json parameters: - in: path name: upload_id description: The ID of a project upload type: integer format: int32 required: true - in: path name: id type: integer format: int32 required: true responses: '200': description: Download a single project upload by ID schema: type: file '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: getApiV4ProjectsIdUploadsUploadId delete: description: Delete a single project upload by ID produces: - application/json parameters: - in: path name: upload_id description: The ID of a project upload type: integer format: int32 required: true - in: path name: id type: integer format: int32 required: true responses: '204': description: Delete a single project upload by ID '400': description: Bad request '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: deleteApiV4ProjectsIdUploadsUploadId /api/v4/projects/{id}/uploads/{secret}/{filename}: get: description: Download a single project upload by secret and filename produces: - application/json parameters: - in: path name: secret description: The 32-character secret of a project upload type: string required: true - in: path name: filename description: The filename of a project upload type: string required: true - in: path name: id type: integer format: int32 required: true responses: '200': description: Download a single project upload by secret and filename schema: type: file '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: getApiV4ProjectsIdUploadsSecretFilename delete: description: Delete a single project upload by secret and filename produces: - application/json parameters: - in: path name: secret description: The 32-character secret of a project upload type: string required: true - in: path name: filename description: The filename of a project upload type: string required: true - in: path name: id type: integer format: int32 required: true responses: '204': description: Delete a single project upload by secret and filename '400': description: Bad request '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: deleteApiV4ProjectsIdUploadsSecretFilename /api/v4/projects/{id}/create_ci_config: post: summary: Create merge request for missing ci config in project description: Creates a merge request to add missing CI configuration produces: - application/json consumes: - application/json parameters: - in: path name: id type: integer format: int32 required: true responses: '201': description: Create merge request for missing ci config in project tags: - projects operationId: postApiV4ProjectsIdCreateCiConfig /api/v4/projects/{id}/registry/protection/repository/rules: get: description: Get list of container registry protection rules for a project produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '200': description: Get list of container registry protection rules for a project schema: type: array items: $ref: '#/definitions/API_Entities_Projects_ContainerRegistry_Protection_Rule' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found tags: - projects operationId: getApiV4ProjectsIdRegistryProtectionRepositoryRules post: description: Create a container protection rule for a project produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - name: postApiV4ProjectsIdRegistryProtectionRepositoryRules in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdRegistryProtectionRepositoryRules' responses: '201': description: Create a container protection rule for a project schema: $ref: '#/definitions/API_Entities_Projects_ContainerRegistry_Protection_Rule' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '422': description: Unprocessable Entity tags: - projects operationId: postApiV4ProjectsIdRegistryProtectionRepositoryRules /api/v4/projects/{id}/registry/protection/repository/rules/{protection_rule_id}: patch: description: Update a container protection rule for a project produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: protection_rule_id description: The ID of the container protection rule type: integer format: int32 required: true - name: patchApiV4ProjectsIdRegistryProtectionRepositoryRulesProtectionRuleId in: body required: true schema: $ref: '#/definitions/patchApiV4ProjectsIdRegistryProtectionRepositoryRulesProtectionRuleId' responses: '200': description: Update a container protection rule for a project schema: $ref: '#/definitions/API_Entities_Projects_ContainerRegistry_Protection_Rule' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '422': description: Unprocessable Entity tags: - projects operationId: patchApiV4ProjectsIdRegistryProtectionRepositoryRulesProtectionRuleId delete: description: Delete container protection rule produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: protection_rule_id description: The ID of the container protection rule type: integer format: int32 required: true responses: '204': description: 204 No Content '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found tags: - projects operationId: deleteApiV4ProjectsIdRegistryProtectionRepositoryRulesProtectionRuleId /api/v4/projects/{id}/registry/protection/tag/rules: get: summary: Gets a list of container protection tag rules for a project. description: This feature was introduced in GitLab 18.7. produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project. type: string required: true responses: '200': description: Gets a list of container protection tag rules for a project. schema: type: array items: $ref: '#/definitions/API_Entities_Projects_ContainerRegistry_Protection_TagRule' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found tags: - projects operationId: getApiV4ProjectsIdRegistryProtectionTagRules post: summary: Create a container protection tag rule for a project. 5 rule limit per project. description: This feature was introduced in GitLab 18.8. produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project. type: string required: true - name: postApiV4ProjectsIdRegistryProtectionTagRules in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdRegistryProtectionTagRules' responses: '201': description: Create a container protection tag rule for a project. 5 rule limit per project. schema: $ref: '#/definitions/API_Entities_Projects_ContainerRegistry_Protection_TagRule' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '422': description: Unprocessable Entity tags: - projects operationId: postApiV4ProjectsIdRegistryProtectionTagRules /api/v4/projects/{id}/registry/protection/tag/rules/{protection_rule_id}: patch: summary: Update a container protection tag rule for a project. description: This feature was introduced in GitLab 18.9. produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project. type: string required: true - in: path name: protection_rule_id description: The ID of the container protection tag rule. type: integer format: int32 required: true - name: patchApiV4ProjectsIdRegistryProtectionTagRulesProtectionRuleId in: body required: true schema: $ref: '#/definitions/patchApiV4ProjectsIdRegistryProtectionTagRulesProtectionRuleId' responses: '200': description: Update a container protection tag rule for a project. schema: $ref: '#/definitions/API_Entities_Projects_ContainerRegistry_Protection_TagRule' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '422': description: Unprocessable Entity tags: - projects operationId: patchApiV4ProjectsIdRegistryProtectionTagRulesProtectionRuleId delete: summary: Delete container protection tag rule description: This feature was introduced in GitLab 18.9. produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project. type: string required: true - in: path name: protection_rule_id description: The ID of the container protection tag rule. type: integer format: int32 required: true responses: '204': description: Delete a container protection tag rule '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found tags: - projects operationId: deleteApiV4ProjectsIdRegistryProtectionTagRulesProtectionRuleId /api/v4/projects/{id}/packages/protection/rules: get: description: Get list of package protection rules for a project produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '200': description: Get list of package protection rules for a project schema: type: array items: $ref: '#/definitions/API_Entities_Projects_Packages_Protection_Rule' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found tags: - projects operationId: getApiV4ProjectsIdPackagesProtectionRules post: description: Create a package protection rule for a project produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - name: postApiV4ProjectsIdPackagesProtectionRules in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdPackagesProtectionRules' responses: '201': description: Create a package protection rule for a project schema: $ref: '#/definitions/API_Entities_Projects_Packages_Protection_Rule' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '422': description: Unprocessable Entity tags: - projects operationId: postApiV4ProjectsIdPackagesProtectionRules /api/v4/projects/{id}/packages/protection/rules/{package_protection_rule_id}: patch: description: Update a package protection rule for a project produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: package_protection_rule_id description: The ID of the package protection rule type: integer format: int32 required: true - name: patchApiV4ProjectsIdPackagesProtectionRulesPackageProtectionRuleId in: body required: true schema: $ref: '#/definitions/patchApiV4ProjectsIdPackagesProtectionRulesPackageProtectionRuleId' responses: '200': description: Update a package protection rule for a project schema: $ref: '#/definitions/API_Entities_Projects_Packages_Protection_Rule' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '422': description: Unprocessable Entity tags: - projects operationId: patchApiV4ProjectsIdPackagesProtectionRulesPackageProtectionRuleId delete: description: Delete package protection rule produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: package_protection_rule_id description: The ID of the package protection rule type: integer format: int32 required: true responses: '204': description: 204 No Content '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found tags: - projects operationId: deleteApiV4ProjectsIdPackagesProtectionRulesPackageProtectionRuleId /api/v4/projects/{id}/statistics: get: description: Get the list of project fetch statistics for the last 30 days produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '200': description: Get the list of project fetch statistics for the last 30 days schema: $ref: '#/definitions/API_Entities_ProjectDailyStatistics' '404': description: 404 Project Not Found '401': description: 401 Unauthorized tags: - projects operationId: getApiV4ProjectsIdStatistics /api/v4/projects/{id}/restore: post: description: Restore a project produces: - application/json consumes: - application/json parameters: - in: path name: id type: integer format: int32 required: true responses: '201': description: Restore a project schema: $ref: '#/definitions/API_Entities_Project' tags: - projects operationId: postApiV4ProjectsIdRestore /api/v4/projects: get: description: Get a list of visible projects for authenticated user produces: - application/json parameters: - in: query name: order_by description: Return projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only available to admins. Similarity is available when searching and is limited to projects the user has access to. type: string default: created_at enum: - id - name - path - created_at - updated_at - last_activity_at - similarity - star_count - storage_size - repository_size - wiki_size - packages_size required: false - in: query name: sort description: Return projects sorted in ascending and descending order type: string default: desc enum: - asc - desc required: false - in: query name: archived description: Limit by archived status type: boolean required: false - in: query name: visibility description: Limit by visibility type: string enum: - private - internal - public required: false - in: query name: search description: Return list of projects matching the search criteria type: string required: false - in: query name: search_namespaces description: Include ancestor namespaces when matching search criteria type: boolean required: false - in: query name: owned description: Limit by owned by authenticated user type: boolean default: false required: false - in: query name: starred description: Limit by starred status type: boolean default: false required: false - in: query name: imported description: Limit by imported by authenticated user type: boolean default: false required: false - in: query name: membership description: Limit by projects that the current user is a member of type: boolean default: false required: false - in: query name: with_issues_enabled description: Limit by enabled issues feature type: boolean default: false required: false - in: query name: with_merge_requests_enabled description: Limit by enabled merge requests feature type: boolean default: false required: false - in: query name: with_programming_language description: Limit to repositories which use the given programming language type: string required: false - in: query name: min_access_level description: Limit by minimum access level of authenticated user type: integer format: int32 enum: - 10 - 15 - 20 - 30 - 40 - 50 required: false - in: query name: id_after description: Limit results to projects with IDs greater than the specified ID type: integer format: int32 required: false - in: query name: id_before description: Limit results to projects with IDs less than the specified ID type: integer format: int32 required: false - in: query name: last_activity_after description: 'Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: last_activity_before description: 'Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: repository_storage description: Which storage shard the repository is on. Available only to admins type: string required: false - in: query name: topic description: Comma-separated list of topics. Limit results to projects having all topics type: array items: type: string required: false - in: query name: topic_id description: Limit results to projects with the assigned topic given by the topic ID type: integer format: int32 required: false - in: query name: updated_before description: 'Return projects updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: updated_after description: 'Return projects updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: include_pending_delete description: Include projects in pending delete state. Can only be set by admins type: boolean required: false - in: query name: marked_for_deletion_on description: Date when the project was marked for deletion type: string format: date required: false - in: query name: active description: Limit by projects that are not archived and not marked for deletion type: boolean required: false - in: query name: wiki_checksum_failed description: Limit by projects where wiki checksum is failed type: boolean default: false required: false - in: query name: repository_checksum_failed description: Limit by projects where repository checksum is failed type: boolean default: false required: false - in: query name: include_hidden description: Include hidden projects. Can only be set by admins type: boolean default: false required: false - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 - in: query name: simple description: Return only the ID, URL, name, and path of each project type: boolean default: false required: false - in: query name: statistics description: Include project statistics type: boolean default: false required: false - in: query name: with_custom_attributes description: Include custom attributes in the response type: boolean default: false required: false responses: '200': description: Get a list of visible projects for authenticated user schema: type: array items: $ref: '#/definitions/API_Entities_BasicProjectDetails' '400': description: Bad request tags: - projects operationId: getApiV4Projects post: description: Create new project produces: - application/json consumes: - application/json parameters: - name: postApiV4Projects in: body required: true schema: $ref: '#/definitions/postApiV4Projects' responses: '201': description: Create new project schema: $ref: '#/definitions/API_Entities_Project' '403': description: Unauthenticated '404': description: Not found '400': description: Bad request tags: - projects operationId: postApiV4Projects /api/v4/projects/user/{user_id}: post: description: Create new project for a specified user. Only available to admin users. produces: - application/json consumes: - application/json parameters: - in: path name: user_id description: The ID of a user type: integer format: int32 required: true example: 1 - name: postApiV4ProjectsUserUserId in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsUserUserId' responses: '201': description: Create new project for a specified user. Only available to admin users. schema: $ref: '#/definitions/API_Entities_Project' '403': description: Unauthenticated '404': description: Not found '400': description: Bad request tags: - projects operationId: postApiV4ProjectsUserUserId /api/v4/projects/{id}/share_locations: get: description: Returns group that can be shared with the given project produces: - application/json parameters: - in: path name: id description: The id of the project type: integer format: int32 required: true - in: query name: search description: Return list of groups matching the search criteria type: string required: false responses: '200': description: Returns group that can be shared with the given project schema: $ref: '#/definitions/API_Entities_Group' tags: - projects operationId: getApiV4ProjectsIdShareLocations /api/v4/projects/{id}: get: description: Get a single project produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: query name: statistics description: Include project statistics type: boolean default: false required: false - in: query name: with_custom_attributes description: Include custom attributes in the response type: boolean default: false required: false - in: query name: license description: Include project license data type: boolean default: false required: false responses: '200': description: Get a single project schema: $ref: '#/definitions/API_Entities_ProjectWithAccess' tags: - projects operationId: getApiV4ProjectsId put: description: Update an existing project produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - name: putApiV4ProjectsId in: body required: true schema: $ref: '#/definitions/putApiV4ProjectsId' responses: '200': description: Update an existing project schema: $ref: '#/definitions/API_Entities_Project' '400': description: Bad request '403': description: Unauthenticated tags: - projects operationId: putApiV4ProjectsId delete: description: Delete a project produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '202': description: Delete a project '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: deleteApiV4ProjectsId /api/v4/projects/{id}/fork: post: description: Fork new project for the current user or provided namespace. produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - name: postApiV4ProjectsIdFork in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdFork' responses: '201': description: Fork new project for the current user or provided namespace. schema: $ref: '#/definitions/API_Entities_Project' '403': description: Unauthenticated '404': description: Not found '409': description: Conflict tags: - projects operationId: postApiV4ProjectsIdFork delete: description: Remove a forked_from relationship produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '204': description: Remove a forked_from relationship '304': description: Not modified '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: deleteApiV4ProjectsIdFork /api/v4/projects/{id}/forks: get: description: List forks of this project produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: query name: order_by description: Return projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only available to admins. Similarity is available when searching and is limited to projects the user has access to. type: string default: created_at enum: - id - name - path - created_at - updated_at - last_activity_at - similarity - star_count - storage_size - repository_size - wiki_size - packages_size required: false - in: query name: sort description: Return projects sorted in ascending and descending order type: string default: desc enum: - asc - desc required: false - in: query name: archived description: Limit by archived status type: boolean required: false - in: query name: visibility description: Limit by visibility type: string enum: - private - internal - public required: false - in: query name: search description: Return list of projects matching the search criteria type: string required: false - in: query name: search_namespaces description: Include ancestor namespaces when matching search criteria type: boolean required: false - in: query name: owned description: Limit by owned by authenticated user type: boolean default: false required: false - in: query name: starred description: Limit by starred status type: boolean default: false required: false - in: query name: imported description: Limit by imported by authenticated user type: boolean default: false required: false - in: query name: membership description: Limit by projects that the current user is a member of type: boolean default: false required: false - in: query name: with_issues_enabled description: Limit by enabled issues feature type: boolean default: false required: false - in: query name: with_merge_requests_enabled description: Limit by enabled merge requests feature type: boolean default: false required: false - in: query name: with_programming_language description: Limit to repositories which use the given programming language type: string required: false - in: query name: min_access_level description: Limit by minimum access level of authenticated user type: integer format: int32 enum: - 10 - 15 - 20 - 30 - 40 - 50 required: false - in: query name: id_after description: Limit results to projects with IDs greater than the specified ID type: integer format: int32 required: false - in: query name: id_before description: Limit results to projects with IDs less than the specified ID type: integer format: int32 required: false - in: query name: last_activity_after description: 'Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: last_activity_before description: 'Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: repository_storage description: Which storage shard the repository is on. Available only to admins type: string required: false - in: query name: topic description: Comma-separated list of topics. Limit results to projects having all topics type: array items: type: string required: false - in: query name: topic_id description: Limit results to projects with the assigned topic given by the topic ID type: integer format: int32 required: false - in: query name: updated_before description: 'Return projects updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: updated_after description: 'Return projects updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: include_pending_delete description: Include projects in pending delete state. Can only be set by admins type: boolean required: false - in: query name: marked_for_deletion_on description: Date when the project was marked for deletion type: string format: date required: false - in: query name: active description: Limit by projects that are not archived and not marked for deletion type: boolean required: false - in: query name: wiki_checksum_failed description: Limit by projects where wiki checksum is failed type: boolean default: false required: false - in: query name: repository_checksum_failed description: Limit by projects where repository checksum is failed type: boolean default: false required: false - in: query name: include_hidden description: Include hidden projects. Can only be set by admins type: boolean default: false required: false - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 - in: query name: simple description: Return only the ID, URL, name, and path of each project type: boolean default: false required: false - in: query name: with_custom_attributes description: Include custom attributes in the response type: boolean default: false required: false responses: '200': description: List forks of this project schema: type: array items: $ref: '#/definitions/API_Entities_Project' tags: - projects operationId: getApiV4ProjectsIdForks /api/v4/projects/{id}/pages_access: get: description: Check pages access of this project produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '200': description: Check pages access of this project '403': description: Unauthenticated tags: - projects operationId: getApiV4ProjectsIdPagesAccess /api/v4/projects/{id}/archive: post: description: Archive a project produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '201': description: Archive a project schema: $ref: '#/definitions/API_Entities_Project' '403': description: Unauthenticated tags: - projects operationId: postApiV4ProjectsIdArchive /api/v4/projects/{id}/unarchive: post: description: Unarchive a project produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '201': description: Unarchive a project schema: $ref: '#/definitions/API_Entities_Project' '403': description: Unauthenticated tags: - projects operationId: postApiV4ProjectsIdUnarchive /api/v4/projects/{id}/star: post: description: Star a project produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '201': description: Star a project schema: $ref: '#/definitions/API_Entities_Project' '304': description: Not modified '403': description: Unauthenticated tags: - projects operationId: postApiV4ProjectsIdStar /api/v4/projects/{id}/unstar: post: description: Unstar a project produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '201': description: Unstar a project schema: $ref: '#/definitions/API_Entities_Project' '304': description: Not modified '403': description: Unauthenticated tags: - projects operationId: postApiV4ProjectsIdUnstar /api/v4/projects/{id}/starrers: get: description: Get the users who starred a project produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: query name: search description: Return list of users matching the search criteria type: string required: false example: user - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 responses: '200': description: Get the users who starred a project schema: type: array items: $ref: '#/definitions/API_Entities_UserBasic' '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: getApiV4ProjectsIdStarrers /api/v4/projects/{id}/languages: get: description: Get languages in project repository produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '200': description: Get languages in project repository '404': description: Not found tags: - projects operationId: getApiV4ProjectsIdLanguages /api/v4/projects/{id}/fork/{forked_from_id}: post: description: Mark this project as forked from another produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: forked_from_id description: The ID of the project it was forked from type: string required: true example: gitlab responses: '201': description: Mark this project as forked from another schema: $ref: '#/definitions/API_Entities_Project' '401': description: Unauthorized '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: postApiV4ProjectsIdForkForkedFromId /api/v4/projects/{id}/share: post: description: Share the project with a group produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - name: postApiV4ProjectsIdShare in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdShare' responses: '201': description: Share the project with a group schema: $ref: '#/definitions/API_Entities_ProjectGroupLink' '400': description: Bad request '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: postApiV4ProjectsIdShare /api/v4/projects/{id}/share/{group_id}: delete: description: Remove a group share produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: group_id description: The ID of the group type: integer format: int32 required: true responses: '204': description: Remove a group share '400': description: Bad request '404': description: Not found tags: - projects operationId: deleteApiV4ProjectsIdShareGroupId /api/v4/projects/{id}/import_project_members/{project_id}: post: summary: Import members from another project description: This feature was introduced in GitLab 14.2 produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: path name: project_id description: The ID of the source project to import the members from. type: integer format: int32 required: true responses: '200': description: Import members from another project '403': description: Unauthenticated '404': description: Project Not Found '422': description: Import failed tags: - projects operationId: postApiV4ProjectsIdImportProjectMembersProjectId /api/v4/projects/{id}/users: get: description: Get the users list of a project produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: query name: search description: Return list of users matching the search criteria type: string required: false example: user - in: query name: skip_users description: Filter out users with the specified IDs type: array items: type: integer format: int32 required: false - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 responses: '200': description: Get the users list of a project schema: type: array items: $ref: '#/definitions/API_Entities_UserBasic' '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: getApiV4ProjectsIdUsers /api/v4/projects/{id}/groups: get: description: Get ancestor and shared groups for a project produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: query name: search description: Return list of groups matching the search criteria type: string required: false example: group - in: query name: skip_groups description: Array of group ids to exclude from list type: array items: type: integer format: int32 required: false - in: query name: with_shared description: Include shared groups type: boolean default: false required: false - in: query name: shared_visible_only description: Limit to shared groups user has access to type: boolean default: false required: false - in: query name: shared_min_access_level description: Limit returned shared groups by minimum access level to the project type: integer format: int32 enum: - 10 - 15 - 20 - 30 - 40 - 50 required: false - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 responses: '200': description: Get ancestor and shared groups for a project schema: type: array items: $ref: '#/definitions/API_Entities_PublicGroupDetails' '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: getApiV4ProjectsIdGroups /api/v4/projects/{id}/invited_groups: get: description: Get a list of invited groups in this project produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: query name: relation description: Filter by group relation type: array items: type: string enum: - direct - inherited required: false - in: query name: search description: Search for a specific group type: string required: false - in: query name: min_access_level description: Limit by minimum access level of authenticated user type: integer format: int32 enum: - 10 - 15 - 20 - 30 - 40 - 50 required: false - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 - in: query name: with_custom_attributes description: Include custom attributes in the response type: boolean default: false required: false responses: '200': description: Get a list of invited groups in this project schema: type: array items: $ref: '#/definitions/API_Entities_Group' tags: - projects operationId: getApiV4ProjectsIdInvitedGroups /api/v4/projects/{id}/housekeeping: post: summary: Start the housekeeping task for a project description: This feature was introduced in GitLab 9.0. produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - name: postApiV4ProjectsIdHousekeeping in: body required: true schema: $ref: '#/definitions/postApiV4ProjectsIdHousekeeping' responses: '201': description: Start the housekeeping task for a project '401': description: Unauthorized '403': description: Unauthenticated '409': description: Conflict tags: - projects operationId: postApiV4ProjectsIdHousekeeping /api/v4/projects/{id}/repository_size: post: summary: Start a task to recalculate repository size for a project description: This feature was introduced in GitLab 15.0. produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '201': description: Start a task to recalculate repository size for a project '401': description: Unauthorized '403': description: Unauthenticated tags: - projects operationId: postApiV4ProjectsIdRepositorySize /api/v4/projects/{id}/transfer: put: description: Transfer a project to a new namespace produces: - application/json consumes: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - name: putApiV4ProjectsIdTransfer in: body required: true schema: $ref: '#/definitions/putApiV4ProjectsIdTransfer' responses: '200': description: Transfer a project to a new namespace schema: $ref: '#/definitions/API_Entities_Project' '400': description: Bad request '403': description: Unauthenticated '404': description: Not found tags: - projects operationId: putApiV4ProjectsIdTransfer /api/v4/projects/{id}/transfer_locations: get: description: Get the namespaces to where the project can be transferred produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: query name: search description: Return list of namespaces matching the search criteria type: string required: false example: search - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 responses: '200': description: Get the namespaces to where the project can be transferred schema: type: array items: $ref: '#/definitions/API_Entities_PublicGroupDetails' '403': description: Unauthenticated tags: - projects operationId: getApiV4ProjectsIdTransferLocations /api/v4/projects/{id}/storage: get: description: Show the storage information produces: - application/json parameters: - in: path name: id description: ID of a project type: string required: true responses: '200': description: Show the storage information schema: $ref: '#/definitions/API_Entities_ProjectRepositoryStorage' '403': description: Unauthenticated tags: - projects operationId: getApiV4ProjectsIdStorage /api/v4/projects/{id}/audit_events: get: description: Get a list of audit events in this project. produces: - application/json parameters: - in: query name: created_after description: Return audit events created after the specified time type: string format: date-time required: false example: '2016-01-19T09:05:50.355Z' - in: query name: created_before description: Return audit events created before the specified time type: string format: date-time required: false example: '2016-01-19T09:05:50.355Z' - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 - in: path name: id type: integer format: int32 required: true responses: '200': description: Get a list of audit events in this project. schema: type: array items: $ref: '#/definitions/API_Entities_AuditEvent' tags: - projects operationId: getApiV4ProjectsIdAuditEvents /api/v4/projects/{id}/audit_events/{audit_event_id}: get: description: Get a specific audit event in this project. produces: - application/json parameters: - in: path name: audit_event_id description: The ID of the audit event type: integer format: int32 required: true - in: path name: id type: integer format: int32 required: true responses: '200': description: Get a specific audit event in this project. schema: $ref: '#/definitions/API_Entities_AuditEvent' tags: - projects operationId: getApiV4ProjectsIdAuditEventsAuditEventId /api/v4/projects/{id}/(-/)search: get: summary: Search on GitLab within a project description: This feature was introduced in GitLab 10.5. produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true - in: query name: search description: The expression it should be searched for type: string required: true - in: query name: scope description: The scope of the search type: string enum: - issues - work_items - merge_requests - milestones - notes - wiki_blobs - commits - blobs - users required: true - in: query name: ref description: The name of a repository branch or tag. If not given, the default branch is used type: string required: false - in: query name: state description: Filter results by state type: string enum: - all - opened - closed - merged required: false - in: query name: confidential description: Filter results by confidentiality type: boolean required: false - in: query name: type description: 'Filter work items by type. Only applies to work_items scope. Available types: issue, task, epic, incident, test_case, requirement, objective, key_result, ticket.' type: array items: type: string required: false - in: query name: fields description: Array of fields you wish to search. Available with advanced search. type: array items: type: string enum: - title required: false - in: query name: num_context_lines description: Number of context lines around each match. Available with advanced and exact code search. Introduced in GitLab 18.11. type: integer format: int32 minimum: 0 maximum: 20 required: false - in: query name: regex description: Performs a regex code search. Available with exact code search. Introduced in GitLab 18.9 type: boolean required: false - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 responses: '200': description: Search on GitLab within a project tags: - projects operationId: getApiV4ProjectsId(-)search /api/v4/projects/{id}/terraform/state_protection_rules: get: summary: List all Terraform state protection rules for a project description: Lists all Terraform state protection rules for a project. This feature was introduced in GitLab 18.11. produces: - application/json parameters: - in: path name: id description: The ID or URL-encoded path of the project type: string required: true responses: '200': description: List all Terraform state protection rules for a project schema: type: array items: $ref: '#/definitions/API_Entities_Terraform_StateProtectionRule' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found tags: - projects operationId: getApiV4ProjectsIdTerraformStateProtectionRules /api/v4/runners/{id}/projects: get: summary: List runner's projects description: Get a paginated list of all projects associated with the specified runner. Access is restricted based on user permissions. produces: - application/json parameters: - in: path name: id description: The ID of a runner type: integer format: int32 required: true - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 responses: '200': description: Get projects associated with a runner schema: $ref: '#/definitions/API_Entities_BasicProjectDetails' '401': description: Unauthorized '403': description: No access granted '404': description: Runner not found tags: - projects operationId: getApiV4RunnersIdProjects /api/v4/users/{user_id}/projects: get: description: Get a user projects produces: - application/json parameters: - in: path name: user_id description: The ID or username of the user type: string required: true - in: query name: order_by description: Return projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only available to admins. Similarity is available when searching and is limited to projects the user has access to. type: string default: created_at enum: - id - name - path - created_at - updated_at - last_activity_at - similarity - star_count - storage_size - repository_size - wiki_size - packages_size required: false - in: query name: sort description: Return projects sorted in ascending and descending order type: string default: desc enum: - asc - desc required: false - in: query name: archived description: Limit by archived status type: boolean required: false - in: query name: visibility description: Limit by visibility type: string enum: - private - internal - public required: false - in: query name: search description: Return list of projects matching the search criteria type: string required: false - in: query name: search_namespaces description: Include ancestor namespaces when matching search criteria type: boolean required: false - in: query name: owned description: Limit by owned by authenticated user type: boolean default: false required: false - in: query name: starred description: Limit by starred status type: boolean default: false required: false - in: query name: imported description: Limit by imported by authenticated user type: boolean default: false required: false - in: query name: membership description: Limit by projects that the current user is a member of type: boolean default: false required: false - in: query name: with_issues_enabled description: Limit by enabled issues feature type: boolean default: false required: false - in: query name: with_merge_requests_enabled description: Limit by enabled merge requests feature type: boolean default: false required: false - in: query name: with_programming_language description: Limit to repositories which use the given programming language type: string required: false - in: query name: min_access_level description: Limit by minimum access level of authenticated user type: integer format: int32 enum: - 10 - 15 - 20 - 30 - 40 - 50 required: false - in: query name: id_after description: Limit results to projects with IDs greater than the specified ID type: integer format: int32 required: false - in: query name: id_before description: Limit results to projects with IDs less than the specified ID type: integer format: int32 required: false - in: query name: last_activity_after description: 'Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: last_activity_before description: 'Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: repository_storage description: Which storage shard the repository is on. Available only to admins type: string required: false - in: query name: topic description: Comma-separated list of topics. Limit results to projects having all topics type: array items: type: string required: false - in: query name: topic_id description: Limit results to projects with the assigned topic given by the topic ID type: integer format: int32 required: false - in: query name: updated_before description: 'Return projects updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: updated_after description: 'Return projects updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: include_pending_delete description: Include projects in pending delete state. Can only be set by admins type: boolean required: false - in: query name: marked_for_deletion_on description: Date when the project was marked for deletion type: string format: date required: false - in: query name: active description: Limit by projects that are not archived and not marked for deletion type: boolean required: false - in: query name: wiki_checksum_failed description: Limit by projects where wiki checksum is failed type: boolean default: false required: false - in: query name: repository_checksum_failed description: Limit by projects where repository checksum is failed type: boolean default: false required: false - in: query name: include_hidden description: Include hidden projects. Can only be set by admins type: boolean default: false required: false - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 - in: query name: simple description: Return only the ID, URL, name, and path of each project type: boolean default: false required: false - in: query name: statistics description: Include project statistics type: boolean default: false required: false - in: query name: with_custom_attributes description: Include custom attributes in the response type: boolean default: false required: false responses: '200': description: Get a user projects schema: type: array items: $ref: '#/definitions/API_Entities_BasicProjectDetails' '404': description: 404 User Not Found tags: - projects operationId: getApiV4UsersUserIdProjects /api/v4/users/{user_id}/contributed_projects: get: description: Get projects that a user has contributed to produces: - application/json parameters: - in: path name: user_id description: The ID or username of the user type: string required: true - in: query name: order_by description: Return projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only available to admins. Similarity is available when searching and is limited to projects the user has access to. type: string default: created_at enum: - id - name - path - created_at - updated_at - last_activity_at - similarity - star_count - storage_size - repository_size - wiki_size - packages_size required: false - in: query name: sort description: Return projects sorted in ascending and descending order type: string default: desc enum: - asc - desc required: false - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 - in: query name: simple description: Return only the ID, URL, name, and path of each project type: boolean default: false required: false responses: '200': description: Get projects that a user has contributed to schema: type: array items: $ref: '#/definitions/API_Entities_BasicProjectDetails' '404': description: 404 User Not Found tags: - projects operationId: getApiV4UsersUserIdContributedProjects /api/v4/users/{user_id}/starred_projects: get: description: Get projects starred by a user produces: - application/json parameters: - in: path name: user_id description: The ID or username of the user type: string required: true - in: query name: order_by description: Return projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only available to admins. Similarity is available when searching and is limited to projects the user has access to. type: string default: created_at enum: - id - name - path - created_at - updated_at - last_activity_at - similarity - star_count - storage_size - repository_size - wiki_size - packages_size required: false - in: query name: sort description: Return projects sorted in ascending and descending order type: string default: desc enum: - asc - desc required: false - in: query name: archived description: Limit by archived status type: boolean required: false - in: query name: visibility description: Limit by visibility type: string enum: - private - internal - public required: false - in: query name: search description: Return list of projects matching the search criteria type: string required: false - in: query name: search_namespaces description: Include ancestor namespaces when matching search criteria type: boolean required: false - in: query name: owned description: Limit by owned by authenticated user type: boolean default: false required: false - in: query name: starred description: Limit by starred status type: boolean default: false required: false - in: query name: imported description: Limit by imported by authenticated user type: boolean default: false required: false - in: query name: membership description: Limit by projects that the current user is a member of type: boolean default: false required: false - in: query name: with_issues_enabled description: Limit by enabled issues feature type: boolean default: false required: false - in: query name: with_merge_requests_enabled description: Limit by enabled merge requests feature type: boolean default: false required: false - in: query name: with_programming_language description: Limit to repositories which use the given programming language type: string required: false - in: query name: min_access_level description: Limit by minimum access level of authenticated user type: integer format: int32 enum: - 10 - 15 - 20 - 30 - 40 - 50 required: false - in: query name: id_after description: Limit results to projects with IDs greater than the specified ID type: integer format: int32 required: false - in: query name: id_before description: Limit results to projects with IDs less than the specified ID type: integer format: int32 required: false - in: query name: last_activity_after description: 'Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: last_activity_before description: 'Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: repository_storage description: Which storage shard the repository is on. Available only to admins type: string required: false - in: query name: topic description: Comma-separated list of topics. Limit results to projects having all topics type: array items: type: string required: false - in: query name: topic_id description: Limit results to projects with the assigned topic given by the topic ID type: integer format: int32 required: false - in: query name: updated_before description: 'Return projects updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: updated_after description: 'Return projects updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' type: string format: date-time required: false - in: query name: include_pending_delete description: Include projects in pending delete state. Can only be set by admins type: boolean required: false - in: query name: marked_for_deletion_on description: Date when the project was marked for deletion type: string format: date required: false - in: query name: active description: Limit by projects that are not archived and not marked for deletion type: boolean required: false - in: query name: wiki_checksum_failed description: Limit by projects where wiki checksum is failed type: boolean default: false required: false - in: query name: repository_checksum_failed description: Limit by projects where repository checksum is failed type: boolean default: false required: false - in: query name: include_hidden description: Include hidden projects. Can only be set by admins type: boolean default: false required: false - in: query name: page description: Current page number type: integer format: int32 default: 1 required: false example: 1 - in: query name: per_page description: Number of items per page type: integer format: int32 default: 20 required: false example: 20 - in: query name: simple description: Return only the ID, URL, name, and path of each project type: boolean default: false required: false - in: query name: statistics description: Include project statistics type: boolean default: false required: false responses: '200': description: Get projects starred by a user schema: type: array items: $ref: '#/definitions/API_Entities_BasicProjectDetails' '404': description: 404 User Not Found tags: - projects operationId: getApiV4UsersUserIdStarredProjects definitions: API_Entities_Terraform_StateProtectionRule: type: object properties: id: type: integer format: int32 example: 1 project_id: type: integer format: int32 example: 1 state_name: type: string example: production minimum_access_level_for_write: type: string example: maintainer allowed_from: type: string example: ci_only required: - id - project_id - state_name - minimum_access_level_for_write - allowed_from description: API_Entities_Terraform_StateProtectionRule model API_Entities_CustomAttribute: type: object properties: key: type: string example: foo value: type: string example: bar required: - key - value description: API_Entities_CustomAttribute model postApiV4ProjectsIdPackagesProtectionRules: type: object properties: package_name_pattern: type: string description: "Package name protected by the rule. For example @my-scope/my-package-*.\n Wildcard character * allowed." package_type: type: string description: Package type protected by the rule. For example npm. enum: - cargo - conan - generic - helm - maven - npm - nuget - pypi - terraform_module minimum_access_level_for_delete: type: string description: Minimum GitLab access level required to delete a package. Valid values include `null`, `owner` or `admin`. If the value is `null`, the default minimum access level is `maintainer`. Must be provided when `minimum_access_level_for_push` is not set. Behind a feature flag named `packages_protected_packages_delete`. Disabled by default. enum: - owner - admin minimum_access_level_for_push: type: string description: Minimum GitLab access level required to push a package. Valid values include `null`, `maintainer`, `owner` or `admin`. If the value is `null`, the default minimum access level is `developer`. Must be provided when `minimum_access_level_for_delete` is not set. enum: - maintainer - owner - admin required: - package_name_pattern - package_type description: Create a package protection rule for a project API_Entities_Iteration: type: object properties: id: type: integer format: int32 example: 1 iid: type: integer format: int32 example: 1 sequence: type: integer format: int32 example: 1 group_id: type: integer format: int32 example: 1 title: type: string example: Iteration I description: type: string example: Iteration description state: type: integer format: int32 example: 1 created_at: type: string format: date-time example: '2022-01-31T15:10:45.080Z' updated_at: type: string format: date-time example: '2022-01-31T15:10:45.080Z' start_date: type: string format: date example: '2022-01-01' due_date: type: string format: date example: '2022-01-31' web_url: type: string example: https://gitlab.example.com/groups/gitlab-org/-/iterations/1 required: - id - iid - sequence - group_id - title - description - state - created_at - updated_at - start_date - due_date - web_url API_Entities_Ci_Runner: type: object properties: id: type: integer format: int32 example: 8 description: type: string example: test-1-20150125 ip_address: type: string example: 127.0.0.1 active: type: boolean example: true paused: type: boolean example: false is_shared: type: boolean example: true runner_type: type: string enum: - instance_type - group_type - project_type example: instance_type name: type: string example: test online: type: boolean example: true created_by: $ref: '#/definitions/API_Entities_UserBasic' created_at: type: string format: date-time example: '2025-05-03T00:00:00.000Z' status: type: string example: online job_execution_status: type: string enum: - active - idle example: idle required: - id - description - ip_address - active - paused - is_shared - runner_type - name - online - created_at - status - job_execution_status description: API_Entities_Ci_Runner model API_Entities_Projects_ContainerRegistry_Protection_TagRule: type: object properties: id: type: integer format: int32 example: 1 project_id: type: integer format: int32 example: 123 tag_name_pattern: type: string example: v*-release minimum_access_level_for_push: type: string example: maintainer minimum_access_level_for_delete: type: string example: maintainer required: - id - project_id - tag_name_pattern - minimum_access_level_for_push - minimum_access_level_for_delete description: API_Entities_Projects_ContainerRegistry_Protection_TagRule model postApiV4ProjectsIdFork: type: object properties: namespace: type: string description: (deprecated) The ID or name of the namespace that the project will be forked into example: gitlab namespace_id: type: integer format: int32 description: The ID of the namespace that the project will be forked into example: 1 namespace_path: type: string description: The path of the namespace that the project will be forked into example: new_path/gitlab path: type: string description: The path that will be assigned to the fork example: fork name: type: string description: The name that will be assigned to the fork example: Fork description: type: string description: The description that will be assigned to the fork example: Description visibility: type: string description: The visibility of the fork enum: - private - internal - public mr_default_target_self: type: boolean description: Merge requests of this forked project targets itself by default branches: type: string description: Branches to fork description: Fork new project for the current user or provided namespace. putApiV4ProjectsIdTransfer: type: object properties: namespace: type: string description: The ID or path of the new namespace example: gitlab required: - namespace description: Transfer a project to a new namespace postApiV4ProjectsIdIssues: type: object properties: title: type: string description: The title of an issue created_at: type: string format: date-time description: Date time when the issue was created. Available only for admins and project owners. merge_request_to_resolve_discussions_of: type: integer format: int32 description: The IID of a merge request for which to resolve discussions discussion_to_resolve: type: string description: The ID of a discussion to resolve, also pass `merge_request_to_resolve_discussions_of` iid: type: integer format: int32 description: The internal ID of a project issue. Available only for admins and project owners. description: type: string description: The description of an issue assignee_ids: type: array description: The array of user IDs to assign issue items: type: integer format: int32 assignee_id: type: integer format: int32 description: '[Deprecated] The ID of a user to assign issue' milestone_id: type: integer format: int32 description: The ID of a milestone to assign issue labels: type: array description: Comma-separated list of label names items: type: string add_labels: type: array description: Comma-separated list of label names items: type: string remove_labels: type: array description: Comma-separated list of label names items: type: string due_date: type: string description: Date string in the format YEAR-MONTH-DAY confidential: type: boolean description: Boolean parameter if the issue should be confidential discussion_locked: type: boolean description: ' Boolean parameter indicating if the issue''s discussion is locked' issue_type: type: string description: 'The type of the issue. Accepts: issue, incident, test_case, requirement, task, ticket' enum: - issue - incident - test_case - requirement - task - ticket weight: type: integer format: int32 description: The weight of the issue epic_id: type: integer format: int32 description: The ID of an epic to associate the issue with epic_iid: type: integer format: int32 description: The IID of an epic to associate the issue with (deprecated) required: - title description: Create a new project issue API_Entities_UserBasic: type: object properties: id: type: integer format: int32 example: 1 username: type: string example: admin public_email: type: string example: john@example.com name: type: string example: Administrator state: type: string example: active locked: type: boolean avatar_url: type: string example: https://gravatar.com/avatar/1 avatar_path: type: string example: /user/avatar/28/The-Big-Lebowski-400-400.png custom_attributes: type: array items: $ref: '#/definitions/API_Entities_CustomAttribute' web_url: type: string example: https://gitlab.example.com/root required: - id - username - public_email - name - state - locked - avatar_url - web_url description: API_Entities_UserBasic model API_Entities_IssuableTimeStats: type: object properties: time_estimate: type: integer format: int32 example: 12600 total_time_spent: type: integer format: int32 example: 3600 human_time_estimate: type: string example: 3h 30m human_total_time_spent: type: string example: 1h required: - time_estimate - total_time_spent - human_time_estimate - human_total_time_spent description: API_Entities_IssuableTimeStats model API_Entities_Issue: type: object properties: id: type: integer format: int32 example: 84 iid: type: integer format: int32 example: 14 project_id: type: integer format: int32 example: 4 title: type: string example: Impedit et ut et dolores vero provident ullam est description: type: string example: Repellendus impedit et vel velit dignissimos. state: type: string example: closed created_at: type: string format: date-time example: '2022-08-17T12:46:35.053Z' updated_at: type: string format: date-time example: '2022-11-14T17:22:01.470Z' closed_at: type: string format: date-time example: '2022-11-15T08:30:55.232Z' closed_by: $ref: '#/definitions/API_Entities_UserBasic' labels: type: array items: type: string example: - bug milestone: $ref: '#/definitions/API_Entities_Milestone' assignees: $ref: '#/definitions/API_Entities_UserBasic' author: $ref: '#/definitions/API_Entities_UserBasic' type: type: string example: ISSUE description: One of ["ISSUE", "INCIDENT", "TEST_CASE", "REQUIREMENT", "TASK", "TICKET"] assignee: $ref: '#/definitions/API_Entities_UserBasic' user_notes_count: type: integer format: int32 merge_requests_count: type: integer format: int32 upvotes: type: integer format: int32 downvotes: type: integer format: int32 start_date: type: string format: date example: '2022-11-18' due_date: type: string format: date example: '2022-11-20' confidential: type: boolean discussion_locked: type: boolean issue_type: type: string example: issue web_url: type: string example: http://example.com/example/example/issues/14 time_stats: $ref: '#/definitions/API_Entities_IssuableTimeStats' task_completion_status: $ref: '#/definitions/API_Entities_TaskCompletionStatus' weight: type: integer format: int32 example: 5 blocking_issues_count: type: integer format: int32 example: 2 has_tasks: type: boolean example: true task_status: type: string example: 2 of 4 tasks completed _links: type: object properties: self: type: string example: http://example.com/api/v4/projects/1/issues/2 notes: type: string example: http://example.com/api/v4/projects/1/issues/2/notes award_emoji: type: string example: http://example.com/api/v4/projects/1/issues/2/award_emoji project: type: string example: http://example.com/api/v4/projects/1 closed_as_duplicate_of: type: string example: http://example.com/api/v4/projects/1/issues/75 required: - self - notes - award_emoji - project - closed_as_duplicate_of references: $ref: '#/definitions/API_Entities_IssuableReferences' severity: type: string description: One of ["UNKNOWN", "LOW", "MEDIUM", "HIGH", "CRITICAL"] subscribed: type: boolean example: false moved_to_id: type: integer format: int32 example: 1 imported: type: boolean example: false imported_from: type: string example: github service_desk_reply_to: type: string example: user@example.com epic_iid: type: string epic: $ref: '#/definitions/EpicBaseEntity' iteration: $ref: '#/definitions/API_Entities_Iteration' health_status: type: string required: - id - iid - project_id - title - description - state - created_at - updated_at - closed_at - closed_by - labels - milestone - assignees - author - type - assignee - user_notes_count - merge_requests_count - upvotes - downvotes - start_date - due_date - confidential - discussion_locked - issue_type - web_url - time_stats - task_completion_status - blocking_issues_count - has_tasks - _links - references - severity - moved_to_id - imported - imported_from - service_desk_reply_to description: API_Entities_Issue model API_Entities_Group: type: object properties: id: type: integer format: int32 web_url: type: string example: http://gitlab.example.com/groups/diaspora name: type: string example: Diaspora path: type: string description: type: string visibility: type: string share_with_group_lock: type: boolean require_two_factor_authentication: type: boolean two_factor_grace_period: type: integer format: int32 project_creation_level: type: string auto_devops_enabled: type: string subgroup_creation_level: type: string emails_disabled: type: boolean emails_enabled: type: boolean show_diff_preview_in_email: type: boolean mentions_disabled: type: string lfs_enabled: type: boolean archived: type: boolean math_rendering_limits_enabled: type: boolean lock_math_rendering_limits_enabled: type: boolean default_branch: type: string default_branch_protection: type: integer format: int32 default_branch_protection_defaults: type: string avatar_url: type: string request_access_enabled: type: boolean full_name: type: string full_path: type: string created_at: type: string parent_id: type: string organization_id: type: integer format: int32 shared_runners_setting: type: string max_artifacts_size: type: integer format: int32 custom_attributes: $ref: '#/definitions/API_Entities_CustomAttribute' statistics: type: object properties: storage_size: type: string repository_size: type: string wiki_size: type: string lfs_objects_size: type: string job_artifacts_size: type: string pipeline_artifacts_size: type: string packages_size: type: string snippets_size: type: string uploads_size: type: string required: - storage_size - repository_size - wiki_size - lfs_objects_size - job_artifacts_size - pipeline_artifacts_size - packages_size - snippets_size - uploads_size marked_for_deletion_on: type: string root_storage_statistics: $ref: '#/definitions/API_Entities_Namespace_RootStorageStatistics' ldap_cn: type: string ldap_access: type: string ldap_group_links: $ref: '#/definitions/API_Entities_LdapGroupLink' saml_group_links: $ref: '#/definitions/API_Entities_SamlGroupLink' file_template_project_id: type: string wiki_access_level: type: string repository_storage: type: string duo_core_features_enabled: type: boolean description: '[Experimental] Indicates whether GitLab Duo Core features are enabled for the group' duo_features_enabled: type: string lock_duo_features_enabled: type: string auto_duo_code_review_enabled: type: string web_based_commit_signing_enabled: type: string allow_personal_snippets: type: string duo_namespace_access_rules: type: string required: - id - web_url - name - path - description - visibility - share_with_group_lock - require_two_factor_authentication - two_factor_grace_period - project_creation_level - auto_devops_enabled - subgroup_creation_level - emails_disabled - emails_enabled - show_diff_preview_in_email - mentions_disabled - lfs_enabled - archived - math_rendering_limits_enabled - lock_math_rendering_limits_enabled - default_branch - default_branch_protection - default_branch_protection_defaults - avatar_url - request_access_enabled - full_name - full_path - created_at - parent_id - organization_id - shared_runners_setting - max_artifacts_size - marked_for_deletion_on - ldap_cn - ldap_access - wiki_access_level description: API_Entities_Group model postApiV4ProjectsIdHousekeeping: type: object properties: task: type: string description: '`prune` to trigger manual prune of unreachable objects or `eager` to trigger eager housekeeping.' enum: - eager - prune default: eager description: Start the housekeeping task for a project postApiV4ProjectsIdRegistryProtectionTagRules: type: object properties: tag_name_pattern: type: string description: Container tag name pattern protected by the protection rule. For example, `v*-release`. Wildcard character `*` allowed. minimum_access_level_for_push: type: string description: Minimum GitLab access level required to push container tags. For example, Maintainer, Owner, or Admin. enum: - maintainer - owner - admin minimum_access_level_for_delete: type: string description: Minimum GitLab access level required to delete container tags. For example, Maintainer, Owner, or Admin. enum: - maintainer - owner - admin required: - tag_name_pattern - minimum_access_level_for_push - minimum_access_level_for_delete description: Create a container protection tag rule for a project. 5 rule limit per project. API_Entities_MarkdownUploadAdmin: type: object properties: id: type: integer format: int32 example: 1 size: type: integer format: int32 example: 1024 filename: type: string example: image.png created_at: type: string format: date-time example: '2012-06-28T10:52:04Z' uploaded_by: $ref: '#/definitions/API_Entities_UserSafe' required: - id - size - filename - created_at - uploaded_by description: API_Entities_MarkdownUploadAdmin model API_Entities_AuditEvent: type: object properties: id: type: string author_id: type: string entity_id: type: string entity_type: type: string event_name: type: string details: type: string created_at: type: string required: - id - author_id - entity_id - entity_type - event_name - details - created_at description: API_Entities_AuditEvent model API_Entities_Projects_Packages_Protection_Rule: type: object properties: id: type: integer format: int32 example: 1 project_id: type: integer format: int32 example: 1 package_name_pattern: type: string example: flightjs/flight package_type: type: string example: npm minimum_access_level_for_delete: type: string example: owner minimum_access_level_for_push: type: string example: maintainer required: - id - project_id - package_name_pattern - package_type - minimum_access_level_for_delete - minimum_access_level_for_push description: API_Entities_Projects_Packages_Protection_Rule model API_Entities_Namespace_RootStorageStatistics: type: object properties: build_artifacts_size: type: integer format: int32 description: CI artifacts size in bytes. container_registry_size: type: integer format: int32 description: container registry size in bytes. container_registry_size_is_estimated: type: boolean description: Indicates whether the deduplicated container registry size for the namespace is an estimated value or not. dependency_proxy_size: type: integer format: int32 description: Dependency Proxy sizes in bytes. lfs_objects_size: type: integer format: int32 description: LFS objects size in bytes. packages_size: type: integer format: int32 description: Packages size in bytes. pipeline_artifacts_size: type: integer format: int32 description: CI pipeline artifacts size in bytes. repository_size: type: integer format: int32 description: Git repository size in bytes. snippets_size: type: integer format: int32 description: Snippets size in bytes. storage_size: type: integer format: int32 description: Total storage in bytes. uploads_size: type: integer format: int32 description: Uploads size in bytes. wiki_size: type: integer format: int32 description: Wiki size in bytes. required: - build_artifacts_size - container_registry_size - container_registry_size_is_estimated - dependency_proxy_size - lfs_objects_size - packages_size - pipeline_artifacts_size - repository_size - snippets_size - storage_size - uploads_size - wiki_size API_Entities_Milestone: type: object properties: id: type: integer format: int32 iid: type: integer format: int32 project_id: type: integer format: int32 group_id: type: string title: type: string description: type: string state: type: string created_at: type: string updated_at: type: string due_date: type: string start_date: type: string expired: type: boolean web_url: type: string required: - id - iid - title - description - state - created_at - updated_at - due_date - start_date - expired - web_url postApiV4Projects: type: object properties: name: type: string description: The name of the project example: New Project path: type: string description: The path of the repository example: new_project default_branch: type: string description: The default branch of the project example: main description: type: string description: The description of the project build_git_strategy: type: string description: The Git strategy. Defaults to `fetch` enum: - fetch - clone build_timeout: type: integer format: int32 description: Build timeout auto_cancel_pending_pipelines: type: string description: Auto-cancel pending pipelines enum: - disabled - enabled ci_config_path: type: string description: The path to CI config file. Defaults to `.gitlab-ci.yml` service_desk_enabled: type: boolean description: Disable or enable the service desk issues_enabled: type: boolean description: Flag indication if the issue tracker is enabled merge_requests_enabled: type: boolean description: Flag indication if merge requests are enabled wiki_enabled: type: boolean description: Flag indication if the wiki is enabled jobs_enabled: type: boolean description: Flag indication if jobs are enabled snippets_enabled: type: boolean description: Flag indication if snippets are enabled issues_access_level: type: string description: Issues access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled repository_access_level: type: string description: Repository access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled merge_requests_access_level: type: string description: Merge requests access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled forking_access_level: type: string description: Forks access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled wiki_access_level: type: string description: Wiki access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled builds_access_level: type: string description: Builds access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled snippets_access_level: type: string description: Snippets access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled package_registry_access_level: type: string description: Controls visibility of the package registry. One of `disabled`, `private`, `enabled` or `public`. `private` will make the package registry accessible only to project members (reporter role and above). `enabled` will make the package registry accessible to everyone who has access to the project. `public` will make the package registry accessible to everyone. `disabled` will disable the package registry enum: - disabled - private - enabled - public pages_access_level: type: string description: Pages access level. One of `disabled`, `private`, `enabled` or `public` enum: - disabled - private - enabled - public analytics_access_level: type: string description: Analytics access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled container_registry_access_level: type: string description: Controls visibility of the container registry. One of `disabled`, `private` or `enabled`. `private` will make the container registry accessible only to project members (reporter role and above). `enabled` will make the container registry accessible to everyone who has access to the project. `disabled` will disable the container registry enum: - disabled - private - enabled security_and_compliance_access_level: type: string description: Security and compliance access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled releases_access_level: type: string description: Releases access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled environments_access_level: type: string description: Environments access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled feature_flags_access_level: type: string description: Feature flags access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled infrastructure_access_level: type: string description: Infrastructure access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled monitor_access_level: type: string description: Monitor access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled model_experiments_access_level: type: string description: Model experiments access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled model_registry_access_level: type: string description: Model registry access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled emails_disabled: type: boolean description: 'Deprecated: Use emails_enabled instead.' emails_enabled: type: boolean description: Enable email notifications show_default_award_emojis: type: boolean description: Show default award emojis show_diff_preview_in_email: type: boolean description: Include the code diff preview in merge request notification emails warn_about_potentially_unwanted_characters: type: boolean description: Warn about potentially unwanted characters enforce_auth_checks_on_uploads: type: boolean description: Enforce auth check on uploads shared_runners_enabled: type: boolean description: Flag indication if shared runners are enabled for that project group_runners_enabled: type: boolean description: Flag indication if group runners are enabled for that project resource_group_default_process_mode: type: string description: The process mode of the resource group enum: - unordered - oldest_first - newest_first - newest_ready_first resolve_outdated_diff_discussions: type: boolean description: Automatically resolve merge request diff threads on lines changed with a push remove_source_branch_after_merge: type: boolean description: Remove the source branch by default after merge packages_enabled: type: boolean description: 'Deprecated: Use :package_registry_access_level instead. Enable project packages feature' container_registry_enabled: type: boolean description: 'Deprecated: Use :container_registry_access_level instead. Flag indication if the container registry is enabled for that project' container_expiration_policy_attributes: type: object description: Object that contains information on the container expiration policy properties: cadence: type: string description: Container expiration policy cadence for recurring job keep_n: type: integer format: int32 description: Container expiration policy number of images to keep older_than: type: string description: Container expiration policy remove images older than value name_regex: type: string description: Container expiration policy regex for image removal name_regex_keep: type: string description: Container expiration policy regex for image retention enabled: type: boolean description: Flag indication if container expiration policy is enabled lfs_enabled: type: boolean description: Flag indication if Git LFS is enabled for that project visibility: type: string description: The visibility of the project. enum: - private - internal - public public_builds: type: boolean description: 'Deprecated: Use public_jobs instead.' public_jobs: type: boolean description: Perform public builds request_access_enabled: type: boolean description: Allow users to request member access only_allow_merge_if_pipeline_succeeds: type: boolean description: Only allow to merge if builds succeed allow_merge_on_skipped_pipeline: type: boolean description: Allow to merge if pipeline is skipped only_allow_merge_if_all_discussions_are_resolved: type: boolean description: Only allow to merge if all threads are resolved tag_list: type: array description: 'Deprecated: Use :topics instead' items: type: string topics: type: array description: The list of topics for a project items: type: string avatar: type: file description: Avatar image for project printing_merge_request_link_enabled: type: boolean description: Show link to create/view merge request when pushing from the command line merge_method: type: string description: The merge method used when merging merge requests enum: - ff - rebase_merge - merge suggestion_commit_message: type: string description: The commit message used to apply merge request suggestions merge_commit_template: type: string description: Template used to create merge commit message squash_commit_template: type: string description: Template used to create squash commit message issue_branch_template: type: string description: Template used to create a branch from an issue auto_devops_enabled: type: boolean description: Flag indication if Auto DevOps is enabled auto_devops_deploy_strategy: type: string description: Auto Deploy strategy enum: - continuous - manual - timed_incremental autoclose_referenced_issues: type: boolean description: Flag indication if referenced issues auto-closing is enabled repository_storage: type: string description: Which storage shard the repository is on. Available only to admins squash_option: type: string description: Squash default for project. One of `never`, `always`, `default_on`, or `default_off`. enum: - never - always - default_on - default_off mr_default_target_self: type: boolean description: Merge requests of this forked project targets itself by default mr_default_title_template: type: string description: Template used to generate the default merge request title. Maximum 100 characters. only_allow_merge_if_all_status_checks_passed: type: boolean description: Blocks merge requests from merging unless all status checks have passed approvals_before_merge: type: integer format: int32 description: How many approvers should approve merge request by default mirror: type: boolean description: '[Deprecated] Enables pull mirroring in a project' mirror_trigger_builds: type: boolean description: '[Deprecated] Pull mirroring triggers builds' external_authorization_classification_label: type: string description: The classification label for the project requirements_access_level: type: string description: Requirements feature access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled prevent_merge_without_jira_issue: type: boolean description: Require an associated issue from Jira auto_duo_code_review_enabled: type: boolean description: Enable automatic reviews by GitLab Duo on merge requests duo_remote_flows_enabled: type: boolean description: Enable GitLab Duo remote flows for this project duo_sast_fp_detection_enabled: type: boolean description: Enable GitLab Duo SAST false positive detection for this project duo_secret_detection_fp_enabled: type: boolean description: Enable GitLab Duo Secret Detection false positive detection for this project duo_sast_vr_workflow_enabled: type: boolean description: Enable GitLab Duo SAST vulnerability resolution workflow for this project spp_repository_pipeline_access: type: boolean description: Grant read-only access to security policy configurations for enforcement in linked CI/CD projects merge_request_title_regex: type: string description: The regex the Merge Request must adhere to merge_request_title_regex_description: type: string description: The description for the regex the Merge Request must adhere to repository_object_format: type: string description: The object format of the project repository enum: - sha1 - sha256 initialize_with_readme: type: boolean description: Initialize a project with a README.md use_custom_template: type: boolean description: Use custom template group_with_project_templates_id: type: integer format: int32 description: Group ID that serves as the template source namespace_id: type: integer format: int32 description: Namespace ID for the new project. Default to the user namespace. import_url: type: string description: URL from which the project is imported template_name: type: string description: Name of template from which to create project template_project_id: type: integer format: int32 description: Project ID of template from which to create project description: Create new project putApiV4ProjectsIdIssuesIssueIidReorder: type: object properties: move_after_id: type: integer format: int32 description: The ID of the issue we want to be after move_before_id: type: integer format: int32 description: The ID of the issue we want to be before description: Reorder an existing issue patchApiV4ProjectsIdRegistryProtectionTagRulesProtectionRuleId: type: object properties: tag_name_pattern: type: string description: Container tag name pattern protected by the protection rule. For example, `v*-release`. Wildcard character `*` allowed. minimum_access_level_for_push: type: string description: Minimum GitLab access level required to push container tags. For example, Maintainer, Owner, or Admin. To unset the value, use an empty string (`""`). enum: - maintainer - owner - admin - '' minimum_access_level_for_delete: type: string description: Minimum GitLab access level required to delete container tags. For example, Maintainer, Owner, or Admin. To unset the value, use an empty string (`""`). enum: - maintainer - owner - admin - '' description: Update a container protection tag rule for a project. postApiV4ProjectsIdUploads: type: object properties: file: type: file description: The attachment file to be uploaded required: - file description: Upload a file postApiV4ProjectsIdRunners: type: object properties: runner_id: type: integer format: int32 description: The ID of a runner required: - runner_id description: Assign a runner to project patchApiV4ProjectsIdRegistryProtectionRepositoryRulesProtectionRuleId: type: object properties: repository_path_pattern: type: string description: "Container repository path pattern protected by the protection rule.\n For example `flight/flight-*`. Wildcard character `*` allowed." minimum_access_level_for_push: type: string description: "Minimum GitLab access level to allow to push container images to the container registry.\n For example maintainer, owner or admin. To unset the value, use an empty string `\"\"`." enum: - maintainer - owner - admin - '' minimum_access_level_for_delete: type: string description: "Minimum GitLab access level to allow to delete container images in the container registry.\n For example maintainer, owner or admin. To unset the value, use an empty string `\"\"`." enum: - maintainer - owner - admin - '' description: Update a container protection rule for a project API_Entities_ProjectUpload: type: object properties: id: type: integer format: int32 example: 1 alt: type: string example: filename url: type: string example: /uploads/secret/filename full_path: type: string example: /-/project/1/uploads/secret/filename markdown: type: string example: '[filename](/uploads/secret/filename)' required: - id - alt - url - full_path - markdown description: API_Entities_ProjectUpload model API_Entities_Project: type: object properties: id: type: integer format: int32 example: 1 description: type: string example: desc name: type: string example: project1 name_with_namespace: type: string example: John Doe / project1 path: type: string example: project1 path_with_namespace: type: string example: namespace1/project1 created_at: type: string format: date-time example: '2020-05-07T04:27:17.016Z' default_branch: type: string example: main tag_list: type: array items: type: string example: - tag topics: type: array items: type: string example: - topic ssh_url_to_repo: type: string example: git@gitlab.example.com:gitlab/gitlab.git http_url_to_repo: type: string example: https://gitlab.example.com/gitlab/gitlab.git web_url: type: string example: https://gitlab.example.com/gitlab/gitlab readme_url: type: string example: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md forks_count: type: integer format: int32 example: 1 license_url: type: string example: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE license: $ref: '#/definitions/API_Entities_LicenseBasic' avatar_url: type: string example: http://example.com/uploads/project/avatar/3/uploads/avatar.png star_count: type: integer format: int32 example: 1 last_activity_at: type: string format: date-time example: '2013-09-30T13:46:02Z' visibility: type: string example: public namespace: $ref: '#/definitions/API_Entities_NamespaceBasic' custom_attributes: $ref: '#/definitions/API_Entities_CustomAttribute' repository_storage: type: string example: default forked_from_project: $ref: '#/definitions/API_Entities_BasicProjectDetails' container_registry_image_prefix: type: string example: registry.gitlab.example.com/gitlab/gitlab-client _links: type: object properties: self: type: string example: https://gitlab.example.com/api/v4/projects/4 issues: type: string example: https://gitlab.example.com/api/v4/projects/4/issues merge_requests: type: string example: https://gitlab.example.com/api/v4/projects/4/merge_requests repo_branches: type: string example: https://gitlab.example.com/api/v4/projects/4/repository/branches labels: type: string example: https://gitlab.example.com/api/v4/projects/4/labels events: type: string example: https://gitlab.example.com/api/v4/projects/4/events members: type: string example: https://gitlab.example.com/api/v4/projects/4/members cluster_agents: type: string example: https://gitlab.example.com/api/v4/projects/4/cluster_agents required: - self - repo_branches - labels - events - members - cluster_agents marked_for_deletion_at: type: string format: date-time example: '2020-05-07T04:27:17.016Z' marked_for_deletion_on: type: string format: date-time example: '2020-05-07T04:27:17.016Z' packages_enabled: type: boolean empty_repo: type: boolean archived: type: boolean owner: $ref: '#/definitions/API_Entities_UserBasic' resolve_outdated_diff_discussions: type: boolean container_expiration_policy: $ref: '#/definitions/API_Entities_ContainerExpirationPolicy' repository_object_format: type: string example: sha1 issues_enabled: type: boolean merge_requests_enabled: type: boolean wiki_enabled: type: boolean jobs_enabled: type: boolean snippets_enabled: type: boolean container_registry_enabled: type: boolean service_desk_enabled: type: boolean service_desk_address: type: string example: address@example.com can_create_merge_request_in: type: boolean issues_access_level: type: string example: enabled repository_access_level: type: string example: enabled merge_requests_access_level: type: string example: enabled forking_access_level: type: string example: enabled wiki_access_level: type: string example: enabled builds_access_level: type: string example: enabled snippets_access_level: type: string example: enabled pages_access_level: type: string example: enabled analytics_access_level: type: string example: enabled container_registry_access_level: type: string example: enabled security_and_compliance_access_level: type: string example: enabled releases_access_level: type: string example: enabled environments_access_level: type: string example: enabled feature_flags_access_level: type: string example: enabled infrastructure_access_level: type: string example: enabled monitor_access_level: type: string example: enabled model_experiments_access_level: type: string example: enabled model_registry_access_level: type: string example: enabled package_registry_access_level: type: string example: enabled emails_disabled: type: boolean emails_enabled: type: boolean show_diff_preview_in_email: type: boolean shared_runners_enabled: type: boolean lfs_enabled: type: boolean creator_id: type: integer format: int32 example: 1 mr_default_target_self: type: boolean import_url: type: string example: https://gitlab.com/gitlab/gitlab.git import_type: type: string example: git import_status: type: string example: none import_error: type: string example: Import error open_issues_count: type: integer format: int32 example: 1 description_html: type: string updated_at: type: string format: date-time example: '2020-05-07T04:27:17.016Z' ci_default_git_depth: type: integer format: int32 example: 20 ci_delete_pipelines_in_seconds: type: integer format: int32 example: 86400 ci_forward_deployment_enabled: type: boolean ci_forward_deployment_rollback_allowed: type: boolean ci_job_token_scope_enabled: type: boolean ci_separated_caches: type: boolean ci_allow_fork_pipelines_to_run_in_parent_project: type: boolean ci_id_token_sub_claim_components: type: array items: type: string build_git_strategy: type: string example: fetch keep_latest_artifact: type: boolean restrict_user_defined_variables: type: boolean ci_pipeline_variables_minimum_override_role: type: string runner_token_expiration_interval: type: integer format: int32 example: 3600 group_runners_enabled: type: boolean resource_group_default_process_mode: type: string example: unordered auto_cancel_pending_pipelines: type: string example: enabled build_timeout: type: integer format: int32 example: 3600 auto_devops_enabled: type: boolean auto_devops_deploy_strategy: type: string example: continuous ci_push_repository_for_job_token_allowed: type: boolean protect_merge_request_pipelines: type: boolean ci_display_pipeline_variables: type: boolean runners_token: type: string example: b8547b1dc37721d05889db52fa2f02 ci_config_path: type: string example: '' public_jobs: type: boolean shared_with_groups: type: array items: type: object only_allow_merge_if_pipeline_succeeds: type: boolean allow_merge_on_skipped_pipeline: type: boolean request_access_enabled: type: boolean only_allow_merge_if_all_discussions_are_resolved: type: boolean remove_source_branch_after_merge: type: boolean printing_merge_request_link_enabled: type: boolean merge_method: type: string example: merge squash_option: type: string example: default_off enforce_auth_checks_on_uploads: type: boolean suggestion_commit_message: type: string example: Suggestion message merge_commit_template: type: string example: '%(title)' squash_commit_template: type: string example: '%(source_branch)' mr_default_title_template: type: string example: '%(source_branch)' issue_branch_template: type: string example: '%(title)' statistics: $ref: '#/definitions/API_Entities_ProjectStatistics' warn_about_potentially_unwanted_characters: type: boolean autoclose_referenced_issues: type: boolean max_artifacts_size: type: integer format: int32 approvals_before_merge: type: string mirror: type: string mirror_user_id: type: string mirror_trigger_builds: type: string only_mirror_protected_branches: type: string mirror_overwrites_diverged_branches: type: string external_authorization_classification_label: type: string requirements_enabled: type: string requirements_access_level: type: string security_and_compliance_enabled: type: string secret_push_protection_enabled: type: boolean pre_receive_secret_detection_enabled: type: boolean compliance_frameworks: type: string issues_template: type: string merge_requests_template: type: string ci_restrict_pipeline_cancellation_role: type: string merge_pipelines_enabled: type: string merge_trains_enabled: type: string merge_trains_skip_train_allowed: type: string max_pipelines_per_merge_train: type: string only_allow_merge_if_all_status_checks_passed: type: string allow_pipeline_trigger_approve_deployment: type: boolean prevent_merge_without_jira_issue: type: string auto_duo_code_review_enabled: type: string duo_remote_flows_enabled: type: string duo_foundational_flows_enabled: type: string duo_sast_fp_detection_enabled: type: string duo_secret_detection_fp_enabled: type: string duo_sast_vr_workflow_enabled: type: string web_based_commit_signing_enabled: type: string spp_repository_pipeline_access: type: boolean description: The spp_repository_pipeline_access setting is only visible if the security_orchestration_policies feature is available. security_policy_pipeline_must_succeed: type: boolean description: Require all security policy pipelines to succeed before merge requests can be merged. merge_request_title_regex: type: string example: /Title of merge request/ merge_request_title_regex_description: type: string example: This requires the title to include a Jira label required: - id - description - name - name_with_namespace - path - path_with_namespace - created_at - tag_list - topics - ssh_url_to_repo - http_url_to_repo - web_url - avatar_url - star_count - last_activity_at - visibility - namespace - _links - marked_for_deletion_at - marked_for_deletion_on - packages_enabled - empty_repo - archived - resolve_outdated_diff_discussions - repository_object_format - issues_enabled - merge_requests_enabled - wiki_enabled - jobs_enabled - snippets_enabled - container_registry_enabled - service_desk_enabled - can_create_merge_request_in - issues_access_level - repository_access_level - merge_requests_access_level - forking_access_level - wiki_access_level - builds_access_level - snippets_access_level - pages_access_level - analytics_access_level - container_registry_access_level - security_and_compliance_access_level - releases_access_level - environments_access_level - feature_flags_access_level - infrastructure_access_level - monitor_access_level - model_experiments_access_level - model_registry_access_level - package_registry_access_level - emails_disabled - emails_enabled - show_diff_preview_in_email - shared_runners_enabled - lfs_enabled - creator_id - import_status - description_html - updated_at - public_jobs - shared_with_groups - only_allow_merge_if_pipeline_succeeds - allow_merge_on_skipped_pipeline - request_access_enabled - only_allow_merge_if_all_discussions_are_resolved - remove_source_branch_after_merge - printing_merge_request_link_enabled - merge_method - squash_option - enforce_auth_checks_on_uploads - suggestion_commit_message - merge_commit_template - squash_commit_template - issue_branch_template - warn_about_potentially_unwanted_characters - autoclose_referenced_issues - max_artifacts_size - requirements_enabled - requirements_access_level - security_and_compliance_enabled - compliance_frameworks description: API_Entities_Project model postApiV4ProjectsIdIssuesIssueIidMove: type: object properties: to_project_id: type: integer format: int32 description: The ID of the new project required: - to_project_id description: Move an existing issue API_Entities_NamespaceBasic: type: object properties: id: type: integer format: int32 example: 2 name: type: string example: project path: type: string example: my_project kind: type: string example: project full_path: type: string example: group/my_project parent_id: type: integer format: int32 example: 1 avatar_url: type: string example: https://example.com/avatar/12345 web_url: type: string example: https://example.com/group/my_project required: - id - name - path - kind - full_path - parent_id - avatar_url - web_url API_Entities_MergeRequestBasic: type: object properties: id: type: integer format: int32 example: 84 iid: type: integer format: int32 example: 14 project_id: type: integer format: int32 example: 4 title: type: string example: Impedit et ut et dolores vero provident ullam est description: type: string example: Repellendus impedit et vel velit dignissimos. state: type: string example: closed created_at: type: string format: date-time example: '2022-08-17T12:46:35.053Z' updated_at: type: string format: date-time example: '2022-11-14T17:22:01.470Z' merged_by: $ref: '#/definitions/API_Entities_UserBasic' merge_user: $ref: '#/definitions/API_Entities_UserBasic' merged_at: type: string format: date-time example: '2022-01-31T15:10:45.080Z' closed_by: $ref: '#/definitions/API_Entities_UserBasic' closed_at: type: string format: date-time example: '2022-01-31T15:10:45.080Z' title_html: type: string description_html: type: string target_branch: type: string source_branch: type: string user_notes_count: type: integer format: int32 upvotes: type: integer format: int32 downvotes: type: integer format: int32 author: $ref: '#/definitions/API_Entities_UserBasic' assignees: $ref: '#/definitions/API_Entities_UserBasic' assignee: $ref: '#/definitions/API_Entities_UserBasic' reviewers: $ref: '#/definitions/API_Entities_UserBasic' source_project_id: type: integer format: int32 target_project_id: type: integer format: int32 labels: type: array items: type: string draft: type: boolean imported: type: boolean imported_from: type: string example: bitbucket work_in_progress: type: boolean milestone: $ref: '#/definitions/API_Entities_Milestone' merge_when_pipeline_succeeds: type: boolean merge_status: type: string example: unchecked detailed_merge_status: type: string example: mergeable merge_after: type: string format: date-time example: '2022-01-31T15:10:45.080Z' sha: type: string example: 1234abcd merge_commit_sha: type: string example: 1234abcd squash_commit_sha: type: string example: 1234abcd discussion_locked: type: boolean should_remove_source_branch: type: boolean force_remove_source_branch: type: boolean prepared_at: type: string format: date-time example: '2022-01-31T15:10:45.080Z' allow_collaboration: type: boolean allow_maintainer_to_push: type: boolean reference: type: string example: '!1' references: $ref: '#/definitions/API_Entities_IssuableReferences' web_url: type: string example: https://gitlab.example.com/my-group/my-project/-/merge_requests/1 time_stats: $ref: '#/definitions/API_Entities_IssuableTimeStats' squash: type: boolean squash_on_merge: type: boolean task_completion_status: $ref: '#/definitions/API_Entities_TaskCompletionStatus' has_conflicts: type: boolean blocking_discussions_resolved: type: boolean approvals_before_merge: type: integer format: int32 example: 2 required: - id - iid - project_id - title - description - state - created_at - updated_at - merged_by - merge_user - merged_at - closed_by - closed_at - target_branch - source_branch - user_notes_count - upvotes - downvotes - author - assignees - assignee - reviewers - source_project_id - target_project_id - labels - draft - imported - imported_from - work_in_progress - milestone - merge_when_pipeline_succeeds - merge_status - detailed_merge_status - merge_after - sha - merge_commit_sha - squash_commit_sha - discussion_locked - should_remove_source_branch - force_remove_source_branch - prepared_at - reference - references - web_url - time_stats - squash - squash_on_merge - task_completion_status - has_conflicts - blocking_discussions_resolved - approvals_before_merge description: API_Entities_MergeRequestBasic model API_Entities_LdapGroupLink: type: object properties: cn: type: string example: ldap-group-1 group_access: type: integer format: int32 example: 10 provider: type: string example: ldapmain filter: type: string example: id >= 500 member_role_id: type: integer format: int32 example: 12 required: - cn - group_access - provider API_Entities_ProjectAccess: type: object properties: access_level: type: string notification_level: type: string required: - access_level - notification_level API_Entities_SamlGroupLink: type: object properties: name: type: string example: saml-group-1 access_level: type: integer format: int32 example: 40 member_role_id: type: integer format: int32 example: 12 provider: type: string example: saml required: - name - access_level - provider postApiV4ProjectsUserUserId: type: object properties: name: type: string description: The name of the project example: New Project path: type: string description: The path of the repository example: new_project default_branch: type: string description: The default branch of the project example: main description: type: string description: The description of the project build_git_strategy: type: string description: The Git strategy. Defaults to `fetch` enum: - fetch - clone build_timeout: type: integer format: int32 description: Build timeout auto_cancel_pending_pipelines: type: string description: Auto-cancel pending pipelines enum: - disabled - enabled ci_config_path: type: string description: The path to CI config file. Defaults to `.gitlab-ci.yml` service_desk_enabled: type: boolean description: Disable or enable the service desk issues_enabled: type: boolean description: Flag indication if the issue tracker is enabled merge_requests_enabled: type: boolean description: Flag indication if merge requests are enabled wiki_enabled: type: boolean description: Flag indication if the wiki is enabled jobs_enabled: type: boolean description: Flag indication if jobs are enabled snippets_enabled: type: boolean description: Flag indication if snippets are enabled issues_access_level: type: string description: Issues access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled repository_access_level: type: string description: Repository access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled merge_requests_access_level: type: string description: Merge requests access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled forking_access_level: type: string description: Forks access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled wiki_access_level: type: string description: Wiki access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled builds_access_level: type: string description: Builds access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled snippets_access_level: type: string description: Snippets access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled package_registry_access_level: type: string description: Controls visibility of the package registry. One of `disabled`, `private`, `enabled` or `public`. `private` will make the package registry accessible only to project members (reporter role and above). `enabled` will make the package registry accessible to everyone who has access to the project. `public` will make the package registry accessible to everyone. `disabled` will disable the package registry enum: - disabled - private - enabled - public pages_access_level: type: string description: Pages access level. One of `disabled`, `private`, `enabled` or `public` enum: - disabled - private - enabled - public analytics_access_level: type: string description: Analytics access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled container_registry_access_level: type: string description: Controls visibility of the container registry. One of `disabled`, `private` or `enabled`. `private` will make the container registry accessible only to project members (reporter role and above). `enabled` will make the container registry accessible to everyone who has access to the project. `disabled` will disable the container registry enum: - disabled - private - enabled security_and_compliance_access_level: type: string description: Security and compliance access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled releases_access_level: type: string description: Releases access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled environments_access_level: type: string description: Environments access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled feature_flags_access_level: type: string description: Feature flags access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled infrastructure_access_level: type: string description: Infrastructure access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled monitor_access_level: type: string description: Monitor access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled model_experiments_access_level: type: string description: Model experiments access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled model_registry_access_level: type: string description: Model registry access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled emails_disabled: type: boolean description: 'Deprecated: Use emails_enabled instead.' emails_enabled: type: boolean description: Enable email notifications show_default_award_emojis: type: boolean description: Show default award emojis show_diff_preview_in_email: type: boolean description: Include the code diff preview in merge request notification emails warn_about_potentially_unwanted_characters: type: boolean description: Warn about potentially unwanted characters enforce_auth_checks_on_uploads: type: boolean description: Enforce auth check on uploads shared_runners_enabled: type: boolean description: Flag indication if shared runners are enabled for that project group_runners_enabled: type: boolean description: Flag indication if group runners are enabled for that project resource_group_default_process_mode: type: string description: The process mode of the resource group enum: - unordered - oldest_first - newest_first - newest_ready_first resolve_outdated_diff_discussions: type: boolean description: Automatically resolve merge request diff threads on lines changed with a push remove_source_branch_after_merge: type: boolean description: Remove the source branch by default after merge packages_enabled: type: boolean description: 'Deprecated: Use :package_registry_access_level instead. Enable project packages feature' container_registry_enabled: type: boolean description: 'Deprecated: Use :container_registry_access_level instead. Flag indication if the container registry is enabled for that project' container_expiration_policy_attributes: type: object description: Object that contains information on the container expiration policy properties: cadence: type: string description: Container expiration policy cadence for recurring job keep_n: type: integer format: int32 description: Container expiration policy number of images to keep older_than: type: string description: Container expiration policy remove images older than value name_regex: type: string description: Container expiration policy regex for image removal name_regex_keep: type: string description: Container expiration policy regex for image retention enabled: type: boolean description: Flag indication if container expiration policy is enabled lfs_enabled: type: boolean description: Flag indication if Git LFS is enabled for that project visibility: type: string description: The visibility of the project. enum: - private - internal - public public_builds: type: boolean description: 'Deprecated: Use public_jobs instead.' public_jobs: type: boolean description: Perform public builds request_access_enabled: type: boolean description: Allow users to request member access only_allow_merge_if_pipeline_succeeds: type: boolean description: Only allow to merge if builds succeed allow_merge_on_skipped_pipeline: type: boolean description: Allow to merge if pipeline is skipped only_allow_merge_if_all_discussions_are_resolved: type: boolean description: Only allow to merge if all threads are resolved tag_list: type: array description: 'Deprecated: Use :topics instead' items: type: string topics: type: array description: The list of topics for a project items: type: string avatar: type: file description: Avatar image for project printing_merge_request_link_enabled: type: boolean description: Show link to create/view merge request when pushing from the command line merge_method: type: string description: The merge method used when merging merge requests enum: - ff - rebase_merge - merge suggestion_commit_message: type: string description: The commit message used to apply merge request suggestions merge_commit_template: type: string description: Template used to create merge commit message squash_commit_template: type: string description: Template used to create squash commit message issue_branch_template: type: string description: Template used to create a branch from an issue auto_devops_enabled: type: boolean description: Flag indication if Auto DevOps is enabled auto_devops_deploy_strategy: type: string description: Auto Deploy strategy enum: - continuous - manual - timed_incremental autoclose_referenced_issues: type: boolean description: Flag indication if referenced issues auto-closing is enabled repository_storage: type: string description: Which storage shard the repository is on. Available only to admins squash_option: type: string description: Squash default for project. One of `never`, `always`, `default_on`, or `default_off`. enum: - never - always - default_on - default_off mr_default_target_self: type: boolean description: Merge requests of this forked project targets itself by default mr_default_title_template: type: string description: Template used to generate the default merge request title. Maximum 100 characters. only_allow_merge_if_all_status_checks_passed: type: boolean description: Blocks merge requests from merging unless all status checks have passed approvals_before_merge: type: integer format: int32 description: How many approvers should approve merge request by default mirror: type: boolean description: '[Deprecated] Enables pull mirroring in a project' mirror_trigger_builds: type: boolean description: '[Deprecated] Pull mirroring triggers builds' external_authorization_classification_label: type: string description: The classification label for the project requirements_access_level: type: string description: Requirements feature access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled prevent_merge_without_jira_issue: type: boolean description: Require an associated issue from Jira auto_duo_code_review_enabled: type: boolean description: Enable automatic reviews by GitLab Duo on merge requests duo_remote_flows_enabled: type: boolean description: Enable GitLab Duo remote flows for this project duo_sast_fp_detection_enabled: type: boolean description: Enable GitLab Duo SAST false positive detection for this project duo_secret_detection_fp_enabled: type: boolean description: Enable GitLab Duo Secret Detection false positive detection for this project duo_sast_vr_workflow_enabled: type: boolean description: Enable GitLab Duo SAST vulnerability resolution workflow for this project spp_repository_pipeline_access: type: boolean description: Grant read-only access to security policy configurations for enforcement in linked CI/CD projects merge_request_title_regex: type: string description: The regex the Merge Request must adhere to merge_request_title_regex_description: type: string description: The description for the regex the Merge Request must adhere to repository_object_format: type: string description: The object format of the project repository enum: - sha1 - sha256 initialize_with_readme: type: boolean description: Initialize a project with a README.md use_custom_template: type: boolean description: Use custom template group_with_project_templates_id: type: integer format: int32 description: Group ID that serves as the template source namespace_id: type: integer format: int32 description: Namespace ID for the new project. Default to the user namespace. import_url: type: string description: URL from which the project is imported template_name: type: string description: Name of template from which to create project template_project_id: type: integer format: int32 description: Project ID of template from which to create project required: - name description: Create new project for a specified user. Only available to admin users. API_Entities_BasicProjectDetails: type: object properties: id: type: integer format: int32 example: 1 description: type: string example: desc name: type: string example: project1 name_with_namespace: type: string example: John Doe / project1 path: type: string example: project1 path_with_namespace: type: string example: namespace1/project1 created_at: type: string format: date-time example: '2020-05-07T04:27:17.016Z' default_branch: type: string example: main tag_list: type: array items: type: string example: - tag topics: type: array items: type: string example: - topic ssh_url_to_repo: type: string example: git@gitlab.example.com:gitlab/gitlab.git http_url_to_repo: type: string example: https://gitlab.example.com/gitlab/gitlab.git web_url: type: string example: https://gitlab.example.com/gitlab/gitlab readme_url: type: string example: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md forks_count: type: integer format: int32 example: 1 license_url: type: string example: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE license: $ref: '#/definitions/API_Entities_LicenseBasic' avatar_url: type: string example: http://example.com/uploads/project/avatar/3/uploads/avatar.png star_count: type: integer format: int32 example: 1 last_activity_at: type: string format: date-time example: '2013-09-30T13:46:02Z' visibility: type: string example: public namespace: $ref: '#/definitions/API_Entities_NamespaceBasic' custom_attributes: $ref: '#/definitions/API_Entities_CustomAttribute' repository_storage: type: string example: default required: - id - description - name - name_with_namespace - path - path_with_namespace - created_at - tag_list - topics - ssh_url_to_repo - http_url_to_repo - web_url - avatar_url - star_count - last_activity_at - visibility - namespace description: API_Entities_BasicProjectDetails model API_Entities_ProjectDailyStatistics: type: object properties: fetches: type: object properties: total: type: integer format: int32 example: 3 days: type: array items: $ref: '#/definitions/API_Entities_ProjectDailyFetches' required: - total - days required: - fetches description: API_Entities_ProjectDailyStatistics model postApiV4ProjectsIdShare: type: object properties: group_id: type: integer format: int32 description: The ID of a group example: 1 group_access: type: integer format: int32 description: The group access level enum: - 10 - 15 - 20 - 30 - 40 - 50 expires_at: type: string format: date description: Share expiration date member_role_id: type: integer format: int32 description: The ID of the Member Role to be assigned to the group required: - group_id - group_access description: Share the project with a group API_Entities_Ci_ResetTokenResult: type: object properties: token: type: string token_expires_at: type: string required: - token description: API_Entities_Ci_ResetTokenResult model API_Entities_ProjectGroupLink: type: object properties: id: type: integer format: int32 example: 1 project_id: type: integer format: int32 example: 1 group_id: type: integer format: int32 example: 1 group_access: type: integer format: int32 example: 10 expires_at: type: string format: date example: '2016-09-26' member_role_id: type: integer format: int32 example: 12 required: - id - project_id - group_id - group_access - expires_at description: API_Entities_ProjectGroupLink model API_Entities_ProjectDailyFetches: type: object properties: count: type: integer format: int32 example: 3 date: type: string format: date example: '2022-01-01' required: - count - date API_Entities_ProjectWithAccess: type: object properties: id: type: integer format: int32 example: 1 description: type: string example: desc name: type: string example: project1 name_with_namespace: type: string example: John Doe / project1 path: type: string example: project1 path_with_namespace: type: string example: namespace1/project1 created_at: type: string format: date-time example: '2020-05-07T04:27:17.016Z' default_branch: type: string example: main tag_list: type: array items: type: string example: - tag topics: type: array items: type: string example: - topic ssh_url_to_repo: type: string example: git@gitlab.example.com:gitlab/gitlab.git http_url_to_repo: type: string example: https://gitlab.example.com/gitlab/gitlab.git web_url: type: string example: https://gitlab.example.com/gitlab/gitlab readme_url: type: string example: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md forks_count: type: integer format: int32 example: 1 license_url: type: string example: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE license: $ref: '#/definitions/API_Entities_LicenseBasic' avatar_url: type: string example: http://example.com/uploads/project/avatar/3/uploads/avatar.png star_count: type: integer format: int32 example: 1 last_activity_at: type: string format: date-time example: '2013-09-30T13:46:02Z' visibility: type: string example: public namespace: $ref: '#/definitions/API_Entities_NamespaceBasic' custom_attributes: $ref: '#/definitions/API_Entities_CustomAttribute' repository_storage: type: string example: default forked_from_project: $ref: '#/definitions/API_Entities_BasicProjectDetails' container_registry_image_prefix: type: string example: registry.gitlab.example.com/gitlab/gitlab-client _links: type: object properties: self: type: string example: https://gitlab.example.com/api/v4/projects/4 issues: type: string example: https://gitlab.example.com/api/v4/projects/4/issues merge_requests: type: string example: https://gitlab.example.com/api/v4/projects/4/merge_requests repo_branches: type: string example: https://gitlab.example.com/api/v4/projects/4/repository/branches labels: type: string example: https://gitlab.example.com/api/v4/projects/4/labels events: type: string example: https://gitlab.example.com/api/v4/projects/4/events members: type: string example: https://gitlab.example.com/api/v4/projects/4/members cluster_agents: type: string example: https://gitlab.example.com/api/v4/projects/4/cluster_agents required: - self - repo_branches - labels - events - members - cluster_agents marked_for_deletion_at: type: string format: date-time example: '2020-05-07T04:27:17.016Z' marked_for_deletion_on: type: string format: date-time example: '2020-05-07T04:27:17.016Z' packages_enabled: type: boolean empty_repo: type: boolean archived: type: boolean owner: $ref: '#/definitions/API_Entities_UserBasic' resolve_outdated_diff_discussions: type: boolean container_expiration_policy: $ref: '#/definitions/API_Entities_ContainerExpirationPolicy' repository_object_format: type: string example: sha1 issues_enabled: type: boolean merge_requests_enabled: type: boolean wiki_enabled: type: boolean jobs_enabled: type: boolean snippets_enabled: type: boolean container_registry_enabled: type: boolean service_desk_enabled: type: boolean service_desk_address: type: string example: address@example.com can_create_merge_request_in: type: boolean issues_access_level: type: string example: enabled repository_access_level: type: string example: enabled merge_requests_access_level: type: string example: enabled forking_access_level: type: string example: enabled wiki_access_level: type: string example: enabled builds_access_level: type: string example: enabled snippets_access_level: type: string example: enabled pages_access_level: type: string example: enabled analytics_access_level: type: string example: enabled container_registry_access_level: type: string example: enabled security_and_compliance_access_level: type: string example: enabled releases_access_level: type: string example: enabled environments_access_level: type: string example: enabled feature_flags_access_level: type: string example: enabled infrastructure_access_level: type: string example: enabled monitor_access_level: type: string example: enabled model_experiments_access_level: type: string example: enabled model_registry_access_level: type: string example: enabled package_registry_access_level: type: string example: enabled emails_disabled: type: boolean emails_enabled: type: boolean show_diff_preview_in_email: type: boolean shared_runners_enabled: type: boolean lfs_enabled: type: boolean creator_id: type: integer format: int32 example: 1 mr_default_target_self: type: boolean import_url: type: string example: https://gitlab.com/gitlab/gitlab.git import_type: type: string example: git import_status: type: string example: none import_error: type: string example: Import error open_issues_count: type: integer format: int32 example: 1 description_html: type: string updated_at: type: string format: date-time example: '2020-05-07T04:27:17.016Z' ci_default_git_depth: type: integer format: int32 example: 20 ci_delete_pipelines_in_seconds: type: integer format: int32 example: 86400 ci_forward_deployment_enabled: type: boolean ci_forward_deployment_rollback_allowed: type: boolean ci_job_token_scope_enabled: type: boolean ci_separated_caches: type: boolean ci_allow_fork_pipelines_to_run_in_parent_project: type: boolean ci_id_token_sub_claim_components: type: array items: type: string build_git_strategy: type: string example: fetch keep_latest_artifact: type: boolean restrict_user_defined_variables: type: boolean ci_pipeline_variables_minimum_override_role: type: string runner_token_expiration_interval: type: integer format: int32 example: 3600 group_runners_enabled: type: boolean resource_group_default_process_mode: type: string example: unordered auto_cancel_pending_pipelines: type: string example: enabled build_timeout: type: integer format: int32 example: 3600 auto_devops_enabled: type: boolean auto_devops_deploy_strategy: type: string example: continuous ci_push_repository_for_job_token_allowed: type: boolean protect_merge_request_pipelines: type: boolean ci_display_pipeline_variables: type: boolean runners_token: type: string example: b8547b1dc37721d05889db52fa2f02 ci_config_path: type: string example: '' public_jobs: type: boolean shared_with_groups: type: array items: type: object only_allow_merge_if_pipeline_succeeds: type: boolean allow_merge_on_skipped_pipeline: type: boolean request_access_enabled: type: boolean only_allow_merge_if_all_discussions_are_resolved: type: boolean remove_source_branch_after_merge: type: boolean printing_merge_request_link_enabled: type: boolean merge_method: type: string example: merge squash_option: type: string example: default_off enforce_auth_checks_on_uploads: type: boolean suggestion_commit_message: type: string example: Suggestion message merge_commit_template: type: string example: '%(title)' squash_commit_template: type: string example: '%(source_branch)' mr_default_title_template: type: string example: '%(source_branch)' issue_branch_template: type: string example: '%(title)' statistics: $ref: '#/definitions/API_Entities_ProjectStatistics' warn_about_potentially_unwanted_characters: type: boolean autoclose_referenced_issues: type: boolean max_artifacts_size: type: integer format: int32 approvals_before_merge: type: string mirror: type: string mirror_user_id: type: string mirror_trigger_builds: type: string only_mirror_protected_branches: type: string mirror_overwrites_diverged_branches: type: string external_authorization_classification_label: type: string requirements_enabled: type: string requirements_access_level: type: string security_and_compliance_enabled: type: string secret_push_protection_enabled: type: boolean pre_receive_secret_detection_enabled: type: boolean compliance_frameworks: type: string issues_template: type: string merge_requests_template: type: string ci_restrict_pipeline_cancellation_role: type: string merge_pipelines_enabled: type: string merge_trains_enabled: type: string merge_trains_skip_train_allowed: type: string max_pipelines_per_merge_train: type: string only_allow_merge_if_all_status_checks_passed: type: string allow_pipeline_trigger_approve_deployment: type: boolean prevent_merge_without_jira_issue: type: string auto_duo_code_review_enabled: type: string duo_remote_flows_enabled: type: string duo_foundational_flows_enabled: type: string duo_sast_fp_detection_enabled: type: string duo_secret_detection_fp_enabled: type: string duo_sast_vr_workflow_enabled: type: string web_based_commit_signing_enabled: type: string spp_repository_pipeline_access: type: boolean description: The spp_repository_pipeline_access setting is only visible if the security_orchestration_policies feature is available. security_policy_pipeline_must_succeed: type: boolean description: Require all security policy pipelines to succeed before merge requests can be merged. merge_request_title_regex: type: string example: /Title of merge request/ merge_request_title_regex_description: type: string example: This requires the title to include a Jira label permissions: type: object properties: project_access: $ref: '#/definitions/API_Entities_ProjectAccess' group_access: $ref: '#/definitions/API_Entities_GroupAccess' required: - project_access - group_access required: - id - description - name - name_with_namespace - path - path_with_namespace - created_at - tag_list - topics - ssh_url_to_repo - http_url_to_repo - web_url - avatar_url - star_count - last_activity_at - visibility - namespace - _links - marked_for_deletion_at - marked_for_deletion_on - packages_enabled - empty_repo - archived - resolve_outdated_diff_discussions - repository_object_format - issues_enabled - merge_requests_enabled - wiki_enabled - jobs_enabled - snippets_enabled - container_registry_enabled - service_desk_enabled - can_create_merge_request_in - issues_access_level - repository_access_level - merge_requests_access_level - forking_access_level - wiki_access_level - builds_access_level - snippets_access_level - pages_access_level - analytics_access_level - container_registry_access_level - security_and_compliance_access_level - releases_access_level - environments_access_level - feature_flags_access_level - infrastructure_access_level - monitor_access_level - model_experiments_access_level - model_registry_access_level - package_registry_access_level - emails_disabled - emails_enabled - show_diff_preview_in_email - shared_runners_enabled - lfs_enabled - creator_id - import_status - description_html - updated_at - public_jobs - shared_with_groups - only_allow_merge_if_pipeline_succeeds - allow_merge_on_skipped_pipeline - request_access_enabled - only_allow_merge_if_all_discussions_are_resolved - remove_source_branch_after_merge - printing_merge_request_link_enabled - merge_method - squash_option - enforce_auth_checks_on_uploads - suggestion_commit_message - merge_commit_template - squash_commit_template - issue_branch_template - warn_about_potentially_unwanted_characters - autoclose_referenced_issues - max_artifacts_size - requirements_enabled - requirements_access_level - security_and_compliance_enabled - compliance_frameworks - permissions description: API_Entities_ProjectWithAccess model API_Entities_GroupAccess: type: object properties: access_level: type: string notification_level: type: string required: - access_level - notification_level EpicBaseEntity: type: object properties: id: type: string iid: type: string title: type: string url: type: string group_id: type: string human_readable_end_date: type: string human_readable_timestamp: type: string required: - id - iid - title - url - group_id API_Entities_Projects_ContainerRegistry_Protection_Rule: type: object properties: id: type: integer format: int32 example: 1 project_id: type: integer format: int32 example: 1 repository_path_pattern: type: string example: flightjs/flight0 minimum_access_level_for_push: type: string example: maintainer minimum_access_level_for_delete: type: string example: maintainer required: - id - project_id - repository_path_pattern - minimum_access_level_for_push - minimum_access_level_for_delete description: API_Entities_Projects_ContainerRegistry_Protection_Rule model patchApiV4ProjectsIdPackagesProtectionRulesPackageProtectionRuleId: type: object properties: package_name_pattern: type: string description: "Package name protected by the rule. For example @my-scope/my-package-*.\n Wildcard character * allowed." package_type: type: string description: Package type protected by the rule. For example npm. enum: - cargo - conan - generic - helm - maven - npm - nuget - pypi - terraform_module minimum_access_level_for_delete: type: string description: Minimum GitLab access level required to delete a package. Valid values include `null`, `owner` or `admin`. If the value is `null`, the default minimum access level is `maintainer`. Must be provided when `minimum_access_level_for_push` is not set. Behind a feature flag named `packages_protected_packages_delete`. Disabled by default. enum: - owner - admin minimum_access_level_for_push: type: string description: Minimum GitLab access level required to push a package. Valid values include `null`, `maintainer`, `owner` or `admin`. If the value is `null`, the default minimum access level is `developer`. Must be provided when `minimum_access_level_for_delete` is not set. enum: - maintainer - owner - admin description: Update a package protection rule for a project API_Entities_PublicGroupDetails: type: object properties: id: type: integer format: int32 web_url: type: string example: http://gitlab.example.com/groups/diaspora name: type: string example: Diaspora avatar_url: type: string example: http://gitlab.example.com/uploads/group/avatar/1/avatar.png full_name: type: string example: Foobar Group full_path: type: string example: foo-bar required: - id - web_url - name - avatar_url - full_name - full_path description: API_Entities_PublicGroupDetails model API_Entities_ContainerExpirationPolicy: type: object properties: cadence: type: string enabled: type: string keep_n: type: string older_than: type: string name_regex: type: string name_regex_keep: type: string next_run_at: type: string required: - cadence - enabled - keep_n - older_than - name_regex - name_regex_keep - next_run_at putApiV4ProjectsId: type: object properties: name: type: string description: The name of the project example: project default_branch: type: string description: The default branch of the project example: main path: type: string description: The path of the repository example: group/project description: type: string description: The description of the project build_git_strategy: type: string description: The Git strategy. Defaults to `fetch` enum: - fetch - clone build_timeout: type: integer format: int32 description: Build timeout auto_cancel_pending_pipelines: type: string description: Auto-cancel pending pipelines enum: - disabled - enabled ci_config_path: type: string description: The path to CI config file. Defaults to `.gitlab-ci.yml` service_desk_enabled: type: boolean description: Disable or enable the service desk issues_enabled: type: boolean description: Flag indication if the issue tracker is enabled merge_requests_enabled: type: boolean description: Flag indication if merge requests are enabled wiki_enabled: type: boolean description: Flag indication if the wiki is enabled jobs_enabled: type: boolean description: Flag indication if jobs are enabled snippets_enabled: type: boolean description: Flag indication if snippets are enabled issues_access_level: type: string description: Issues access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled repository_access_level: type: string description: Repository access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled merge_requests_access_level: type: string description: Merge requests access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled forking_access_level: type: string description: Forks access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled wiki_access_level: type: string description: Wiki access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled builds_access_level: type: string description: Builds access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled snippets_access_level: type: string description: Snippets access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled package_registry_access_level: type: string description: Controls visibility of the package registry. One of `disabled`, `private`, `enabled` or `public`. `private` will make the package registry accessible only to project members (reporter role and above). `enabled` will make the package registry accessible to everyone who has access to the project. `public` will make the package registry accessible to everyone. `disabled` will disable the package registry enum: - disabled - private - enabled - public pages_access_level: type: string description: Pages access level. One of `disabled`, `private`, `enabled` or `public` enum: - disabled - private - enabled - public analytics_access_level: type: string description: Analytics access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled container_registry_access_level: type: string description: Controls visibility of the container registry. One of `disabled`, `private` or `enabled`. `private` will make the container registry accessible only to project members (reporter role and above). `enabled` will make the container registry accessible to everyone who has access to the project. `disabled` will disable the container registry enum: - disabled - private - enabled security_and_compliance_access_level: type: string description: Security and compliance access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled releases_access_level: type: string description: Releases access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled environments_access_level: type: string description: Environments access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled feature_flags_access_level: type: string description: Feature flags access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled infrastructure_access_level: type: string description: Infrastructure access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled monitor_access_level: type: string description: Monitor access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled model_experiments_access_level: type: string description: Model experiments access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled model_registry_access_level: type: string description: Model registry access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled emails_disabled: type: boolean description: 'Deprecated: Use emails_enabled instead.' emails_enabled: type: boolean description: Enable email notifications show_default_award_emojis: type: boolean description: Show default award emojis show_diff_preview_in_email: type: boolean description: Include the code diff preview in merge request notification emails warn_about_potentially_unwanted_characters: type: boolean description: Warn about potentially unwanted characters enforce_auth_checks_on_uploads: type: boolean description: Enforce auth check on uploads shared_runners_enabled: type: boolean description: Flag indication if shared runners are enabled for that project group_runners_enabled: type: boolean description: Flag indication if group runners are enabled for that project resource_group_default_process_mode: type: string description: The process mode of the resource group enum: - unordered - oldest_first - newest_first - newest_ready_first resolve_outdated_diff_discussions: type: boolean description: Automatically resolve merge request diff threads on lines changed with a push remove_source_branch_after_merge: type: boolean description: Remove the source branch by default after merge packages_enabled: type: boolean description: 'Deprecated: Use :package_registry_access_level instead. Enable project packages feature' container_registry_enabled: type: boolean description: 'Deprecated: Use :container_registry_access_level instead. Flag indication if the container registry is enabled for that project' container_expiration_policy_attributes: type: object description: Object that contains information on the container expiration policy properties: cadence: type: string description: Container expiration policy cadence for recurring job keep_n: type: integer format: int32 description: Container expiration policy number of images to keep older_than: type: string description: Container expiration policy remove images older than value name_regex: type: string description: Container expiration policy regex for image removal name_regex_keep: type: string description: Container expiration policy regex for image retention enabled: type: boolean description: Flag indication if container expiration policy is enabled lfs_enabled: type: boolean description: Flag indication if Git LFS is enabled for that project visibility: type: string description: The visibility of the project. enum: - private - internal - public public_builds: type: boolean description: 'Deprecated: Use public_jobs instead.' public_jobs: type: boolean description: Perform public builds request_access_enabled: type: boolean description: Allow users to request member access only_allow_merge_if_pipeline_succeeds: type: boolean description: Only allow to merge if builds succeed allow_merge_on_skipped_pipeline: type: boolean description: Allow to merge if pipeline is skipped only_allow_merge_if_all_discussions_are_resolved: type: boolean description: Only allow to merge if all threads are resolved tag_list: type: array description: 'Deprecated: Use :topics instead' items: type: string topics: type: array description: The list of topics for a project items: type: string avatar: type: file description: Avatar image for project printing_merge_request_link_enabled: type: boolean description: Show link to create/view merge request when pushing from the command line merge_method: type: string description: The merge method used when merging merge requests enum: - ff - rebase_merge - merge suggestion_commit_message: type: string description: The commit message used to apply merge request suggestions merge_commit_template: type: string description: Template used to create merge commit message squash_commit_template: type: string description: Template used to create squash commit message issue_branch_template: type: string description: Template used to create a branch from an issue auto_devops_enabled: type: boolean description: Flag indication if Auto DevOps is enabled auto_devops_deploy_strategy: type: string description: Auto Deploy strategy enum: - continuous - manual - timed_incremental autoclose_referenced_issues: type: boolean description: Flag indication if referenced issues auto-closing is enabled repository_storage: type: string description: Which storage shard the repository is on. Available only to admins squash_option: type: string description: Squash default for project. One of `never`, `always`, `default_on`, or `default_off`. enum: - never - always - default_on - default_off mr_default_target_self: type: boolean description: Merge requests of this forked project targets itself by default mr_default_title_template: type: string description: Template used to generate the default merge request title. Maximum 100 characters. only_allow_merge_if_all_status_checks_passed: type: boolean description: Blocks merge requests from merging unless all status checks have passed approvals_before_merge: type: integer format: int32 description: How many approvers should approve merge request by default mirror: type: boolean description: '[Deprecated] Enables pull mirroring in a project' mirror_trigger_builds: type: boolean description: '[Deprecated] Pull mirroring triggers builds' external_authorization_classification_label: type: string description: The classification label for the project requirements_access_level: type: string description: Requirements feature access level. One of `disabled`, `private` or `enabled` enum: - disabled - private - enabled prevent_merge_without_jira_issue: type: boolean description: Require an associated issue from Jira auto_duo_code_review_enabled: type: boolean description: Enable automatic reviews by GitLab Duo on merge requests duo_remote_flows_enabled: type: boolean description: Enable GitLab Duo remote flows for this project duo_sast_fp_detection_enabled: type: boolean description: Enable GitLab Duo SAST false positive detection for this project duo_secret_detection_fp_enabled: type: boolean description: Enable GitLab Duo Secret Detection false positive detection for this project duo_sast_vr_workflow_enabled: type: boolean description: Enable GitLab Duo SAST vulnerability resolution workflow for this project spp_repository_pipeline_access: type: boolean description: Grant read-only access to security policy configurations for enforcement in linked CI/CD projects merge_request_title_regex: type: string description: The regex the Merge Request must adhere to merge_request_title_regex_description: type: string description: The description for the regex the Merge Request must adhere to ci_default_git_depth: type: integer format: int32 description: Default number of revisions for shallow cloning keep_latest_artifact: type: boolean description: Indicates if the latest artifact should be kept for this project. ci_forward_deployment_enabled: type: boolean description: Prevent older deployment jobs that are still pending ci_forward_deployment_rollback_allowed: type: boolean description: Allow job retries for rollback deployments ci_allow_fork_pipelines_to_run_in_parent_project: type: boolean description: Allow fork merge request pipelines to run in parent project ci_separated_caches: type: boolean description: Enable or disable separated caches based on branch protection. restrict_user_defined_variables: type: boolean description: Restrict use of user-defined variables when triggering a pipeline ci_pipeline_variables_minimum_override_role: type: string description: Limit ability to override CI/CD variables when triggering a pipeline to only users with at least the set minimum role enum: - no_one_allowed - developer - maintainer - owner ci_push_repository_for_job_token_allowed: type: boolean description: Allow pushing to this project's repository by authenticating with a CI/CD job token generated in this project. ci_id_token_sub_claim_components: type: array description: Claims that will be used to build the sub claim in id tokens items: type: string ci_delete_pipelines_in_seconds: type: integer format: int32 description: Pipelines older than the configured time are deleted max_artifacts_size: type: integer format: int32 description: Set the maximum file size for each job's artifacts protect_merge_request_pipelines: type: boolean description: Make protected CI/CD variables and runners available in merge request pipelines ci_display_pipeline_variables: type: boolean description: Display all manually-defined variables in the pipeline details page after running a pipeline manually allow_pipeline_trigger_approve_deployment: type: boolean description: Allow pipeline triggerer to approve deployments mirror_user_id: type: integer format: int32 description: '[Deprecated] User responsible for all the activity surrounding a pull mirror event. Can only be set by admins' only_mirror_protected_branches: type: boolean description: '[Deprecated] Only mirror protected branches' mirror_branch_regex: type: string description: '[Deprecated] Only mirror branches match regex' mirror_overwrites_diverged_branches: type: boolean description: '[Deprecated] Pull mirror overwrites diverged branches' import_url: type: string description: URL from which the project is imported fallback_approvals_required: type: integer format: int32 description: Overall approvals required when no rule is present issues_template: type: string description: Default description for Issues. Description is parsed with GitLab Flavored Markdown. merge_requests_template: type: string description: Default description for merge requests. Description is parsed with GitLab Flavored Markdown. merge_pipelines_enabled: type: boolean description: Enable merged results pipelines. merge_trains_enabled: type: boolean description: Enable merge trains. merge_trains_skip_train_allowed: type: boolean description: Allow merge train merge requests to be merged without waiting for pipelines to finish. max_pipelines_per_merge_train: type: integer format: int32 description: Maximum number of parallel pipelines per merge train for this project. ci_restrict_pipeline_cancellation_role: type: string description: Roles allowed to cancel pipelines and jobs. web_based_commit_signing_enabled: type: boolean description: Enable web based commit signing for this project security_policy_pipeline_must_succeed: type: boolean description: Require all security policy pipelines to succeed before merge requests can be merged description: Update an existing project API_Entities_IssuableReferences: type: object properties: short: type: string example: '&6' relative: type: string example: '&6' full: type: string example: test&6 required: - short - relative - full postApiV4ProjectsIdIssuesIssueIidClone: type: object properties: to_project_id: type: integer format: int32 description: The ID of the new project with_notes: type: boolean description: Clone issue with notes default: false required: - to_project_id description: Clone an existing issue API_Entities_UserSafe: type: object properties: id: type: integer format: int32 example: 1 username: type: string example: admin public_email: type: string example: john@example.com name: type: string example: Administrator required: - id - username - public_email - name putApiV4ProjectsIdIssuesIssueIid: type: object properties: title: type: string description: The title of an issue updated_at: type: string format: date-time description: Date time when the issue was updated. Available only for admins and project owners. state_event: type: string description: State of the issue enum: - reopen - close description: type: string description: The description of an issue assignee_ids: type: array description: The array of user IDs to assign issue items: type: integer format: int32 assignee_id: type: integer format: int32 description: '[Deprecated] The ID of a user to assign issue' milestone_id: type: integer format: int32 description: The ID of a milestone to assign issue labels: type: array description: Comma-separated list of label names items: type: string add_labels: type: array description: Comma-separated list of label names items: type: string remove_labels: type: array description: Comma-separated list of label names items: type: string due_date: type: string description: Date string in the format YEAR-MONTH-DAY confidential: type: boolean description: Boolean parameter if the issue should be confidential discussion_locked: type: boolean description: ' Boolean parameter indicating if the issue''s discussion is locked' issue_type: type: string description: 'The type of the issue. Accepts: issue, incident, test_case, requirement, task, ticket' enum: - issue - incident - test_case - requirement - task - ticket weight: type: integer format: int32 description: The weight of the issue epic_id: type: integer format: int32 description: The ID of an epic to associate the issue with epic_iid: type: integer format: int32 description: The IID of an epic to associate the issue with (deprecated) created_at: type: string description: Update an existing issue API_Entities_ProjectStatistics: type: object properties: commit_count: type: integer format: int32 example: 37 storage_size: type: integer format: int32 example: 1038090 repository_size: type: integer format: int32 example: 1038090 wiki_size: type: integer format: int32 example: 0 lfs_objects_size: type: integer format: int32 example: 0 job_artifacts_size: type: integer format: int32 example: 0 pipeline_artifacts_size: type: integer format: int32 example: 0 packages_size: type: integer format: int32 example: 0 snippets_size: type: integer format: int32 example: 0 uploads_size: type: integer format: int32 example: 0 container_registry_size: type: integer format: int32 example: 0 required: - commit_count - storage_size - repository_size - wiki_size - lfs_objects_size - job_artifacts_size - pipeline_artifacts_size - packages_size - snippets_size - uploads_size - container_registry_size postApiV4ProjectsIdRegistryProtectionRepositoryRules: type: object properties: repository_path_pattern: type: string description: "Container repository path pattern protected by the protection rule.\n For example `flight/flight-*`. Wildcard character `*` allowed." minimum_access_level_for_push: type: string description: "Minimum GitLab access level to allow to push container images to the container registry.\n For example maintainer, owner or admin." enum: - maintainer - owner - admin minimum_access_level_for_delete: type: string description: "Minimum GitLab access level to allow to delete container images in the container registry.\n For example maintainer, owner or admin." enum: - maintainer - owner - admin required: - repository_path_pattern description: Create a container protection rule for a project API_Entities_TaskCompletionStatus: type: object properties: count: type: integer format: int32 example: 5 completed_count: type: integer format: int32 example: 3 required: - count - completed_count API_Entities_ProjectRepositoryStorage: type: object properties: disk_path: type: string example: '@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b' project_id: type: integer format: int32 example: 1 repository_storage: type: string example: default created_at: type: string format: date-time example: '2012-10-12T17:04:47Z' required: - disk_path - project_id - repository_storage - created_at description: API_Entities_ProjectRepositoryStorage model API_Entities_LicenseBasic: type: object properties: key: type: string example: gpl-3.0 name: type: string example: GNU General Public License v3.0 nickname: type: string example: GNU GPLv3 html_url: type: string example: http://choosealicense.com/licenses/gpl-3.0 source_url: type: string required: - key - name - nickname - html_url - source_url securityDefinitions: access_token_header: type: apiKey name: PRIVATE-TOKEN in: header access_token_query: type: apiKey name: private_token in: query