Docs: Standardize API operation names and descriptions
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Hi community contributors!
👋 Do you want to work on this issue? Please follow all instructions below, and please work on only 3 files at a time, to give everyone a chance to contribute. Thank you!
MRs created for this issue between January 22 and January 29, 2026, are eligible for the latest GitLab Hackathon!
If you are new contributing, see: https://about.gitlab.com/community/contribute/. The linked tutorial will help you get started as a contributor!
Problem to solve
The markdown API documentation files in /doc/api/ use inconsistent operation names and descriptions. We need to standardize these to follow GitLab's RESTful API style guide for better consistency and clarity across all API documentation.
Implementation plan
You don't need to be assigned to this issue to work on it. To contribute:
- Review the list of available files in
/doc/api/and put your username next to the files you want to work on. Please choose only 3 files at a time, to give everyone a chance. When you have completed work on those files, you can start working on the next batch of files. - Review operation titles and descriptions for the files.
- Standardize the titles to use approved verbs.
- The title is the section heading for operation. For example:
## Create an application,## List all events, or### Create a group access token. - Many operations may already use the standard verb (or the verb that best matches the operation).
- For details, see Operation titles.
- The title is the section heading for operation. For example:
- Standardize the first sentence of the operation description.
- The description is the paragraph after the heading, or history or details blocks.
- This first sentence should broadly match what is used for the heading. For example:
Creates an application,List all events associated with the user, orCreates a group access token for a specified group. - For details, see Operation description.
- Open a merge request using the Documentation merge request description template. Include all your changes in a single MR, do not open multiple MRs for changes to the same file.
- In the merge request description, include this text:
https://gitlab.com/gitlab-org/gitlab/-/work_items/585399
After your MR is merged, update the spreadsheet and select 'Merged'.
Examples
Updated headings
Update the titles for each operation to use consistent verbs based on HTTP method. For details on the recommended verbs for each HTTP method, see Operation titles.
| HTTP Method | Original | Updated |
|---|---|---|
GET (Singleton) |
List projects and groups that a user is a member of |
Retrieve membership list for a user |
GET (Singleton) |
Get a single pipeline |
Retrieve a pipeline |
GET (List) |
List project pipelines |
List all project pipelines |
GET (List) |
List group issues |
List all group issues |
PUT |
Update pipeline metadata |
Update a pipeline |
POST |
Create repository branch |
Create a repository branch |
POST |
Protect repository branch |
Protect a repository branch |
DELETE |
Unprotect repository branch |
Unprotect a repository branch |
DELETE |
Delete a pipeline |
Delete a pipeline |
Note
The style guide verb list is not comprehensive. There may be times when a non-standard verb just makes more sense. Use your best judgment!
Updated introduction
Update the first sentence for the description of each operation based on the title. For details, see Operation description. The first sentence should broadly repeat the title of the operation.
In many cases it can be helpful to add a little more context to this sentence. Generally, it can be helpful to highlight the most important element from the path param. For example, if the request includes a specific group ID, you may want to mention that in the description (Remove a member from a specified group).Sometimes there may be multiple elements in the request path, just use your best judgement to highlight the most important element. For example, Deletes a specified issue from a specified project sounds redundant, but Deletes a specified issue from a project still gets the point across.
If you don't feel confident in adding this extra context, it's still totally acceptable to just use the basic structure.
| HTTP Method | Original | Basic | Advanced |
|---|---|---|---|
GET (Singleton) |
List projects and groups that a user is a member of |
Retrieve membership list for a user |
Retrieves the membership list for a specified user |
GET (Singleton) |
Retrieve a pipeline |
Retrieves a pipeline |
Retrieves a specified pipeline for a project |
GET (List) |
List all project pipelines |
Lists all project pipelines |
Lists all pipelines for a specified project |
GET (List) |
List all group issues |
Lists all group issues |
Lists all issues for a specified group |
PUT |
Update a pipeline |
Updates a pipeline |
Updates a specified pipeline for a project |
POST |
Create a repository branch |
Creates a repository branch |
Creates a repository branch for a specified project |
POST |
Protect a repository branch |
Protects a repository branch |
Protects a specified repository branch for a project |
DELETE |
Unprotect a repository branch |
Unprotects a repository branch |
Unprotects a specified repository branch for a project |
DELETE |
Delete a pipeline |
Deletes a pipeline |
Deletes a specified pipeline for a project |
Note
- It may be common for you to only need to update the description and the title may be correct.
- There may be existing content already used in the description. If so, just add the standard structure first, and adjust the existing text to fit.
Who can address the issue
Community contributors with familiarity with GitLab's API documentation and the RESTful API style guide. No special expertise required—this is a great opportunity for documentation improvements.
Other links/references
Available files
(To be updated by GitLab team members)
Completed
Click to expand
- access_requests.md
- admin/token.md
- admin_sidekiq_queues.md
- alert_management_alerts.md
- appearance.md
- applications.md
- attestations.md
- audit_events.md
- avatar.md
- branches.md
- broadcast_messages.md
- bulk_imports.md
- chat.md
- cluster_agents.md
- cluster_discovery.md
- code_suggestions.md
- compliance_policy_settings.md
- container_registry.md
- container_repository_protection_rules.md
- container_virtual_registries.md
- custom_attributes.md
- database_migrations.md
- deploy_keys.md
- deploy_tokens.md
- deployments.md
- dora/metrics.md
- draft_notes.md
- emoji_reactions.md
- environments.md
- epic_issues.md
- epic_links.md
- epics.md
- feature_flags.md
- features.md
- freeze_periods.md
- group_activity_analytics.md
- group_badges.md
- group_boards.md
- group_clusters.md
- group_enterprise_users.md
- group_epic_boards.md
- group_import_export.md
- group_labels.md
- group_members.md
- group_milestones.md
- group_releases.md
- group_repository_storage_moves.md
- group_security_settings.md
- group_ssh_certificates.md
- group_webhooks.md
- group_wikis.md
- import.md
- instance_clusters.md
- instance_level_ci_variables.md
- issue_links.md
- issues.md
- issues_statistics.md
- iterations.md
- keys.md
- labels.md
- license.md
- linked_epics.md
- lint.md
- merge_request_context_commits.md
- merge_requests.md
- merge_trains.md
- metadata.md
- milestones.md
- model_registry.md
- namespaces.md
- notes.md
- notification_settings.md
- organizations.md
- packages/composer.md
- packages/conan_v1.md
- packages/conan_v2.md
- packages/debian.md
- packages/debian_group_distributions.md
- packages/debian_project_distributions.md
- packages/go_proxy.md
- packages/helm.md
- packages/maven.md
- packages/nuget.md
- packages/pypi.md
- packages/terraform-modules.md
- packages.md
- personal_access_tokens.md
- pipeline_schedules.md
- pipeline_triggers.md
- pipelines.md
- plan_limits.md
- project_access_tokens.md
- project_aliases.md
- project_badges.md
- project_markdown_uploads.md
- project_snippets.md
- releases/links.md
- repository_submodules.md
- resource_groups.md
- resource_iteration_events.md
- resource_label_events.md
- resource_milestone_events.md
- resource_state_events.md
- resource_weight_events.md
- runner_controller_tokens.md
- runner_controllers.md
- runners.md
- saml.md
- scim.md
- sidekiq_metrics.md
- snippet_repository_storage_moves.md
- statistics.md
- status_checks.md
- suggestions.md
- system_hooks.md
- templates/dockerfiles.md
- templates/gitignores.md
- templates/gitlab_ci_ymls.md
- templates/licenses.md
- todos.md
- topics.md
- usage_data.md
- user_email_addresses.md
- user_follow_unfollow.md
- user_keys.md
- user_moderation.md
- user_tokens.md
- users.md
- virtual_registries_cleanup_policies.md
- vulnerabilities.md
- vulnerability_archive_exports.md
- vulnerability_exports.md
- vulnerability_findings.md
- web_commits.md
- wikis.md
In progress
Click to expand
- admin/data_management.md
- commits.md
- discussions.md
- geo_nodes.md
- geo_sites.md
- group_protected_branches.md
- groups.md
- job_artifacts.md
- jobs.md
- maven_virtual_registries.md
- members.md
- merge_request_approval_settings.md
- merge_request_approvals.md
- product_analytics.md
- project_clusters.md
- project_forks.md
- project_import_export.md
- project_job_token_scopes.md
- project_templates.md
- project_vulnerabilities.md
- project_webhooks.md
- protected_environments.md
- protected_tags.md
- releases/_index.md
- remote_mirrors.md
- repositories.md
- repository_files.md
- search.md
- search_admin.md
- secure_files.md
- snippets.md
- tags.md
Need to complete
Click to expand
- boards.md
- dependencies.md
- dependency_list_export.md
- dependency_proxy.md
- error_tracking.md
- events.md
- experiments.md
- external_controls.md
- feature_flag_user_lists.md
- google_cloud_integration.md
- group_access_tokens.md
- group_integrations.md
- group_iterations.md
- group_ldap_links.md
- group_level_variables.md
- group_markdown_uploads.md
- group_placeholder_reassignments.md
- group_protected_environments.md
- group_push_rules.md
- group_relations_export.md
- invitations.md
- markdown.md
- packages/npm.md
- packages/rubygems.md
- pages.md
- pages_domains.md
- project_integrations.md
- project_level_variables.md
- project_members.md
- project_packages_protection_rules.md
- project_pull_mirroring.md
- project_push_rules.md
- project_relations_export.md
- project_repository_storage_moves.md
- project_security_settings.md
- project_starring.md
- project_statistics.md
- projects.md
- protected_branches.md
- service_accounts.md
- settings.md