REST APIのリソース
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLab REST APIを使用すると、GitLabリソースをプログラムで制御できます。既存のツールとのインテグレーションを構築し、反復タスクを自動化し、カスタムレポートのデータを抽出します。Webインターフェースを使用せずに、プロジェクト、グループ、イシュー、マージリクエストにアクセスして操作します。
REST APIを使用して以下の操作を行います。
- プロジェクトの作成とユーザー管理を自動化する。
- 外部システムからCI/CDパイプラインをトリガーする。
- カスタムダッシュボード用にイシューとマージリクエストのデータを抽出する。
- GitLabをサードパーティアプリケーションと連携させる。
- 複数のリポジトリにわたるカスタムワークフローを実装する。
REST APIリソースは次のように編成されています。
プロジェクトリソース
以下の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ディストリビューション](packages/composer.md) | /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 Proxy | /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 |
| プロジェクトWiki | /projects/:id/wikis |
| プロジェクトレベルの変数 | /projects/:id/variables |
| プロジェクト(Webhookの設定を含む) | /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 gem | /projects/:id/packages/rubygems |
| Runner | /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 |
| グループWiki | /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(グループおよびプロジェクトでも利用可能) |
| コンプライアンスとポリシー | /admin/security/compliance_policy_settings |
| Pagesドメイン | /pages/domains(プロジェクトでも利用可能) |
| パーソナルアクセストークン | /personal_access_tokens |
| プランの制限 | /application/plan_limits |
| プロジェクトリポジトリのストレージ移動 | /project_repository_storage_moves |
| プロジェクト | /users/:id/projects(プロジェクトでも利用可能) |
| Runner | /runners(プロジェクトでも利用可能) |
| 検索 | /search(グループおよびプロジェクトでも利用可能) |
| サービスデータ | /usage_data(GitLabインスタンスの管理者ユーザーのみ) |
| 設定 | /application/settings |
| Sidekiqのメトリクス | /sidekiq |
| Sidekiqキューの管理 | /admin/sidekiq/queues/:queue_name |
| スニペットリポジトリのストレージ移動 | /snippet_repository_storage_moves |
| 統計 | /application/statistics |
| 提案 | /suggestions |
| システムフック | /hooks |
| To Do | /todos |
| トークン情報 | /admin/token |
| トピック | /topics |
| ユーザー | /users |
| Webコミット | /web_commits/public_key |
| バージョン | /version |
テンプレートリソース
エンドポイントは以下で利用できます。