GitLab CI/CD · Capability

GitLab API — projects

GitLab API — projects. 73 operations. Lead operation: Search on GitLab within a project. Self-contained Naftiko capability covering one Gitlab Ci business surface.

Run with Naftiko Gitlab Ciprojects

What You Can Do

GET
Getapiv4projects — Get a list of visible projects for authenticated user
/v1/api/v4/projects
POST
Postapiv4projects — Create new project
/v1/api/v4/projects
POST
Postapiv4projectsuseruserid — Create new project for a specified user. Only available to admin users.
/v1/api/v4/projects/user/{user-id}
GET
Getapiv4projectsid — Get a single project
/v1/api/v4/projects/{id}
PUT
Putapiv4projectsid — Update an existing project
/v1/api/v4/projects/{id}
DELETE
Deleteapiv4projectsid — Delete a project
/v1/api/v4/projects/{id}
GET
Getapiv4projectsidsearch — Search on GitLab within a project
/v1/api/v4/projects/{id}//search
POST
Postapiv4projectsidarchive — Archive a project
/v1/api/v4/projects/{id}/archive
GET
Getapiv4projectsidauditevents — Get a list of audit events in this project.
/v1/api/v4/projects/{id}/audit-events
GET
Getapiv4projectsidauditeventsauditeventid — Get a specific audit event in this project.
/v1/api/v4/projects/{id}/audit-events/{audit-event-id}
POST
Postapiv4projectsidcreateciconfig — Create merge request for missing ci config in project
/v1/api/v4/projects/{id}/create-ci-config
POST
Postapiv4projectsidfork — Fork new project for the current user or provided namespace.
/v1/api/v4/projects/{id}/fork
DELETE
Deleteapiv4projectsidfork — Remove a forked_from relationship
/v1/api/v4/projects/{id}/fork
POST
Postapiv4projectsidforkforkedfromid — Mark this project as forked from another
/v1/api/v4/projects/{id}/fork/{forked-from-id}
GET
Getapiv4projectsidforks — List forks of this project
/v1/api/v4/projects/{id}/forks
GET
Getapiv4projectsidgroups — Get ancestor and shared groups for a project
/v1/api/v4/projects/{id}/groups
POST
Postapiv4projectsidhousekeeping — Start the housekeeping task for a project
/v1/api/v4/projects/{id}/housekeeping
POST
Postapiv4projectsidimportprojectmembersprojectid — Import members from another project
/v1/api/v4/projects/{id}/import-project-members/{project-id}
GET
Getapiv4projectsidinvitedgroups — Get a list of invited groups in this project
/v1/api/v4/projects/{id}/invited-groups
GET
Getapiv4projectsidissues — Get a list of project issues
/v1/api/v4/projects/{id}/issues
POST
Postapiv4projectsidissues — Create a new project issue
/v1/api/v4/projects/{id}/issues
GET
Getapiv4projectsidissuesissueiid — Get a single project issue
/v1/api/v4/projects/{id}/issues/{issue-iid}
PUT
Putapiv4projectsidissuesissueiid — Update an existing issue
/v1/api/v4/projects/{id}/issues/{issue-iid}
DELETE
Deleteapiv4projectsidissuesissueiid — Delete a project issue
/v1/api/v4/projects/{id}/issues/{issue-iid}
POST
Postapiv4projectsidissuesissueiidclone — Clone an existing issue
/v1/api/v4/projects/{id}/issues/{issue-iid}/clone
GET
Getapiv4projectsidissuesissueiidclosedby — List merge requests closing issue
/v1/api/v4/projects/{id}/issues/{issue-iid}/closed-by
POST
Postapiv4projectsidissuesissueiidmove — Move an existing issue
/v1/api/v4/projects/{id}/issues/{issue-iid}/move
PUT
Putapiv4projectsidissuesissueiidreorder — Reorder an existing issue
/v1/api/v4/projects/{id}/issues/{issue-iid}/reorder
GET
Getapiv4projectsidissuesstatistics — Get statistics for the list of project issues
/v1/api/v4/projects/{id}/issues-statistics
GET
Getapiv4projectsidlanguages — Get languages in project repository
/v1/api/v4/projects/{id}/languages
GET
Getapiv4projectsidpackagesprotectionrules — Get list of package protection rules for a project
/v1/api/v4/projects/{id}/packages/protection/rules
POST
Postapiv4projectsidpackagesprotectionrules — Create a package protection rule for a project
/v1/api/v4/projects/{id}/packages/protection/rules
PATCH
Patchapiv4projectsidpackagesprotectionrulespackageprotectionruleid — Update a package protection rule for a project
/v1/api/v4/projects/{id}/packages/protection/rules/{package-protection-rule-id}
DELETE
Deleteapiv4projectsidpackagesprotectionrulespackageprotectionruleid — Delete package protection rule
/v1/api/v4/projects/{id}/packages/protection/rules/{package-protection-rule-id}
GET
Getapiv4projectsidpagesaccess — Check pages access of this project
/v1/api/v4/projects/{id}/pages-access
GET
Getapiv4projectsidregistryprotectionrepositoryrules — Get list of container registry protection rules for a project
/v1/api/v4/projects/{id}/registry/protection/repository/rules
POST
Postapiv4projectsidregistryprotectionrepositoryrules — Create a container protection rule for a project
/v1/api/v4/projects/{id}/registry/protection/repository/rules
PATCH
Patchapiv4projectsidregistryprotectionrepositoryrulesprotectionruleid — Update a container protection rule for a project
/v1/api/v4/projects/{id}/registry/protection/repository/rules/{protection-rule-id}
DELETE
Deleteapiv4projectsidregistryprotectionrepositoryrulesprotectionruleid — Delete container protection rule
/v1/api/v4/projects/{id}/registry/protection/repository/rules/{protection-rule-id}
GET
Getapiv4projectsidregistryprotectiontagrules — Gets a list of container protection tag rules for a project.
/v1/api/v4/projects/{id}/registry/protection/tag/rules
POST
Postapiv4projectsidregistryprotectiontagrules — Create a container protection tag rule for a project. 5 rule limit per project.
/v1/api/v4/projects/{id}/registry/protection/tag/rules
PATCH
Patchapiv4projectsidregistryprotectiontagrulesprotectionruleid — Update a container protection tag rule for a project.
/v1/api/v4/projects/{id}/registry/protection/tag/rules/{protection-rule-id}
DELETE
Deleteapiv4projectsidregistryprotectiontagrulesprotectionruleid — Delete container protection tag rule
/v1/api/v4/projects/{id}/registry/protection/tag/rules/{protection-rule-id}
POST
Postapiv4projectsidrepositorysize — Start a task to recalculate repository size for a project
/v1/api/v4/projects/{id}/repository-size
POST
Postapiv4projectsidrestore — Restore a project
/v1/api/v4/projects/{id}/restore
GET
Getapiv4projectsidrunners — List project's runners
/v1/api/v4/projects/{id}/runners
POST
Postapiv4projectsidrunners — Assign a runner to project
/v1/api/v4/projects/{id}/runners
POST
Postapiv4projectsidrunnersresetregistrationtoken — Reset the runner registration token for a project
/v1/api/v4/projects/{id}/runners/reset-registration-token
DELETE
Deleteapiv4projectsidrunnersrunnerid — Unassign a project runner from the project
/v1/api/v4/projects/{id}/runners/{runner-id}
POST
Postapiv4projectsidshare — Share the project with a group
/v1/api/v4/projects/{id}/share
DELETE
Deleteapiv4projectsidsharegroupid — Remove a group share
/v1/api/v4/projects/{id}/share/{group-id}
GET
Getapiv4projectsidsharelocations — Returns group that can be shared with the given project
/v1/api/v4/projects/{id}/share-locations
POST
Postapiv4projectsidstar — Star a project
/v1/api/v4/projects/{id}/star
GET
Getapiv4projectsidstarrers — Get the users who starred a project
/v1/api/v4/projects/{id}/starrers
GET
Getapiv4projectsidstatistics — Get the list of project fetch statistics for the last 30 days
/v1/api/v4/projects/{id}/statistics
GET
Getapiv4projectsidstorage — Show the storage information
/v1/api/v4/projects/{id}/storage
GET
Getapiv4projectsidterraformstateprotectionrules — List all Terraform state protection rules for a project
/v1/api/v4/projects/{id}/terraform/state-protection-rules
PUT
Putapiv4projectsidtransfer — Transfer a project to a new namespace
/v1/api/v4/projects/{id}/transfer
GET
Getapiv4projectsidtransferlocations — Get the namespaces to where the project can be transferred
/v1/api/v4/projects/{id}/transfer-locations
POST
Postapiv4projectsidunarchive — Unarchive a project
/v1/api/v4/projects/{id}/unarchive
POST
Postapiv4projectsidunstar — Unstar a project
/v1/api/v4/projects/{id}/unstar
POST
Postapiv4projectsiduploads — Upload a file
/v1/api/v4/projects/{id}/uploads
GET
Getapiv4projectsiduploads — Get the list of uploads of a project
/v1/api/v4/projects/{id}/uploads
POST
Postapiv4projectsiduploadsauthorize — Workhorse authorize the file upload
/v1/api/v4/projects/{id}/uploads/authorize
GET
Getapiv4projectsiduploadssecretfilename — Download a single project upload by secret and filename
/v1/api/v4/projects/{id}/uploads/{secret}/{filename}
DELETE
Deleteapiv4projectsiduploadssecretfilename — Delete a single project upload by secret and filename
/v1/api/v4/projects/{id}/uploads/{secret}/{filename}
GET
Getapiv4projectsiduploadsuploadid — Download a single project upload by ID
/v1/api/v4/projects/{id}/uploads/{upload-id}
DELETE
Deleteapiv4projectsiduploadsuploadid — Delete a single project upload by ID
/v1/api/v4/projects/{id}/uploads/{upload-id}
GET
Getapiv4projectsidusers — Get the users list of a project
/v1/api/v4/projects/{id}/users
GET
Getapiv4runnersidprojects — List runner's projects
/v1/api/v4/runners/{id}/projects
GET
Getapiv4usersuseridcontributedprojects — Get projects that a user has contributed to
/v1/api/v4/users/{user-id}/contributed-projects
GET
Getapiv4usersuseridprojects — Get a user projects
/v1/api/v4/users/{user-id}/projects
GET
Getapiv4usersuseridstarredprojects — Get projects starred by a user
/v1/api/v4/users/{user-id}/starred-projects

