REST API 资源

  • Tier: 基础版,专业版,旗舰版
  • Offering: JihuLab.com,私有化部署

极狐GitLab REST API 提供了对极狐GitLab 资源的编程控制。构建与现有工具的集成,自动化重复任务,并提取数据以进行自定义报告。无需使用网页界面即可访问和操作项目、群组、议题和合并请求。

使用 REST API 可以:

  1. 自动化项目创建和用户管理。
  2. 从外部系统触发 CI/CD 流水线。
  3. 提取议题和合并请求数据以创建自定义仪表板。
  4. 将极狐GitLab 与第三方应用集成。
  5. 在多个存储库中实施自定义工作流程。

REST API 资源组织为:

  1. 项目资源
  2. 群组资源
  3. 独立资源
  4. 模板资源

项目资源#

在项目上下文中可用的 API 资源如下:

资源可用端点
访问请求/projects/:id/access_requests(群组中也可用)
访问令牌/projects/:id/access_tokens(群组中也可用)
代理/projects/:id/cluster_agents
分支/projects/:id/repository/branches//projects/:id/repository/merged_branches
提交/projects/:id/repository/commits/projects/:id/statuses
容器注册表/projects/:id/registry/repositories
容器存储库保护规则/projects/:id/registry/protection/repository/rules
自定义属性/projects/:id/custom_attributes(群组和用户中也可用)
Composer 分发/projects/:id/packages/composer(群组中也可用)
Conan v1 分发/projects/:id/packages/conan(独立资源中也可用)
Conan v2 分发/projects/:id/packages/conan(独立资源中也可用)
Debian 分发/projects/:id/debian_distributions(群组中也可用)
Debian 软件包/projects/:id/packages/debian(群组中也可用)
依赖关系/projects/:id/dependencies
部署密钥/projects/:id/deploy_keys(独立资源中也可用)
部署令牌/projects/:id/deploy_tokens(群组和独立资源中也可用)
部署/projects/:id/deployments
讨论(线程评论)/projects/:id/issues/.../discussions/projects/:id/snippets/.../discussions/projects/:id/merge_requests/.../discussions/projects/:id/commits/.../discussions(群组中也可用)
草稿笔记(评论)/projects/:id/merge_requests/.../draft_notes
表情符号反应/projects/:id/issues/.../award_emoji/projects/:id/merge_requests/.../award_emoji/projects/:id/snippets/.../award_emoji
环境/projects/:id/environments
错误追踪/projects/:id/error_tracking/settings
事件/projects/:id/events(用户和独立资源中也可用)
外部状态检查/projects/:id/external_status_checks
特性标识用户列表/projects/:id/feature_flags_user_lists
特性标识/projects/:id/feature_flags
冻结期/projects/:id/freeze_periods
Go 代理/projects/:id/packages/go
Helm 存储库/projects/:id/packages/helm_repository
集成(前称为“服务”)/projects/:id/integrations
邀请/projects/:id/invitations(群组中也可用)
议题板/projects/:id/boards
议题链接/projects/:id/issues/.../links
议题统计/projects/:id/issues_statistics(群组和独立资源中也可用)
议题/projects/:id/issues(群组和独立资源中也可用)
迭代/projects/:id/iterations(群组中也可用)
项目 CI/CD 作业令牌范围/projects/:id/job_token_scope
作业/projects/:id/jobs/projects/:id/pipelines/.../jobs
作业产物/projects/:id/jobs/:job_id/artifacts
标签/projects/:id/labels
Maven 存储库/projects/:id/packages/maven(群组和独立资源中也可用)
成员/projects/:id/members(群组中也可用)
合并请求审批/projects/:id/approvals/projects/:id/merge_requests/.../approvals
合并请求/projects/:id/merge_requests(群组和独立资源中也可用)
合并列车/projects/:id/merge_trains
元数据/metadata
模型注册表/projects/:id/packages/ml_models/
笔记(评论)/projects/:id/issues/.../notes/projects/:id/snippets/.../notes/projects/:id/merge_requests/.../notes(群组中也可用)
通知设置/projects/:id/notification_settings(群组和独立资源中也可用)
NPM 存储库/projects/:id/packages/npm
NuGet 软件包/projects/:id/packages/nuget(群组中也可用)
软件包/projects/:id/packages
Pages 域/projects/:id/pages/domains(独立资源中也可用)
Pages 设置/projects/:id/pages
流水线计划/projects/:id/pipeline_schedules
流水线触发器/projects/:id/triggers
流水线/projects/:id/pipelines
项目徽章/projects/:id/badges
项目集群/projects/:id/clusters
项目导入/导出/projects/:id/export/projects/import/projects/:id/import
项目里程碑/projects/:id/milestones
项目片段/projects/:id/snippets
项目模板/projects/:id/templates
项目漏洞/projects/:id/vulnerabilities
项目维基/projects/:id/wikis
项目级变量/projects/:id/variables
项目 包括设置 Webhooks/projects/projects/:id/hooks(用户中也可用)
保护分支/projects/:id/protected_branches
保护容器注册表/projects/:id/registry/protection/rules
保护环境/projects/:id/protected_environments
保护软件包/projects/:id/packages/protection/rules
保护标签/projects/:id/protected_tags
PyPI 软件包/projects/:id/packages/pypi(群组中也可用)
发布链接/projects/:id/releases/.../assets/links
发布/projects/:id/releases
远程镜像/projects/:id/remote_mirrors
存储库/projects/:id/repository
存储库文件/projects/:id/repository/files
存储库子模块/projects/:id/repository/submodules
资源标签事件/projects/:id/issues/.../resource_label_events/projects/:id/merge_requests/.../resource_label_events(群组中也可用)
Ruby gems/projects/:id/packages/rubygems
Runners/projects/:id/runners(独立资源中也可用)
搜索/projects/:id/search(群组和独立资源中也可用)
标签/projects/:id/repository/tags
Terraform 模块/projects/:id/packages/terraform/modules(独立资源中也可用)
验证 .gitlab-ci.yml 文件/projects/:id/ci/lint
漏洞/vulnerabilities/:id
漏洞导出/projects/:id/vulnerability_exports
漏洞发现/projects/:id/vulnerability_findings

