Documentation
Documentation
https://docs.gitlab.com/api/
APIReference
https://docs.gitlab.com/api/api_resources/
Authentication
https://docs.gitlab.com/api/rest/authentication/
swagger: '2.0'
info:
title: GitLab access_requests geo API
version: v4
description: Operations related to access requests
host: gitlab.com
produces:
- application/json
tags:
- name: geo
description: Operations related to Geo
paths:
/api/v4/geo/proxy:
get:
summary: Determine if a Geo site should proxy requests
description: Returns a Geo proxy response
produces:
- application/json
responses:
'200':
description: Returns a Geo proxy response
'403':
description: Forbidden
tags:
- geo
operationId: getApiV4GeoProxy
/api/v4/geo/retrieve/{replicable_name}/{replicable_id}:
get:
summary: Internal endpoint that returns a replicable file
description: Returns a replicable file from store (via CDN or sendfile)
produces:
- application/json
parameters:
- in: path
name: replicable_name
description: The replicable name of a replicator instance
type: string
required: true
example: package_file
- in: path
name: replicable_id
description: The replicable ID of a replicable instance
type: integer
format: int32
required: true
responses:
'200':
description: Returns a replicable file from store (via CDN or sendfile)
'401':
description: 401 Unauthorized
'404':
description: 404 Not found
tags:
- geo
operationId: getApiV4GeoRetrieveReplicableNameReplicableId
/api/v4/geo/repositories/{gl_repository}/pipeline_refs:
get:
summary: Used by secondary runners to verify the secondary instance has the very latest version
description: Returns the list of pipeline refs for the project
produces:
- application/json
parameters:
- in: path
name: gl_repository
description: The repository to check
type: string
required: true
responses:
'200':
description: Returns the list of pipeline refs for the project
schema:
type: array
items:
$ref: '#/definitions/API_Entities_Geo_PipelineRefs'
'401':
description: 401 Unauthorized
'404':
description: 404 Not found
tags:
- geo
operationId: getApiV4GeoRepositoriesGlRepositoryPipelineRefs
/api/v4/geo/status:
post:
summary: Internal endpoint that posts the current node status
description: Posts the current node status to the primary site
produces:
- application/json
consumes:
- application/json
parameters:
- name: postApiV4GeoStatus
in: body
required: true
schema:
$ref: '#/definitions/postApiV4GeoStatus'
responses:
'200':
description: Posts the current node status to the primary site
schema:
$ref: '#/definitions/API_Entities_GeoNodeStatus'
'400':
description: 400 Bad Request
'401':
description: 401 Unauthorized
tags:
- geo
operationId: postApiV4GeoStatus
/api/v4/geo/proxy_git_ssh/info_refs_upload_pack:
post:
summary: Internal endpoint that returns info refs upload pack for clone or pull operations
description: "Responsible for making HTTP GET /repo.git/info/refs?service=git-upload-pack\n request from secondary gitlab-shell to primary"
produces:
- application/json
consumes:
- application/json
parameters:
- name: postApiV4GeoProxyGitSshInfoRefsUploadPack
in: body
required: true
schema:
$ref: '#/definitions/postApiV4GeoProxyGitSshInfoRefsUploadPack'
responses:
'200':
description: "Responsible for making HTTP GET /repo.git/info/refs?service=git-upload-pack\n request from secondary gitlab-shell to primary"
'401':
description: 401 Unauthorized
tags:
- geo
operationId: postApiV4GeoProxyGitSshInfoRefsUploadPack
/api/v4/geo/proxy_git_ssh/upload_pack:
post:
summary: Internal endpoint that posts git-upload-pack for clone or pull operations
description: "Responsible for making HTTP POST /repo.git/git-upload-pack\n request from secondary gitlab-shell to primary"
produces:
- application/json
consumes:
- application/json
parameters:
- name: postApiV4GeoProxyGitSshUploadPack
in: body
required: true
schema:
$ref: '#/definitions/postApiV4GeoProxyGitSshUploadPack'
responses:
'200':
description: "Responsible for making HTTP POST /repo.git/git-upload-pack\n request from secondary gitlab-shell to primary"
'401':
description: 401 Unauthorized
tags:
- geo
operationId: postApiV4GeoProxyGitSshUploadPack
/api/v4/geo/proxy_git_ssh/info_refs_receive_pack:
post:
summary: Internal endpoint that returns git-received-pack output for git push
description: "Responsible for making HTTP GET /repo.git/info/refs?service=git-receive-pack\n request from secondary gitlab-shell to primary"
produces:
- application/json
consumes:
- application/json
parameters:
- name: postApiV4GeoProxyGitSshInfoRefsReceivePack
in: body
required: true
schema:
$ref: '#/definitions/postApiV4GeoProxyGitSshInfoRefsReceivePack'
responses:
'200':
description: "Responsible for making HTTP GET /repo.git/info/refs?service=git-receive-pack\n request from secondary gitlab-shell to primary"
'401':
description: 401 Unauthorized
tags:
- geo
operationId: postApiV4GeoProxyGitSshInfoRefsReceivePack
/api/v4/geo/proxy_git_ssh/receive_pack:
post:
summary: Internal endpoint that posts git-receive-pack for git push
description: "Responsible for making HTTP POST /repo.git/info/refs?service=git-receive-pack\n request from secondary gitlab-shell to primary"
produces:
- application/json
consumes:
- application/json
parameters:
- name: postApiV4GeoProxyGitSshReceivePack
in: body
required: true
schema:
$ref: '#/definitions/postApiV4GeoProxyGitSshReceivePack'
responses:
'200':
description: "Responsible for making HTTP POST /repo.git/info/refs?service=git-receive-pack\n request from secondary gitlab-shell to primary"
'401':
description: 401 Unauthorized
tags:
- geo
operationId: postApiV4GeoProxyGitSshReceivePack
/api/v4/geo/node_proxy/{id}/graphql:
post:
summary: Query the GraphQL endpoint of an existing Geo node
description: Query the GraphQL endpoint of an existing Geo node
produces:
- application/json
consumes:
- application/json
parameters:
- in: path
name: id
description: The ID of the Geo node
type: integer
format: int32
required: true
responses:
'200':
description: Query the GraphQL endpoint of an existing Geo node
'404':
description: 404 GeoNode Not Found
'500':
description: 500 Internal Server Error
tags:
- geo
operationId: postApiV4GeoNodeProxyIdGraphql
definitions:
postApiV4GeoProxyGitSshUploadPack:
type: object
properties:
secret_token:
type: string
description: "Secret token used to authenticate requests from gitlab-shell\n to Geo proxy endpoints"
data:
type: object
description: Object that contains the payload data for the Geo operation
properties:
gl_id:
type: string
description: ID of the user performing the operation
primary_repo:
type: string
description: Primary repository to clone or pull from
required:
- gl_id
- primary_repo
output:
type: string
description: Output from git-upload-pack
required:
- secret_token
- data
- output
description: "Responsible for making HTTP POST /repo.git/git-upload-pack\n request from secondary gitlab-shell to primary"
API_Entities_GeoNodeStatus:
type: object
properties:
geo_node_id:
type: string
projects_count:
type: string
container_repositories_replication_enabled:
type: string
ci_secure_files_count:
type: string
ci_secure_files_checksum_total_count:
type: string
ci_secure_files_checksummed_count:
type: string
ci_secure_files_checksum_failed_count:
type: string
ci_secure_files_synced_count:
type: string
ci_secure_files_failed_count:
type: string
ci_secure_files_registry_count:
type: string
ci_secure_files_verification_total_count:
type: string
ci_secure_files_verified_count:
type: string
ci_secure_files_verification_failed_count:
type: string
ci_secure_files_oldest_unsynced_time:
type: string
container_repositories_count:
type: string
container_repositories_checksum_total_count:
type: string
container_repositories_checksummed_count:
type: string
container_repositories_checksum_failed_count:
type: string
container_repositories_synced_count:
type: string
container_repositories_failed_count:
type: string
container_repositories_registry_count:
type: string
container_repositories_verification_total_count:
type: string
container_repositories_verified_count:
type: string
container_repositories_verification_failed_count:
type: string
container_repositories_oldest_unsynced_time:
type: string
dependency_proxy_blobs_count:
type: string
dependency_proxy_blobs_checksum_total_count:
type: string
dependency_proxy_blobs_checksummed_count:
type: string
dependency_proxy_blobs_checksum_failed_count:
type: string
dependency_proxy_blobs_synced_count:
type: string
dependency_proxy_blobs_failed_count:
type: string
dependency_proxy_blobs_registry_count:
type: string
dependency_proxy_blobs_verification_total_count:
type: string
dependency_proxy_blobs_verified_count:
type: string
dependency_proxy_blobs_verification_failed_count:
type: string
dependency_proxy_blobs_oldest_unsynced_time:
type: string
dependency_proxy_manifests_count:
type: string
dependency_proxy_manifests_checksum_total_count:
type: string
dependency_proxy_manifests_checksummed_count:
type: string
dependency_proxy_manifests_checksum_failed_count:
type: string
dependency_proxy_manifests_synced_count:
type: string
dependency_proxy_manifests_failed_count:
type: string
dependency_proxy_manifests_registry_count:
type: string
dependency_proxy_manifests_verification_total_count:
type: string
dependency_proxy_manifests_verified_count:
type: string
dependency_proxy_manifests_verification_failed_count:
type: string
dependency_proxy_manifests_oldest_unsynced_time:
type: string
design_management_repositories_count:
type: string
design_management_repositories_checksum_total_count:
type: string
design_management_repositories_checksummed_count:
type: string
design_management_repositories_checksum_failed_count:
type: string
design_management_repositories_synced_count:
type: string
design_management_repositories_failed_count:
type: string
design_management_repositories_registry_count:
type: string
design_management_repositories_verification_total_count:
type: string
design_management_repositories_verified_count:
type: string
design_management_repositories_verification_failed_count:
type: string
design_management_repositories_oldest_unsynced_time:
type: string
group_wiki_repositories_count:
type: string
group_wiki_repositories_checksum_total_count:
type: string
group_wiki_repositories_checksummed_count:
type: string
group_wiki_repositories_checksum_failed_count:
type: string
group_wiki_repositories_synced_count:
type: string
group_wiki_repositories_failed_count:
type: string
group_wiki_repositories_registry_count:
type: string
group_wiki_repositories_verification_total_count:
type: string
group_wiki_repositories_verified_count:
type: string
group_wiki_repositories_verification_failed_count:
type: string
group_wiki_repositories_oldest_unsynced_time:
type: string
job_artifacts_count:
type: string
job_artifacts_checksum_total_count:
type: string
job_artifacts_checksummed_count:
type: string
job_artifacts_checksum_failed_count:
type: string
job_artifacts_synced_count:
type: string
job_artifacts_failed_count:
type: string
job_artifacts_registry_count:
type: string
job_artifacts_verification_total_count:
type: string
job_artifacts_verified_count:
type: string
job_artifacts_verification_failed_count:
type: string
job_artifacts_oldest_unsynced_time:
type: string
lfs_objects_count:
type: string
lfs_objects_checksum_total_count:
type: string
lfs_objects_checksummed_count:
type: string
lfs_objects_checksum_failed_count:
type: string
lfs_objects_synced_count:
type: string
lfs_objects_failed_count:
type: string
lfs_objects_registry_count:
type: string
lfs_objects_verification_total_count:
type: string
lfs_objects_verified_count:
type: string
lfs_objects_verification_failed_count:
type: string
lfs_objects_oldest_unsynced_time:
type: string
merge_request_diffs_count:
type: string
merge_request_diffs_checksum_total_count:
type: string
merge_request_diffs_checksummed_count:
type: string
merge_request_diffs_checksum_failed_count:
type: string
merge_request_diffs_synced_count:
type: string
merge_request_diffs_failed_count:
type: string
merge_request_diffs_registry_count:
type: string
merge_request_diffs_verification_total_count:
type: string
merge_request_diffs_verified_count:
type: string
merge_request_diffs_verification_failed_count:
type: string
merge_request_diffs_oldest_unsynced_time:
type: string
package_files_count:
type: string
package_files_checksum_total_count:
type: string
package_files_checksummed_count:
type: string
package_files_checksum_failed_count:
type: string
package_files_synced_count:
type: string
package_files_failed_count:
type: string
package_files_registry_count:
type: string
package_files_verification_total_count:
type: string
package_files_verified_count:
type: string
package_files_verification_failed_count:
type: string
package_files_oldest_unsynced_time:
type: string
pages_deployments_count:
type: string
pages_deployments_checksum_total_count:
type: string
pages_deployments_checksummed_count:
type: string
pages_deployments_checksum_failed_count:
type: string
pages_deployments_synced_count:
type: string
pages_deployments_failed_count:
type: string
pages_deployments_registry_count:
type: string
pages_deployments_verification_total_count:
type: string
pages_deployments_verified_count:
type: string
pages_deployments_verification_failed_count:
type: string
pages_deployments_oldest_unsynced_time:
type: string
pipeline_artifacts_count:
type: string
pipeline_artifacts_checksum_total_count:
type: string
pipeline_artifacts_checksummed_count:
type: string
pipeline_artifacts_checksum_failed_count:
type: string
pipeline_artifacts_synced_count:
type: string
pipeline_artifacts_failed_count:
type: string
pipeline_artifacts_registry_count:
type: string
pipeline_artifacts_verification_total_count:
type: string
pipeline_artifacts_verified_count:
type: string
pipeline_artifacts_verification_failed_count:
type: string
pipeline_artifacts_oldest_unsynced_time:
type: string
project_repositories_count:
type: string
project_repositories_checksum_total_count:
type: string
project_repositories_checksummed_count:
type: string
project_repositories_checksum_failed_count:
type: string
project_repositories_synced_count:
type: string
project_repositories_failed_count:
type: string
project_repositories_registry_count:
type: string
project_repositories_verification_total_count:
type: string
project_repositories_verified_count:
type: string
project_repositories_verification_failed_count:
type: string
project_repositories_oldest_unsynced_time:
type: string
project_wiki_repositories_count:
type: string
project_wiki_repositories_checksum_total_count:
type: string
project_wiki_repositories_checksummed_count:
type: string
project_wiki_repositories_checksum_failed_count:
type: string
project_wiki_repositories_synced_count:
type: string
project_wiki_repositories_failed_count:
type: string
project_wiki_repositories_registry_count:
type: string
project_wiki_repositories_verification_total_count:
type: string
project_wiki_repositories_verified_count:
type: string
project_wiki_repositories_verification_failed_count:
type: string
project_wiki_repositories_oldest_unsynced_time:
type: string
snippet_repositories_count:
type: string
snippet_repositories_checksum_total_count:
type: string
snippet_repositories_checksummed_count:
type: string
snippet_repositories_checksum_failed_count:
type: string
snippet_repositories_synced_count:
type: string
snippet_repositories_failed_count:
type: string
snippet_repositories_registry_count:
type: string
snippet_repositories_verification_total_count:
type: string
snippet_repositories_verified_count:
type: string
snippet_repositories_verification_failed_count:
type: string
snippet_repositories_oldest_unsynced_time:
type: string
terraform_state_versions_count:
type: string
terraform_state_versions_checksum_total_count:
type: string
terraform_state_versions_checksummed_count:
type: string
terraform_state_versions_checksum_failed_count:
type: string
terraform_state_versions_synced_count:
type: string
terraform_state_versions_failed_count:
type: string
terraform_state_versions_registry_count:
type: string
terraform_state_versions_verification_total_count:
type: string
terraform_state_versions_verified_count:
type: string
terraform_state_versions_verification_failed_count:
type: string
terraform_state_versions_oldest_unsynced_time:
type: string
uploads_count:
type: string
uploads_checksum_total_count:
type: string
uploads_checksummed_count:
type: string
uploads_checksum_failed_count:
type: string
uploads_synced_count:
type: string
uploads_failed_count:
type: string
uploads_registry_count:
type: string
uploads_verification_total_count:
type: string
uploads_verified_count:
type: string
uploads_verification_failed_count:
type: string
uploads_oldest_unsynced_time:
type: string
packages_nuget_symbols_count:
type: string
packages_nuget_symbols_checksum_total_count:
type: string
packages_nuget_symbols_checksummed_count:
type: string
packages_nuget_symbols_checksum_failed_count:
type: string
packages_nuget_symbols_synced_count:
type: string
packages_nuget_symbols_failed_count:
type: string
packages_nuget_symbols_registry_count:
type: string
packages_nuget_symbols_verification_total_count:
type: string
packages_nuget_symbols_verified_count:
type: string
packages_nuget_symbols_verification_failed_count:
type: string
packages_nuget_symbols_oldest_unsynced_time:
type: string
supply_chain_attestations_count:
type: string
supply_chain_attestations_checksum_total_count:
type: string
supply_chain_attestations_checksummed_count:
type: string
supply_chain_attestations_checksum_failed_count:
type: string
supply_chain_attestations_synced_count:
type: string
supply_chain_attestations_failed_count:
type: string
supply_chain_attestations_registry_count:
type: string
supply_chain_attestations_verification_total_count:
type: string
supply_chain_attestations_verified_count:
type: string
supply_chain_attestations_verification_failed_count:
type: string
supply_chain_attestations_oldest_unsynced_time:
type: string
packages_helm_metadata_caches_count:
type: string
packages_helm_metadata_caches_checksum_total_count:
type: string
packages_helm_metadata_caches_checksummed_count:
type: string
packages_helm_metadata_caches_checksum_failed_count:
type: string
packages_helm_metadata_caches_synced_count:
type: string
packages_helm_metadata_caches_failed_count:
type: string
packages_helm_metadata_caches_registry_count:
type: string
packages_helm_metadata_caches_verification_total_count:
type: string
packages_helm_metadata_caches_verified_count:
type: string
packages_helm_metadata_caches_verification_failed_count:
type: string
packages_helm_metadata_caches_oldest_unsynced_time:
type: string
bulk_import_export_upload_uploads_count:
type: string
bulk_import_export_upload_uploads_checksum_total_count:
type: string
bulk_import_export_upload_uploads_checksummed_count:
type: string
bulk_import_export_upload_uploads_checksum_failed_count:
type: string
bulk_import_export_upload_uploads_synced_count:
type: string
bulk_import_export_upload_uploads_failed_count:
type: string
bulk_import_export_upload_uploads_registry_count:
type: string
bulk_import_export_upload_uploads_verification_total_count:
type: string
bulk_import_export_upload_uploads_verified_count:
type: string
bulk_import_export_upload_uploads_verification_failed_count:
type: string
bulk_import_export_upload_uploads_oldest_unsynced_time:
type: string
ai_vectorizable_file_uploads_count:
type: string
ai_vectorizable_file_uploads_checksum_total_count:
type: string
ai_vectorizable_file_uploads_checksummed_count:
type: string
ai_vectorizable_file_uploads_checksum_failed_count:
type: string
ai_vectorizable_file_uploads_synced_count:
type: string
ai_vectorizable_file_uploads_failed_count:
type: string
ai_vectorizable_file_uploads_registry_count:
type: string
ai_vectorizable_file_uploads_verification_total_count:
type: string
ai_vectorizable_file_uploads_verified_count:
type: string
ai_vectorizable_file_uploads_verification_failed_count:
type: string
ai_vectorizable_file_uploads_oldest_unsynced_time:
type: string
import_export_upload_uploads_count:
type: string
import_export_upload_uploads_checksum_total_count:
type: string
import_export_upload_uploads_checksummed_count:
type: string
import_export_upload_uploads_checksum_failed_count:
type: string
import_export_upload_uploads_synced_count:
type: string
import_export_upload_uploads_failed_count:
type: string
import_export_upload_uploads_registry_count:
type: string
import_export_upload_uploads_verification_total_count:
type: string
import_export_upload_uploads_verified_count:
type: string
import_export_upload_uploads_verification_failed_count:
type: string
import_export_upload_uploads_oldest_unsynced_time:
type: string
design_management_action_uploads_count:
type: string
design_management_action_uploads_checksum_total_count:
type: string
design_management_action_uploads_checksummed_count:
type: string
design_management_action_uploads_checksum_failed_count:
type: string
design_management_action_uploads_synced_count:
type: string
design_management_action_uploads_failed_count:
type: string
design_management_action_uploads_registry_count:
type: string
design_management_action_uploads_verification_total_count:
type: string
design_management_action_uploads_verified_count:
type: string
design_management_action_uploads_verification_failed_count:
type: string
design_management_action_uploads_oldest_unsynced_time:
type: string
user_uploads_count:
type: string
user_uploads_checksum_total_count:
type: string
user_uploads_checksummed_count:
type: string
user_uploads_checksum_failed_count:
type: string
user_uploads_synced_count:
type: string
user_uploads_failed_count:
type: string
user_uploads_registry_count:
type: string
user_uploads_verification_total_count:
type: string
user_uploads_verified_count:
type: string
user_uploads_verification_failed_count:
type: string
user_uploads_oldest_unsynced_time:
type: string
achievement_uploads_count:
type: string
achievement_uploads_checksum_total_count:
type: string
achievement_uploads_checksummed_count:
type: string
achievement_uploads_checksum_failed_count:
type: string
achievement_uploads_synced_count:
type: string
achievement_uploads_failed_count:
type: string
achievement_uploads_registry_count:
type: string
achievement_uploads_verification_total_count:
type: string
achievement_uploads_verified_count:
type: string
achievement_uploads_verification_failed_count:
type: string
achievement_uploads_oldest_unsynced_time:
type: string
group_uploads_count:
type: string
group_uploads_checksum_total_count:
type: string
group_uploads_checksummed_count:
type: string
group_uploads_checksum_failed_count:
type: string
group_uploads_synced_count:
type: string
group_uploads_failed_count:
type: string
group_uploads_registry_count:
type: string
group_uploads_verification_total_count:
type: string
group_uploads_verified_count:
type: string
group_uploads_verification_failed_count:
type: string
group_uploads_oldest_unsynced_time:
type: string
project_uploads_count:
type: string
project_uploads_checksum_total_count:
type: string
project_uploads_checksummed_count:
type: string
project_uploads_checksum_failed_count:
type: string
project_uploads_synced_count:
type: string
project_uploads_failed_count:
type: string
project_uploads_registry_count:
type: string
project_uploads_verification_total_count:
type: string
project_uploads_verified_count:
type: string
project_uploads_verification_failed_count:
type: string
project_uploads_oldest_unsynced_time:
type: string
abuse_report_uploads_count:
type: string
abuse_report_uploads_checksum_total_count:
type: string
abuse_report_uploads_checksummed_count:
type: string
abuse_report_uploads_checksum_failed_count:
type: string
abuse_report_uploads_synced_count:
type: string
abuse_report_uploads_failed_count:
type: string
abuse_report_uploads_registry_count:
type: string
abuse_report_uploads_verification_total_count:
type: string
abuse_report_uploads_verified_count:
type: string
abuse_report_uploads_verification_failed_count:
type: string
abuse_report_uploads_oldest_unsynced_time:
type: string
git_fetch_event_count_weekly:
type: string
git_push_event_count_weekly:
type: string
proxy_remote_requests_event_count_weekly:
type: string
proxy_local_requests_event_count_weekly:
type: string
repositories_checked_in_percentage:
type: string
replication_slots_used_in_percentage:
type: string
ci_secure_files_synced_in_percentage:
type: string
ci_secure_files_verified_in_percentage:
type: string
container_repositories_synced_in_percentage:
type: string
container_repositories_verified_in_percentage:
type: string
dependency_proxy_blobs_synced_in_percentage:
type: string
dependency_proxy_blobs_verified_in_percentage:
type: string
dependency_proxy_manifests_synced_in_percentage:
type: string
dependency_proxy_manifests_verified_in_percentage:
type: string
design_management_repositories_synced_in_percentage:
type: string
design_management_repositories_verified_in_percentage:
type: string
group_wiki_repositories_synced_in_percentage:
type: string
group_wiki_repositories_verified_in_percentage:
type: string
job_artifacts_synced_in_percentage:
type: string
job_artifacts_verified_in_percentage:
type: string
lfs_objects_synced_in_percentage:
type: string
lfs_objects_verified_in_percentage:
type: string
merge_request_diffs_synced_in_percentage:
type: string
merge_request_diffs_verified_in_percentage:
type: string
package_files_synced_in_percentage:
type: string
package_files_verified_in_percentage:
type: string
pages_deployments_synced_in_percentage:
type: string
pages_deployments_verified_in_percentage:
type: string
pipeline_artifacts_synced_in_percentage:
type: string
pipeline_artifacts_verified_in_percentage:
type: string
project_repositories_synced_in_percentage:
type: string
project_repositories_verified_in_percentage:
type: string
project_wiki_repositories_synced_in_percentage:
type: string
project_wiki_repositories_verified_in_percentage:
type: string
snippet_repositories_synced_in_percentage:
type: string
snippet_repositories_verified_in_percentage:
type: string
terraform_state_versio
# --- truncated at 32 KB (82 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/openapi/gitlab-ci-geo-api-openapi.yml