MCP Tools

get-list-visible-projects-authenticated

Get a list of visible projects for authenticated user

read-only idempotent
create-new-project

Create new project

create-new-project-specified-user

Create new project for a specified user. Only available to admin users.

get-single-project

Get a single project

read-only idempotent
update-existing-project

Update an existing project

idempotent
delete-project

Delete a project

idempotent
search-gitlab-within-project

Search on GitLab within a project

read-only idempotent
archive-project

Archive a project

get-list-audit-events-this

Get a list of audit events in this project.

read-only idempotent
get-specific-audit-event-this

Get a specific audit event in this project.

read-only idempotent
create-merge-request-missing-ci

Create merge request for missing ci config in project

fork-new-project-current-user

Fork new project for the current user or provided namespace.

remove-forked-relationship

Remove a forked_from relationship

idempotent
mark-this-project-forked-another

Mark this project as forked from another

list-forks-this-project

List forks of this project

read-only idempotent
get-ancestor-and-shared-groups

Get ancestor and shared groups for a project

read-only idempotent
start-housekeeping-task-project

Start the housekeeping task for a project

import-members-another-project

Import members from another project

get-list-invited-groups-this

Get a list of invited groups in this project

read-only idempotent
get-list-project-issues

Get a list of project issues

read-only idempotent
create-new-project-issue