群组资源#

在群组上下文中可用的 API 资源如下:

资源可用端点
访问请求/groups/:id/access_requests/(项目中也可用)
访问令牌/groups/:id/access_tokens(项目中也可用)
自定义属性/groups/:id/custom_attributes(项目和用户中也可用)
Debian 分发/groups/:id/-/packages/debian(项目中也可用)
部署令牌/groups/:id/deploy_tokens(项目和独立资源中也可用)
讨论(评论和线程)/groups/:id/epics/.../discussions(项目中也可用)
史诗议题/groups/:id/epics/.../issues
史诗链接/groups/:id/epics/.../epics
史诗/groups/:id/epics
群组/groups/groups/.../subgroups
群组徽章/groups/:id/badges
群组议题板/groups/:id/boards
群组迭代/groups/:id/iterations(项目中也可用)
群组标签/groups/:id/labels
群组级变量/groups/:id/variables
群组里程碑/groups/:id/milestones
群组发布/groups/:id/releases
群组 SSH 证书/groups/:id/ssh_certificates
群组维基/groups/:id/wikis
邀请/groups/:id/invitations(项目中也可用)
议题/groups/:id/issues(项目和独立资源中也可用)
议题统计/groups/:id/issues_statistics(项目和独立资源中也可用)
关联史诗/groups/:id/epics/.../related_epics
成员角色/groups/:id/member_roles
成员/groups/:id/members(项目中也可用)
合并请求/groups/:id/merge_requests(项目和独立资源中也可用)
笔记(评论)/groups/:id/epics/.../notes(项目中也可用)
通知设置/groups/:id/notification_settings(项目和独立资源中也可用)
资源标签事件/groups/:id/epics/.../resource_label_events(项目中也可用)
搜索/groups/:id/search(项目和独立资源中也可用)

独立资源#

以下 API 资源在项目和群组上下文之外可用(包括 /users):

资源可用端点
外观/application/appearance
应用程序/applications
审核事件/audit_events
头像/avatar
广播消息/broadcast_messages
代码片段/snippets
代码建议/code_suggestions
自定义属性/users/:id/custom_attributes(群组和项目中也可用)
依赖列表导出/pipelines/:id/dependency_list_exports/projects/:id/dependency_list_exports/groups/:id/dependency_list_exports/security/dependency_list_exports/:id/security/dependency_list_exports/:id/download
部署密钥/deploy_keys(项目中也可用)
部署令牌/deploy_tokens(项目和群组中也可用)
事件/events/users/:id/events(项目中也可用)
特性标识/features
Geo 节点/geo_nodes
群组活动分析/analytics/group_activity/{issues_count}
群组存储库存储迁移/group_repository_storage_moves
从 GitHub 导入存储库/import/github
从 Bitbucket Server 导入存储库/import/bitbucket_server
实例集群/admin/clusters
实例级 CI/CD 变量/admin/ci/variables
议题统计/issues_statistics(群组和项目中也可用)
议题/issues(群组和项目中也可用)
作业/job
密钥/keys
许可证/license
Markdown/markdown
合并请求/merge_requests(群组和项目中也可用)
命名空间/namespaces
通知设置/notification_settings(群组和项目中也可用)
Pages 域/pages/domains(项目中也可用)
个人访问令牌/personal_access_tokens
计划限制/application/plan_limits
项目存储库存储迁移/project_repository_storage_moves
项目/users/:id/projects(项目中也可用)
Runners/runners(项目中也可用)
搜索/search(群组和项目中也可用)
服务数据/usage_data(仅限极狐GitLab 实例 管理员 用户)
设置/application/settings
Sidekiq 指标/sidekiq
Sidekiq 队列管理/admin/sidekiq/queues/:queue_name
片段存储库存储迁移/snippet_repository_storage_moves
统计/application/statistics
建议/suggestions
系统钩子/hooks
待办事项/todos
令牌信息/admin/token
主题/topics
用户/users
Web 提交/web_commits/public_key
版本/version

模板资源#

可用端点包括:

  1. Dockerfile 模板
  2. .gitignore 模板
  3. 极狐GitLab CI/CD YAML 模板
  4. 开源许可证模板