Create a new project issue

get-single-project-issue

Get a single project issue

read-only idempotent
update-existing-issue

Update an existing issue

idempotent
delete-project-issue

Delete a project issue

idempotent
clone-existing-issue

Clone an existing issue

list-merge-requests-closing-issue

List merge requests closing issue

read-only idempotent
move-existing-issue

Move an existing issue

reorder-existing-issue

Reorder an existing issue

idempotent
get-statistics-list-project-issues

Get statistics for the list of project issues

read-only idempotent
get-languages-project-repository

Get languages in project repository

read-only idempotent
get-list-package-protection-rules

Get list of package protection rules for a project

read-only idempotent
create-package-protection-rule-project

Create a package protection rule for a project

update-package-protection-rule-project

Update a package protection rule for a project

idempotent
delete-package-protection-rule

Delete package protection rule

idempotent
check-pages-access-this-project

Check pages access of this project

read-only idempotent
get-list-container-registry-protection

Get list of container registry protection rules for a project

read-only idempotent
create-container-protection-rule-project

Create a container protection rule for a project

update-container-protection-rule-project

Update a container protection rule for a project

idempotent
delete-container-protection-rule

Delete container protection rule

idempotent
gets-list-container-protection-tag

Gets a list of container protection tag rules for a project.

read-only idempotent
create-container-protection-tag-rule

Create a container protection tag rule for a project. 5 rule limit per project.

update-container-protection-tag-rule

Update a container protection tag rule for a project.

idempotent
delete-container-protection-tag-rule

Delete container protection tag rule

idempotent
start-task-recalculate-repository-size

Start a task to recalculate repository size for a project

restore-project

Restore a project

list-project-s-runners

List project's runners

read-only idempotent
assign-runner-project

Assign a runner to project

reset-runner-registration-token-project

Reset the runner registration token for a project

unassign-project-runner-project

Unassign a project runner from the project

idempotent
share-project-group

Share the project with a group

remove-group-share

Remove a group share

idempotent
returns-group-that-can-be

Returns group that can be shared with the given project

read-only idempotent
star-project

Star a project

get-users-who-starred-project

Get the users who starred a project

read-only idempotent
get-list-project-fetch-statistics

Get the list of project fetch statistics for the last 30 days

read-only idempotent
show-storage-information

Show the storage information

read-only idempotent
list-all-terraform-state-protection

List all Terraform state protection rules for a project

read-only idempotent
transfer-project-new-namespace

Transfer a project to a new namespace

idempotent
get-namespaces-where-project-can

Get the namespaces to where the project can be transferred

read-only idempotent
unarchive-project

Unarchive a project

unstar-project

Unstar a project

upload-file

Upload a file

get-list-uploads-project

Get the list of uploads of a project

read-only idempotent
workhorse-authorize-file-upload

Workhorse authorize the file upload

download-single-project-upload-secret

Download a single project upload by secret and filename

read-only idempotent
delete-single-project-upload-secret

Delete a single project upload by secret and filename

idempotent
download-single-project-upload-id

Download a single project upload by ID

read-only idempotent
delete-single-project-upload-id

Delete a single project upload by ID

idempotent
get-users-list-project

Get the users list of a project

read-only idempotent
list-runner-s-projects

List runner's projects

read-only idempotent
get-projects-that-user-has

Get projects that a user has contributed to

read-only idempotent
get-user-projects

Get a user projects

read-only idempotent
get-projects-starred-user

Get projects starred by a user

read-only idempotent

Capability Spec

gitlab-ci-projects.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: GitLab API — projects
  description: 'GitLab API — projects. 73 operations. Lead operation: Search on GitLab within a project. Self-contained Naftiko
    capability covering one Gitlab Ci business surface.'
  tags:
  - Gitlab Ci
  - projects
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GITLAB_CI_API_KEY: GITLAB_CI_API_KEY
capability:
  consumes:
  - type: http
    namespace: gitlab-ci-projects
    baseUri: https://gitlab.com
    description: GitLab API — projects business capability. Self-contained, no shared references.
    resources:
    - name: api-v4-projects
      path: /api/v4/projects
      operations:
      - name: getapiv4projects
        method: GET
        description: Get a list of visible projects for authenticated user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: order_by
          in: query
          type: string
          description: Return projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only
            available to admins. Similarity is available when searching a
        - name: sort
          in: query
          type: string
          description: Return projects sorted in ascending and descending order
        - name: archived
          in: query
          type: boolean
          description: Limit by archived status
        - name: visibility
          in: query
          type: string
          description: Limit by visibility
        - name: search
          in: query
          type: string
          description: Return list of projects matching the search criteria
        - name: search_namespaces
          in: query
          type: boolean
          description: Include ancestor namespaces when matching search criteria
        - name: owned
          in: query
          type: boolean
          description: Limit by owned by authenticated user
        - name: starred
          in: query
          type: boolean
          description: Limit by starred status
        - name: imported
          in: query
          type: boolean
          description: Limit by imported by authenticated user
        - name: membership
          in: query
          type: boolean
          description: Limit by projects that the current user is a member of
        - name: with_issues_enabled
          in: query
          type: boolean
          description: Limit by enabled issues feature
        - name: with_merge_requests_enabled
          in: query
          type: boolean
          description: Limit by enabled merge requests feature
        - name: with_programming_language
          in: query
          type: string
          description: Limit to repositories which use the given programming language
        - name: min_access_level
          in: query
          type: integer
          description: Limit by minimum access level of authenticated user
        - name: id_after
          in: query
          type: integer
          description: Limit results to projects with IDs greater than the specified ID
        - name: id_before
          in: query
          type: integer
          description: Limit results to projects with IDs less than the specified ID
        - name: last_activity_after
          in: query
          type: string
          description: 'Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        - name: last_activity_before
          in: query
          type: string
          description: 'Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        - name: repository_storage
          in: query
          type: string
          description: Which storage shard the repository is on. Available only to admins
        - name: topic
          in: query
          type: array
          description: Comma-separated list of topics. Limit results to projects having all topics
        - name: topic_id
          in: query
          type: integer
          description: Limit results to projects with the assigned topic given by the topic ID
        - name: updated_before
          in: query
          type: string
          description: 'Return projects updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        - name: updated_after
          in: query
          type: string
          description: 'Return projects updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        - name: include_pending_delete
          in: query
          type: boolean
          description: Include projects in pending delete state. Can only be set by admins
        - name: marked_for_deletion_on
          in: query
          type: string
          description: Date when the project was marked for deletion
        - name: active
          in: query
          type: boolean
          description: Limit by projects that are not archived and not marked for deletion
        - name: wiki_checksum_failed
          in: query
          type: boolean
          description: Limit by projects where wiki checksum is failed
        - name: repository_checksum_failed
          in: query
          type: boolean
          description: Limit by projects where repository checksum is failed
        - name: include_hidden
          in: query
          type: boolean
          description: Include hidden projects. Can only be set by admins
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: simple
          in: query
          type: boolean
          description: Return only the ID, URL, name, and path of each project
        - name: statistics
          in: query
          type: boolean
          description: Include project statistics
        - name: with_custom_attributes
          in: query
          type: boolean
          description: Include custom attributes in the response
      - name: postapiv4projects
        method: POST
        description: Create new project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: postApiV4Projects
          in: body
          type: string
          required: true
    - name: api-v4-projects-user-user_id
      path: /api/v4/projects/user/{user_id}
      operations:
      - name: postapiv4projectsuseruserid
        method: POST
        description: Create new project for a specified user. Only available to admin users.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: integer
          description: The ID of a user
          required: true
        - name: postApiV4ProjectsUserUserId
          in: body
          type: string
          required: true
    - name: api-v4-projects-id
      path: /api/v4/projects/{id}
      operations:
      - name: getapiv4projectsid
        method: GET
        description: Get a single project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: statistics
          in: query
          type: boolean
          description: Include project statistics
        - name: with_custom_attributes
          in: query
          type: boolean
          description: Include custom attributes in the response
        - name: license
          in: query
          type: boolean
          description: Include project license data
      - name: putapiv4projectsid
        method: PUT
        description: Update an existing project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: putApiV4ProjectsId
          in: body
          type: string
          required: true
      - name: deleteapiv4projectsid
        method: DELETE
        description: Delete a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
    - name: api-v4-projects-id-(--)search
      path: /api/v4/projects/{id}/(-/)search
      operations:
      - name: getapiv4projectsidsearch
        method: GET
        description: Search on GitLab within a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: search
          in: query
          type: string
          description: The expression it should be searched for
          required: true
        - name: scope
          in: query
          type: string
          description: The scope of the search
          required: true
        - name: ref
          in: query
          type: string
          description: The name of a repository branch or tag. If not given, the default branch is used
        - name: state
          in: query
          type: string
          description: Filter results by state
        - name: confidential
          in: query
          type: boolean
          description: Filter results by confidentiality
        - name: type
          in: query
          type: array
          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'
        - name: fields
          in: query
          type: array
          description: Array of fields you wish to search. Available with advanced search.
        - name: num_context_lines
          in: query
          type: integer
          description: Number of context lines around each match. Available with advanced and exact code search. Introduced
            in GitLab 18.11.
        - name: regex
          in: query
          type: boolean
          description: Performs a regex code search. Available with exact code search. Introduced in GitLab 18.9
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
    - name: api-v4-projects-id-archive
      path: /api/v4/projects/{id}/archive
      operations:
      - name: postapiv4projectsidarchive
        method: POST
        description: Archive a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
    - name: api-v4-projects-id-audit_events
      path: /api/v4/projects/{id}/audit_events
      operations:
      - name: getapiv4projectsidauditevents
        method: GET
        description: Get a list of audit events in this project.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: created_after
          in: query
          type: string
          description: Return audit events created after the specified time
        - name: created_before
          in: query
          type: string
          description: Return audit events created before the specified time
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: id
          in: path
          type: integer
          required: true
    - name: api-v4-projects-id-audit_events-audit_event_id
      path: /api/v4/projects/{id}/audit_events/{audit_event_id}
      operations:
      - name: getapiv4projectsidauditeventsauditeventid
        method: GET
        description: Get a specific audit event in this project.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: audit_event_id
          in: path
          type: integer
          description: The ID of the audit event
          required: true
        - name: id
          in: path
          type: integer
          required: true
    - name: api-v4-projects-id-create_ci_config
      path: /api/v4/projects/{id}/create_ci_config
      operations:
      - name: postapiv4projectsidcreateciconfig
        method: POST
        description: Create merge request for missing ci config in project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          required: true
    - name: api-v4-projects-id-fork
      path: /api/v4/projects/{id}/fork
      operations:
      - name: postapiv4projectsidfork
        method: POST
        description: Fork new project for the current user or provided namespace.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: postApiV4ProjectsIdFork
          in: body
          type: string
          required: true
      - name: deleteapiv4projectsidfork
        method: DELETE
        description: Remove a forked_from relationship
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
    - name: api-v4-projects-id-fork-forked_from_id
      path: /api/v4/projects/{id}/fork/{forked_from_id}
      operations:
      - name: postapiv4projectsidforkforkedfromid
        method: POST
        description: Mark this project as forked from another
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: forked_from_id
          in: path
          type: string
          description: The ID of the project it was forked from
          required: true
    - name: api-v4-projects-id-forks
      path: /api/v4/projects/{id}/forks
      operations:
      - name: getapiv4projectsidforks
        method: GET
        description: List forks of this project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: order_by
          in: query
          type: string
          description: Return projects ordered by field. storage_size, repository_size, wiki_size, packages_size are only
            available to admins. Similarity is available when searching a
        - name: sort
          in: query
          type: string
          description: Return projects sorted in ascending and descending order
        - name: archived
          in: query
          type: boolean
          description: Limit by archived status
        - name: visibility
          in: query
          type: string
          description: Limit by visibility
        - name: search
          in: query
          type: string
          description: Return list of projects matching the search criteria
        - name: search_namespaces
          in: query
          type: boolean
          description: Include ancestor namespaces when matching search criteria
        - name: owned
          in: query
          type: boolean
          description: Limit by owned by authenticated user
        - name: starred
          in: query
          type: boolean
          description: Limit by starred status
        - name: imported
          in: query
          type: boolean
          description: Limit by imported by authenticated user
        - name: membership
          in: query
          type: boolean
          description: Limit by projects that the current user is a member of
        - name: with_issues_enabled
          in: query
          type: boolean
          description: Limit by enabled issues feature
        - name: with_merge_requests_enabled
          in: query
          type: boolean
          description: Limit by enabled merge requests feature
        - name: with_programming_language
          in: query
          type: string
          description: Limit to repositories which use the given programming language
        - name: min_access_level
          in: query
          type: integer
          description: Limit by minimum access level of authenticated user
        - name: id_after
          in: query
          type: integer
          description: Limit results to projects with IDs greater than the specified ID
        - name: id_before
          in: query
          type: integer
          description: Limit results to projects with IDs less than the specified ID
        - name: last_activity_after
          in: query
          type: string
          description: 'Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        - name: last_activity_before
          in: query
          type: string
          description: 'Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        - name: repository_storage
          in: query
          type: string
          description: Which storage shard the repository is on. Available only to admins
        - name: topic
          in: query
          type: array
          description: Comma-separated list of topics. Limit results to projects having all topics
        - name: topic_id
          in: query
          type: integer
          description: Limit results to projects with the assigned topic given by the topic ID
        - name: updated_before
          in: query
          type: string
          description: 'Return projects updated before the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        - name: updated_after
          in: query
          type: string
          description: 'Return projects updated after the specified datetime. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        - name: include_pending_delete
          in: query
          type: boolean
          description: Include projects in pending delete state. Can only be set by admins
        - name: marked_for_deletion_on
          in: query
          type: string
          description: Date when the project was marked for deletion
        - name: active
          in: query
          type: boolean
          description: Limit by projects that are not archived and not marked for deletion
        - name: wiki_checksum_failed
          in: query
          type: boolean
          description: Limit by projects where wiki checksum is failed
        - name: repository_checksum_failed
          in: query
          type: boolean
          description: Limit by projects where repository checksum is failed
        - name: include_hidden
          in: query
          type: boolean
          description: Include hidden projects. Can only be set by admins
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: simple
          in: query
          type: boolean
          description: Return only the ID, URL, name, and path of each project
        - name: with_custom_attributes
          in: query
          type: boolean
          description: Include custom attributes in the response
    - name: api-v4-projects-id-groups
      path: /api/v4/projects/{id}/groups
      operations:
      - name: getapiv4projectsidgroups
        method: GET
        description: Get ancestor and shared groups for a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: search
          in: query
          type: string
          description: Return list of groups matching the search criteria
        - name: skip_groups
          in: query
          type: array
          description: Array of group ids to exclude from list
        - name: with_shared
          in: query
          type: boolean
          description: Include shared groups
        - name: shared_visible_only
          in: query
          type: boolean
          description: Limit to shared groups user has access to
        - name: shared_min_access_level
          in: query
          type: integer
          description: Limit returned shared groups by minimum access level to the project
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
    - name: api-v4-projects-id-housekeeping
      path: /api/v4/projects/{id}/housekeeping
      operations:
      - name: postapiv4projectsidhousekeeping
        method: POST
        description: Start the housekeeping task for a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: postApiV4ProjectsIdHousekeeping
          in: body
          type: string
          required: true
    - name: api-v4-projects-id-import_project_members-project_id
      path: /api/v4/projects/{id}/import_project_members/{project_id}
      operations:
      - name: postapiv4projectsidimportprojectmembersprojectid
        method: POST
        description: Import members from another project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: project_id
          in: path
          type: integer
          description: The ID of the source project to import the members from.
          required: true
    - name: api-v4-projects-id-invited_groups
      path: /api/v4/projects/{id}/invited_groups
      operations:
      - name: getapiv4projectsidinvitedgroups
        method: GET
        description: Get a list of invited groups in this project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: relation
          in: query
          type: array
          description: Filter by group relation
        - name: search
          in: query
          type: string
          description: Search for a specific group
        - name: min_access_level
          in: query
          type: integer
          description: Limit by minimum access level of authenticated user
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: with_custom_attributes
          in: query
          type: boolean
          description: Include custom attributes in the response
    - name: api-v4-projects-id-issues
      path: /api/v4/projects/{id}/issues
      operations:
      - name: getapiv4projectsidissues
        method: GET
        description: Get a list of project issues
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project
          required: true
        - name: with_labels_details
          in: query
          type: boolean
          description: Return titles of labels and other details
        - name: state
          in: query
          type: string
          description: Return opened, closed, or all issues
        - name: closed_by_id
          in: query
          type: integer
          description: Return issues which were closed by the user with the given ID.
        - name: order_by
          in: query
          type: string
          description: Return issues ordered by `created_at`, `due_date`, `label_priority`, `milestone_due`, `popularity`,
            `priority`, `relative_position`, `title`, or `updated_at` fi
        - name: sort
          in: query
          type: string
          description: Return issues sorted in `asc` or `desc` order.
        - name: due_date
          in: query
          type: string
          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: `ove'
        - name: issue_type
          in: query
          type: string
          description: 'The type of the issue. Accepts: issue, incident, test_case, requirement, task, ticket'
        - name: labels
          in: query
          type: array
          description: Comma-separated list of label names
        - name: milestone
          in: query
          type: string
          description: Milestone title
        - name: milestone_id
          in: query
          type: string
          description: Return issues assigned to milestones with the specified timebox value ("Any", "None", "Upcoming" or
            "Started")
        - name: iids
          in: query
          type: array
          description: The IID array of issues
        - name: search
          in: query
          type: string
          description: Search issues for text present in the title, description, or any combination of these
        - name: in
          in: query
          type: string
          description: '`title`, `description`, or a string joining them with comma'
        - name: author_id
          in: query
          type: integer
          description: Return issues which are authored by the user with the given ID
        - name: author_username
          in: query
          type: string
          description: Return issues which are authored by the user with the given username
        - name: assignee_id
          in: query
          type: integer
          description: Return issues which are assigned to the user with the given ID
        - name: assignee_username
          in: query
          type: array
          description: Return issues which are assigned to the user with the given username
        - name: created_after
          in: query
          type: string
          description: Return issues created after the specified time
        - name: created_before
          in: query
          type: string
          description: Return issues created before the specified time
        - name: updated_after
          in: query
          type: string
          description: Return issues updated after the specified time
        - name: updated_before
          in: query
          type: string
          description: Return issues updated before the specified time
        - name: not[labels]
          in: query
          type: array
          description: Comma-separated list of label names
        - name: not[milestone]
          in: query
          type: string
          description: Milestone title
        - name: not[milestone_id]
          in: query
          type: string
          description: Return issues assigned to milestones without the specified timebox value ("Any", "None", "Upcoming"
            or "Started")
        - name: not[iids]
          in: query
          type: array
          description: The IID array of issues
        - name: not[author_id]
          in: query
          type: integer
          description: Return issues which are not authored by the user with the given ID
        - name: not[author_username]
          in: query
          type: string
          description: Return issues which are not authored by the user with the given username
        - name: not[assignee_id]
          in: query
          type: integer
          description: Return issues which are not assigned to the user with the given ID
        - name: not[assignee_username]
          in: query
          type: array
          description: Return issues which are not assigned to the user with the given username
        - name: not[weight]
          in: query
          type: integer
          description: Return issues without the specified weight
        - name: not[iteration_id]
          in: query
          type: integer
          description: Return issues which are not assigned to the iteration with the given ID
        - name: not[iteration_title]
          in: query
          type: string
          description: Return issues which are not assigned to the iteration with the given title
        - name: scope
          in: query
          type: string
          description: 'Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`'
        - name: my_reaction_emoji
          in: query
          type: string
          description: Return issues reacted by the authenticated user by the given emoji
        - name: confidential
          in: query
          type: boolean
          description: Filter confidential or public issues
        - name: weight
          in: query
          type: integer
          description: The weight of the issue
        - name: epic_id
          in: query
          type: integer
          description: The ID of an epic associated with the issues
        - name: health_status
          in: query
          type: string
          description: 'The health status of the issue. Must be one of: on_track, needs_attention, at_risk, none, any'
        - name: iteration_id
          in: query
          type: integer
          description: Return issues which are assigned to the iteration with the given ID
        - name: iteration_title
          in: query
          type: string
          description: Return issues which are assigned to the iteration with the given title
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: cursor
          in: query
          type: string
          description: Cursor for obtaining the next set of records
      - name: pos

# --- truncated at 32 KB (166 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/capabilities/gitlab-ci-projects.yaml