プロジェクトAPI

プロジェクトの可視性レベル

GitLabのプロジェクトは非公開、内部、公開のいずれかにすることができます。 これはプロジェクトのvisibility フィールドによって決まります。

プロジェクトの可視性レベルの値は以下のとおりです:

  • privateプロジェクトへのアクセスは、ユーザーごとに明示的に許可する必要があります。
  • internalプロジェクトのクローンは、ログインしているユーザーであれば誰でも作成できます。
  • public認証なしでプロジェクトにアクセスできます。

プロジェクトマージ方式

merge_method 、現在3つのオプションからお選びいただけます:

  • mergeマージごとにマージコミットが作成され、競合がない限りマージが許可されます。
  • rebase_merge: マージコミットはマージごとに作成されますが、マージは fast-forward マージが可能な場合にのみ許可されます。 こうすることで、このマージリクエストがビルドされた場合、ターゲットブランチにマージした後もビルドされるようにすることができます。
  • ffマージコミットは作成されず、すべてのマージは fast-forward されます。つまり、マージはブランチを fast-forward できる場合にのみ許可されます。

すべてのプロジェクトをリストアップ

GitLab に公開されている、認証済みユーザのプロジェクトの一覧を取得します。 認証なしでアクセスした場合は、”simple” フィールドを持つ公開プロジェクトのみが返されます。

GET /projects
属性 タイプ 必須 説明
archived ブーリアン いいえ アーカイブ状態による制限
visibility いいえ 視認性による制限public,internal, またはprivate
order_by いいえ idnamepathcreated_atupdated_atlast_activity_at のいずれかのフィールドで並べ替えられたプロジェクトを返します。repository_sizestorage_sizewiki_size のいずれかのフィールドは管理者にのみ許可されます。 デフォルトは次のとおりです。created_at
sort いいえ プロジェクトをasc またはdesc 順番に descソートして返しますdesc 。 デフォルトは desc
search いいえ 検索条件に一致するプロジェクトのリストを返します。
search_namespaces ブーリアン いいえ 検索条件に一致するときに祖先の名前空間を含めます。 デフォルトはfalse
simple ブーリアン いいえ 各プロジェクトについて、限定されたフィールドのみを返します。 認証がない場合、単純な_フィールドのみが_返されるため、これは使用できません。
owned ブーリアン いいえ 現在のユーザーが明示的に所有するプロジェクトによる制限
membership ブーリアン いいえ 現在のユーザーが所属しているプロジェクトによる制限
starred ブーリアン いいえ 現在のユーザーがスターを付けたプロジェクトで制限
statistics ブーリアン いいえ プロジェクト統計を含む
with_custom_attributes ブーリアン いいえ レスポンスにカスタム属性を含める(管理者のみ)
with_issues_enabled ブーリアン いいえ 有効なイシュー機能による制限
with_merge_requests_enabled ブーリアン いいえ 有効化されたマージリクエスト機能による制限
with_programming_language いいえ 指定されたプログラミング言語を使用するプロジェクトによる制限
wiki_checksum_failed ブーリアン いいえ wikiチェックサム計算に失敗したプロジェクトを制限( GitLab Premium11.2で導入)
repository_checksum_failed ブーリアン いいえ リポジトリのチェックサム計算に失敗したプロジェクトを制限( GitLab Premium11.2で導入)
min_access_level 整数 いいえ 現在のユーザーの最小アクセスレベルによる制限
id_after 整数 いいえ 指定したIDより大きいIDを持つプロジェクトに結果を限定します。
id_before 整数 いいえ 指定した ID よりも小さい ID を持つプロジェクトに結果を限定します。
last_activity_after 日時 いいえ 指定した時間以降に last_activity が行われたプロジェクトに結果を限定します。 フォーマット:ISO 8601 YYYY-MM-DDTHH:MM:SSZ
last_activity_before 日時 いいえ 指定した時間以前に last_activity が行われたプロジェクトに結果を限定します。 フォーマット:ISO 8601 YYYY-MM-DDTHH:MM:SSZ
repository_storage いいえ 結果を repository_storage に保存されているプロジェクトに限定します。 管理者のみ利用可能です。
注:このエンドポイントは、選択されたorder_by オプションのキーセットのページ分割をサポートしています。

simple=true またはユーザーが認証されていない場合、次のようなものが返されます:

[
  {
    "id": 4,
    "description": null,
    "default_branch": "master",
    "ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",
    "http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",
    "web_url": "http://example.com/diaspora/diaspora-client",
    "readme_url": "http://example.com/diaspora/diaspora-client/blob/master/README.md",
    "tag_list": [
      "example",
      "disapora client"
    ],
    "name": "Diaspora Client",
    "name_with_namespace": "Diaspora / Diaspora Client",
    "path": "diaspora-client",
    "path_with_namespace": "diaspora/diaspora-client",
    "created_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "forks_count": 0,
    "avatar_url": "http://example.com/uploads/project/avatar/4/uploads/avatar.png",
    "star_count": 0,
  },
  {
    "id": 6,
    "description": null,
    "default_branch": "master",
...

ユーザーが認証され、simple が設定されていない場合、次のように返されます:

[
  {
    "id": 4,
    "description": null,
    "default_branch": "master",
    "visibility": "private",
    "ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",
    "http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",
    "web_url": "http://example.com/diaspora/diaspora-client",
    "readme_url": "http://example.com/diaspora/diaspora-client/blob/master/README.md",
    "tag_list": [
      "example",
      "disapora client"
    ],
    "owner": {
      "id": 3,
      "name": "Diaspora",
      "created_at": "2013-09-30T13:46:02Z"
    },
    "name": "Diaspora Client",
    "name_with_namespace": "Diaspora / Diaspora Client",
    "path": "diaspora-client",
    "path_with_namespace": "diaspora/diaspora-client",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false,
    "created_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "namespace": {
      "id": 3,
      "name": "Diaspora",
      "path": "diaspora",
      "kind": "group",
      "full_path": "diaspora"
    },
    "import_status": "none",
    "archived": false,
    "avatar_url": "http://example.com/uploads/project/avatar/4/uploads/avatar.png",
    "shared_runners_enabled": true,
    "forks_count": 0,
    "star_count": 0,
    "runners_token": "b8547b1dc37721d05889db52fa2f02",
    "ci_default_git_depth": 50,
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "autoclose_referenced_issues": true,
    "suggestion_commit_message": null,
    "marked_for_deletion_at": "2020-04-03", // Deprecated and will be removed in API v5 in favor of marked_for_deletion_on
    "marked_for_deletion_on": "2020-04-03",
    "statistics": {
      "commit_count": 37,
      "storage_size": 1038090,
      "repository_size": 1038090,
      "wiki_size" : 0,
      "lfs_objects_size": 0,
      "job_artifacts_size": 0,
      "packages_size": 0,
      "snippets_size": 0
    },
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members"
    },
  },
  {
    "id": 6,
    "description": null,
    "default_branch": "master",
    "visibility": "private",
    "ssh_url_to_repo": "git@example.com:brightbox/puppet.git",
    "http_url_to_repo": "http://example.com/brightbox/puppet.git",
    "web_url": "http://example.com/brightbox/puppet",
    "readme_url": "http://example.com/brightbox/puppet/blob/master/README.md",
    "tag_list": [
      "example",
      "puppet"
    ],
    "owner": {
      "id": 4,
      "name": "Brightbox",
      "created_at": "2013-09-30T13:46:02Z"
    },
    "name": "Puppet",
    "name_with_namespace": "Brightbox / Puppet",
    "path": "puppet",
    "path_with_namespace": "brightbox/puppet",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false,
    "created_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "namespace": {
      "id": 4,
      "name": "Brightbox",
      "path": "brightbox",
      "kind": "group",
      "full_path": "brightbox"
    },
    "import_status": "none",
    "import_error": null,
    "permissions": {
      "project_access": {
        "access_level": 10,
        "notification_level": 3
      },
      "group_access": {
        "access_level": 50,
        "notification_level": 3
      }
    },
    "archived": false,
    "avatar_url": null,
    "shared_runners_enabled": true,
    "forks_count": 0,
    "star_count": 0,
    "runners_token": "b8547b1dc37721d05889db52fa2f02",
    "ci_default_git_depth": 0,
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "auto_devops_enabled": true,
    "auto_devops_deploy_strategy": "continuous",
    "repository_storage": "default",
    "approvals_before_merge": 0,
    "mirror": false,
    "mirror_user_id": 45,
    "mirror_trigger_builds": false,
    "only_mirror_protected_branches": false,
    "mirror_overwrites_diverged_branches": false,
    "external_authorization_classification_label": null,
    "packages_enabled": true,
    "service_desk_enabled": false,
    "service_desk_address": null,
    "autoclose_referenced_issues": true,
    "suggestion_commit_message": null,
    "statistics": {
      "commit_count": 12,
      "storage_size": 2066080,
      "repository_size": 2066080,
      "wiki_size" : 0,
      "lfs_objects_size": 0,
      "job_artifacts_size": 0,
      "packages_size": 0,
      "snippets_size": 0
    },
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members"
    }
  }
]
注意:GitLabSilver、Premium、またはそれ以上のユーザーについては、marked_for_deletion_at 属性は非推奨となり、API v5 では削除され、marked_for_deletion_on 属性が使用される予定です。

GitLabStarter、Bronze以上のユーザーには、approvals_before_merge パラメーターも表示されます:

[
  {
    "id": 4,
    "description": null,
    "approvals_before_merge": 0,
    ...
  }
]

カスタム属性でフィルタリングできます:

GET /projects?custom_attributes[key]=value&custom_attributes[other_key]=other_value

ページネーションの制限

GitLab 13.0以降、オフセットベースのページネーションは50,000レコードまでに制限されます。 この制限を超えてプロジェクトを検索するには、キーセットのページネーションが必要になります。

キーセットのページネーションは、order_by=idにのみ対応しています。 その他のソートオプションは使用できません。

ユーザープロジェクト一覧

指定したユーザーが所有する可視プロジェクトの一覧を取得します。 認証なしでアクセスした場合は、公開プロジェクトのみが返されます。

GET /users/:user_id/projects
属性 タイプ 必須 説明
user_id はい ユーザーのIDまたはユーザー名
archived ブーリアン いいえ アーカイブ状態による制限
visibility いいえ 視認性による制限public,internal, またはprivate
order_by いいえ idnamepathcreated_atupdated_atlast_activity_at のフィールド順にプロジェクトを返します。 デフォルトはcreated_at
sort いいえ プロジェクトをasc またはdesc 順番に descソートして返しますdesc 。 デフォルトは desc
search いいえ 検索条件に一致するプロジェクトのリストを返します。
simple ブーリアン いいえ 各プロジェクトについて、限定されたフィールドのみを返します。 認証がない場合、単純な_フィールドのみが_返されるため、これは使用できません。
owned ブーリアン いいえ 現在のユーザーが明示的に所有するプロジェクトによる制限
membership ブーリアン いいえ 現在のユーザーが所属しているプロジェクトによる制限
starred ブーリアン いいえ 現在のユーザーがスターを付けたプロジェクトで制限
statistics ブーリアン いいえ プロジェクト統計を含む
with_custom_attributes ブーリアン いいえ レスポンスにカスタム属性を含める(管理者のみ)
with_issues_enabled ブーリアン いいえ 有効なイシュー機能による制限
with_merge_requests_enabled ブーリアン いいえ 有効化されたマージリクエスト機能による制限
with_programming_language いいえ 指定されたプログラミング言語を使用するプロジェクトによる制限
min_access_level 整数 いいえ 現在のユーザーの最小アクセスレベルによる制限
id_after 整数 いいえ 指定したIDより大きいIDを持つプロジェクトに結果を限定します。
id_before 整数 いいえ 指定した ID よりも小さい ID を持つプロジェクトに結果を限定します。
注:このエンドポイントは、選択されたorder_by オプションのキーセットのページ分割をサポートしています。
[
  {
    "id": 4,
    "description": null,
    "default_branch": "master",
    "visibility": "private",
    "ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",
    "http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",
    "web_url": "http://example.com/diaspora/diaspora-client",
    "readme_url": "http://example.com/diaspora/diaspora-client/blob/master/README.md",
    "tag_list": [
      "example",
      "disapora client"
    ],
    "owner": {
      "id": 3,
      "name": "Diaspora",
      "created_at": "2013-09-30T13:46:02Z"
    },
    "name": "Diaspora Client",
    "name_with_namespace": "Diaspora / Diaspora Client",
    "path": "diaspora-client",
    "path_with_namespace": "diaspora/diaspora-client",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false,
    "created_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "namespace": {
      "id": 3,
      "name": "Diaspora",
      "path": "diaspora",
      "kind": "group",
      "full_path": "diaspora"
    },
    "import_status": "none",
    "archived": false,
    "avatar_url": "http://example.com/uploads/project/avatar/4/uploads/avatar.png",
    "shared_runners_enabled": true,
    "forks_count": 0,
    "star_count": 0,
    "runners_token": "b8547b1dc37721d05889db52fa2f02",
    "ci_default_git_depth": 50,
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "autoclose_referenced_issues": true,
    "suggestion_commit_message": null,
    "marked_for_deletion_at": "2020-04-03", // Deprecated and will be removed in API v5 in favor of marked_for_deletion_on
    "marked_for_deletion_on": "2020-04-03",
    "statistics": {
      "commit_count": 37,
      "storage_size": 1038090,
      "repository_size": 1038090,
      "wiki_size" : 0,
      "lfs_objects_size": 0,
      "job_artifacts_size": 0,
      "packages_size": 0,
      "snippets_size": 0
    },
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members"
    }
  },
  {
    "id": 6,
    "description": null,
    "default_branch": "master",
    "visibility": "private",
    "ssh_url_to_repo": "git@example.com:brightbox/puppet.git",
    "http_url_to_repo": "http://example.com/brightbox/puppet.git",
    "web_url": "http://example.com/brightbox/puppet",
    "readme_url": "http://example.com/brightbox/puppet/blob/master/README.md",
    "tag_list": [
      "example",
      "puppet"
    ],
    "owner": {
      "id": 4,
      "name": "Brightbox",
      "created_at": "2013-09-30T13:46:02Z"
    },
    "name": "Puppet",
    "name_with_namespace": "Brightbox / Puppet",
    "path": "puppet",
    "path_with_namespace": "brightbox/puppet",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false,
    "created_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "namespace": {
      "id": 4,
      "name": "Brightbox",
      "path": "brightbox",
      "kind": "group",
      "full_path": "brightbox"
    },
    "import_status": "none",
    "import_error": null,
    "permissions": {
      "project_access": {
        "access_level": 10,
        "notification_level": 3
      },
      "group_access": {
        "access_level": 50,
        "notification_level": 3
      }
    },
    "archived": false,
    "avatar_url": null,
    "shared_runners_enabled": true,
    "forks_count": 0,
    "star_count": 0,
    "runners_token": "b8547b1dc37721d05889db52fa2f02",
    "ci_default_git_depth": 0,
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "auto_devops_enabled": true,
    "auto_devops_deploy_strategy": "continuous",
    "repository_storage": "default",
    "approvals_before_merge": 0,
    "mirror": false,
    "mirror_user_id": 45,
    "mirror_trigger_builds": false,
    "only_mirror_protected_branches": false,
    "mirror_overwrites_diverged_branches": false,
    "external_authorization_classification_label": null,
    "packages_enabled": true,
    "service_desk_enabled": false,
    "service_desk_address": null,
    "autoclose_referenced_issues": true,
    "suggestion_commit_message": null,
    "statistics": {
      "commit_count": 12,
      "storage_size": 2066080,
      "repository_size": 2066080,
      "wiki_size" : 0,
      "lfs_objects_size": 0,
      "job_artifacts_size": 0,
      "packages_size": 0,
      "snippets_size": 0
    },
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members"
    }
  }
]

ユーザーがスターを付けたプロジェクトのリスト

指定したユーザーが所有する可視プロジェクトの一覧を取得します。 認証なしでアクセスした場合は、公開プロジェクトのみが返されます。

GET /users/:user_id/starred_projects
属性 タイプ 必須 説明
user_id はい ユーザーのIDまたはユーザー名。
archived ブーリアン いいえ アーカイブされたステータスで制限します。
visibility いいえ publicinternal、またはprivate
order_by いいえ idnamepathcreated_atupdated_atlast_activity_at のフィールド順にプロジェクトを返します。 デフォルトはcreated_atです。
sort いいえ asc またはdesc 順序で descソートされたプロジェクトを返しますdesc 。 デフォルトは . desc
search いいえ 検索条件に一致するプロジェクトのリストを返します。
simple ブーリアン いいえ 各プロジェクトについて、限定されたフィールドのみを返します。 認証を行わない場合は、単純な_フィールドのみが_返されるため、これは無効です。
owned ブーリアン いいえ 現在のユーザーが明示的に所有しているプロジェクトに限定します。
membership ブーリアン いいえ 現在のユーザーが所属しているプロジェクトで制限します。
starred ブーリアン いいえ 現在のユーザーがスターを付けたプロジェクトで制限します。
statistics ブーリアン いいえ プロジェクト統計の掲載。
with_custom_attributes ブーリアン いいえ レスポンスにカスタム属性を含めます(管理者のみ)。
with_issues_enabled ブーリアン いいえ 有効なイシュー機能で制限します。
with_merge_requests_enabled ブーリアン いいえ 有効化されたマージリクエスト機能による制限。
min_access_level 整数 いいえ 現在のユーザーの最小アクセスレベルで制限します。
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/5/starred_projects"

回答例

[
  {
    "id": 4,
    "description": null,
    "default_branch": "master",
    "visibility": "private",
    "ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",
    "http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",
    "web_url": "http://example.com/diaspora/diaspora-client",
    "readme_url": "http://example.com/diaspora/diaspora-client/blob/master/README.md",
    "tag_list": [
      "example",
      "disapora client"
    ],
    "owner": {
      "id": 3,
      "name": "Diaspora",
      "created_at": "2013-09-30T13:46:02Z"
    },
    "name": "Diaspora Client",
    "name_with_namespace": "Diaspora / Diaspora Client",
    "path": "diaspora-client",
    "path_with_namespace": "diaspora/diaspora-client",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false,
    "created_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "namespace": {
      "id": 3,
      "name": "Diaspora",
      "path": "diaspora",
      "kind": "group",
      "full_path": "diaspora"
    },
    "import_status": "none",
    "archived": false,
    "avatar_url": "http://example.com/uploads/project/avatar/4/uploads/avatar.png",
    "shared_runners_enabled": true,
    "forks_count": 0,
    "star_count": 0,
    "runners_token": "b8547b1dc37721d05889db52fa2f02",
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "autoclose_referenced_issues": true,
    "suggestion_commit_message": null,
    "statistics": {
      "commit_count": 37,
      "storage_size": 1038090,
      "repository_size": 1038090,
      "lfs_objects_size": 0,
      "job_artifacts_size": 0
    },
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members"
    }
  },
  {
    "id": 6,
    "description": null,
    "default_branch": "master",
    "visibility": "private",
    "ssh_url_to_repo": "git@example.com:brightbox/puppet.git",
    "http_url_to_repo": "http://example.com/brightbox/puppet.git",
    "web_url": "http://example.com/brightbox/puppet",
    "readme_url": "http://example.com/brightbox/puppet/blob/master/README.md",
    "tag_list": [
      "example",
      "puppet"
    ],
    "owner": {
      "id": 4,
      "name": "Brightbox",
      "created_at": "2013-09-30T13:46:02Z"
    },
    "name": "Puppet",
    "name_with_namespace": "Brightbox / Puppet",
    "path": "puppet",
    "path_with_namespace": "brightbox/puppet",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false,
    "created_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "namespace": {
      "id": 4,
      "name": "Brightbox",
      "path": "brightbox",
      "kind": "group",
      "full_path": "brightbox"
    },
    "import_status": "none",
    "import_error": null,
    "permissions": {
      "project_access": {
        "access_level": 10,
        "notification_level": 3
      },
      "group_access": {
        "access_level": 50,
        "notification_level": 3
      }
    },
    "archived": false,
    "avatar_url": null,
    "shared_runners_enabled": true,
    "forks_count": 0,
    "star_count": 0,
    "runners_token": "b8547b1dc37721d05889db52fa2f02",
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "auto_devops_enabled": true,
    "auto_devops_deploy_strategy": "continuous",
    "repository_storage": "default",
    "approvals_before_merge": 0,
    "mirror": false,
    "mirror_user_id": 45,
    "mirror_trigger_builds": false,
    "only_mirror_protected_branches": false,
    "mirror_overwrites_diverged_branches": false,
    "external_authorization_classification_label": null,
    "packages_enabled": true,
    "service_desk_enabled": false,
    "service_desk_address": null,
    "autoclose_referenced_issues": true,
    "suggestion_commit_message": null,
    "statistics": {
      "commit_count": 12,
      "storage_size": 2066080,
      "repository_size": 2066080,
      "lfs_objects_size": 0,
      "job_artifacts_size": 0
    },
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members"
    }
  }
]

単一プロジェクトの取得

特定のプロジェクトを取得します。 プロジェクトが公開されている場合、このエンドポイントは認証なしでアクセスできます。

GET /projects/:id
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
statistics ブーリアン いいえ プロジェクト統計を含む
license ブーリアン いいえ プロジェクトライセンスデータを含む
with_custom_attributes ブーリアン いいえ レスポンスにカスタム属性を含める(管理者のみ)
{
  "id": 3,
  "description": null,
  "default_branch": "master",
  "visibility": "private",
  "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git",
  "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  "web_url": "http://example.com/diaspora/diaspora-project-site",
  "readme_url": "http://example.com/diaspora/diaspora-project-site/blob/master/README.md",
  "tag_list": [
    "example",
    "disapora project"
  ],
  "owner": {
    "id": 3,
    "name": "Diaspora",
    "created_at": "2013-09-30T13:46:02Z"
  },
  "name": "Diaspora Project Site",
  "name_with_namespace": "Diaspora / Diaspora Project Site",
  "path": "diaspora-project-site",
  "path_with_namespace": "diaspora/diaspora-project-site",
  "issues_enabled": true,
  "open_issues_count": 1,
  "merge_requests_enabled": true,
  "jobs_enabled": true,
  "wiki_enabled": true,
  "snippets_enabled": false,
  "can_create_merge_request_in": true,
  "resolve_outdated_diff_discussions": false,
  "container_registry_enabled": false,
  "container_expiration_policy": {
    "cadence": "7d",
    "enabled": false,
    "keep_n": null,
    "older_than": null,
    "name_regex": null, // to be deprecated in GitLab 13.0 in favor of `name_regex_delete`
    "name_regex_delete": null,
    "name_regex_keep": null,
    "next_run_at": "2020-01-07T21:42:58.658Z"
  },
  "created_at": "2013-09-30T13:46:02Z",
  "last_activity_at": "2013-09-30T13:46:02Z",
  "creator_id": 3,
  "namespace": {
    "id": 3,
    "name": "Diaspora",
    "path": "diaspora",
    "kind": "group",
    "full_path": "diaspora",
    "avatar_url": "http://localhost:3000/uploads/group/avatar/3/foo.jpg",
    "web_url": "http://localhost:3000/groups/diaspora"
  },
  "import_status": "none",
  "import_error": null,
  "permissions": {
    "project_access": {
      "access_level": 10,
      "notification_level": 3
    },
    "group_access": {
      "access_level": 50,
      "notification_level": 3
    }
  },
  "archived": false,
  "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
  "license_url": "http://example.com/diaspora/diaspora-client/blob/master/LICENSE",
  "license": {
    "key": "lgpl-3.0",
    "name": "GNU Lesser General Public License v3.0",
    "nickname": "GNU LGPLv3",
    "html_url": "http://choosealicense.com/licenses/lgpl-3.0/",
    "source_url": "http://www.gnu.org/licenses/lgpl-3.0.txt"
  },
  "shared_runners_enabled": true,
  "forks_count": 0,
  "star_count": 0,
  "runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
  "ci_default_git_depth": 50,
  "public_jobs": true,
  "shared_with_groups": [
    {
      "group_id": 4,
      "group_name": "Twitter",
      "group_full_path": "twitter",
      "group_access_level": 30
    },
    {
      "group_id": 3,
      "group_name": "Gitlab Org",
      "group_full_path": "gitlab-org",
      "group_access_level": 10
    }
  ],
  "repository_storage": "default",
  "only_allow_merge_if_pipeline_succeeds": false,
  "allow_merge_on_skipped_pipeline": false,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "remove_source_branch_after_merge": false,
  "printing_merge_requests_link_enabled": true,
  "request_access_enabled": false,
  "merge_method": "merge",
  "auto_devops_enabled": true,
  "auto_devops_deploy_strategy": "continuous",
  "repository_storage": "default",
  "approvals_before_merge": 0,
  "mirror": false,
  "mirror_user_id": 45,
  "mirror_trigger_builds": false,
  "only_mirror_protected_branches": false,
  "mirror_overwrites_diverged_branches": false,
  "external_authorization_classification_label": null,
  "packages_enabled": true,
  "service_desk_enabled": false,
  "service_desk_address": null,
  "autoclose_referenced_issues": true,
  "suggestion_commit_message": null,
  "marked_for_deletion_at": "2020-04-03", // Deprecated and will be removed in API v5 in favor of marked_for_deletion_on
  "marked_for_deletion_on": "2020-04-03",
  "compliance_frameworks": [ "sox" ],
  "statistics": {
    "commit_count": 37,
    "storage_size": 1038090,
    "repository_size": 1038090,
    "wiki_size" : 0,
    "lfs_objects_size": 0,
    "job_artifacts_size": 0,
    "packages_size": 0,
    "snippets_size": 0
  },
  "_links": {
    "self": "http://example.com/api/v4/projects",
    "issues": "http://example.com/api/v4/projects/1/issues",
    "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
    "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
    "labels": "http://example.com/api/v4/projects/1/labels",
    "events": "http://example.com/api/v4/projects/1/events",
    "members": "http://example.com/api/v4/projects/1/members"
  }
}

GitLabStarter、Bronze以上のユーザーには、approvals_before_merge パラメーターも表示されます:

{
  "id": 3,
  "description": null,
  "approvals_before_merge": 0,
  ...
}

Note:namespaceweb_urlavatar_url 属性は GitLab 11.11 で導入されました。

プロジェクトがフォークであり、認証に有効なトークンを提供した場合、レスポンスにforked_from_project フィールドが表示されます。

{
   "id":3,

   ...

   "forked_from_project":{
      "id":13083,
      "description":"GitLab Community Edition",
      "name":"GitLab Community Edition",
      "name_with_namespace":"GitLab.org / GitLab Community Edition",
      "path":"gitlab-foss",
      "path_with_namespace":"gitlab-org/gitlab-foss",
      "created_at":"2013-09-26T06:02:36.000Z",
      "default_branch":"master",
      "tag_list":[],
      "ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-foss.git",
      "http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-foss.git",
      "web_url":"https://gitlab.com/gitlab-org/gitlab-foss",
      "avatar_url":"https://assets.gitlab-static.net/uploads/-/system/project/avatar/13083/logo-extra-whitespace.png",
      "license_url": "https://gitlab.com/gitlab-org/gitlab/blob/master/LICENSE",
      "license": {
        "key": "mit",
        "name": "MIT License",
        "nickname": null,
        "html_url": "http://choosealicense.com/licenses/mit/",
        "source_url": "https://opensource.org/licenses/MIT",
      },
      "star_count":3812,
      "forks_count":3561,
      "last_activity_at":"2018-01-02T11:40:26.570Z",
      "namespace": {
            "id": 72,
            "name": "GitLab.org",
            "path": "gitlab-org",
            "kind": "group",
            "full_path": "gitlab-org",
            "parent_id": null
      }
   }

   ...

}

プロジェクトユーザーの取得

プロジェクトのユーザーリストを取得します。

GET /projects/:id/users
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
search いいえ 特定ユーザーの検索
skip_users 整数配列 いいえ 指定されたIDを持つユーザーをフィルタリング
[
  {
    "id": 1,
    "username": "john_smith",
    "name": "John Smith",
    "state": "active",
    "avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg",
    "web_url": "http://localhost:3000/john_smith"
  },
  {
    "id": 2,
    "username": "jack_smith",
    "name": "Jack Smith",
    "state": "blocked",
    "avatar_url": "http://gravatar.com/../e32131cd8.jpeg",
    "web_url": "http://localhost:3000/jack_smith"
  }
]

プロジェクトイベントの取得

イベントAPIのドキュメントを参照してください。

プロジェクトの作成

認証されたユーザーが所有する新しいプロジェクトを作成します。

POST /projects
属性 タイプ 必須 説明
name パスが指定されていない場合は yes 新しいプロジェクトの名前。 提供されていない場合は path と同じです。
path 名前がない場合は「はい 新しいプロジェクトのリポジトリ名。 指定がない場合は、名前に基づいて生成されます(ダッシュ付きの小文字で生成されます)。
namespace_id 整数 いいえ 新しいプロジェクトの名前空間 (デフォルトは現在のユーザーの名前空間)
default_branch いいえ master デフォルト
description いいえ プロジェクト概要
issues_enabled ブーリアン いいえ (非推奨) このプロジェクトのイシューを有効にします。 代わりにissues_access_level を使ってください。
merge_requests_enabled ブーリアン いいえ (非推奨) このプロジェクトのマージリクエストを有効にします。 代わりにmerge_requests_access_level を使ってください。
jobs_enabled ブーリアン いいえ (非推奨) このプロジェクトのジョブを有効にします。 代わりにbuilds_access_level を使ってください。
wiki_enabled ブーリアン いいえ (非推奨) このプロジェクトの wiki を有効にします。 代わりにwiki_access_level を使ってください。
snippets_enabled ブーリアン いいえ (非推奨) こ のプ ロ ジ ェ ク ト で ス ニペ ッ ト を有効に し ます。 かわ り にsnippets_access_level を使います。
issues_access_level いいえ disabled,private のいずれか。enabled
repository_access_level いいえ disabled,private のいずれか。enabled
merge_requests_access_level いいえ disabled,private のいずれか。enabled
forking_access_level いいえ disabled,private のいずれか。enabled
builds_access_level いいえ disabled,private のいずれか。enabled
wiki_access_level いいえ disabled,private のいずれか。enabled
snippets_access_level いいえ disabled,private のいずれか。enabled
pages_access_level いいえ disabledprivateenabled またはpublic
emails_disabled ブーリアン いいえ メール通知の無効化
show_default_award_emojis ブーリアン いいえ デフォルトのアワード絵文字を表示
resolve_outdated_diff_discussions ブーリアン いいえ プッシュで変更された行のマージリクエストの差分ディスカッションを自動的に解決
container_registry_enabled ブーリアン いいえ このプロジェクトのコンテナレジストリを有効にします。
container_expiration_policy_attributes ハッシュ いいえ このプロジェクトの画像クリーンアップポリシーを更新します。 受け入れ可能な値:cadence (string),keep_n (string),older_than (string),name_regex (string),name_regex_delete (string),name_regex_keep (string),enabled (boolean)
shared_runners_enabled ブーリアン いいえ このプロジェクトの共有ランナーを有効にします。
visibility いいえ プロジェクトの可視性レベルを見る
import_url いいえ リポジトリのインポート元URL
public_builds ブーリアン いいえ trueの場合、プロジェクトメンバー以外のジョブも閲覧可能。
only_allow_merge_if_pipeline_succeeds ブーリアン いいえ マージリクエストを成功したジョブにのみマージするかどうかを設定します。
allow_merge_on_skipped_pipeline ブーリアン いいえ マージリクエストをスキップしたジョブでマージできるかどうかを設定します。
only_allow_merge_if_all_discussions_are_resolved ブーリアン いいえ すべてのディスカッションが解決されたときにのみマージリクエストをマージするかどうかを設定します。
merge_method いいえ マージ方法の設定
autoclose_referenced_issues ブーリアン いいえ デフォルトブランチで参照されているイシューを自動クローズするかどうかを設定します。
remove_source_branch_after_merge ブーリアン いいえ すべての新規マージリクエストでDelete source branch オプションをデフォルトで有効にします。
lfs_enabled ブーリアン いいえ LFSの有効化
request_access_enabled ブーリアン いいえ ユーザーによる会員アクセスリクエストの許可
tag_list アレイ いいえ プロジェクトに最終的に割り当てられるタグの配列。
avatar ミクスト いいえ プロジェクトのアバター用画像ファイル
printing_merge_request_link_enabled ブーリアン いいえ コマンドラインからのプッシュ時にマージリクエストを作成/表示するリンクを表示します。
build_git_strategy いいえ git 戦略。 デフォルトは次のとおりです。fetch
build_timeout 整数 いいえ ジョブが実行可能な最大時間(分)(単位:秒
auto_cancel_pending_pipelines いいえ 保留中のパイプラインの自動キャンセル (注: これはブーリアンではなく、有効/無効です)
build_coverage_regex いいえ テストカバレッジのパース
ci_config_path いいえ CI設定ファイルのパス
auto_devops_enabled ブーリアン いいえ このプロジェクトの自動DevOpsを有効にします。
auto_devops_deploy_strategy いいえ 自動デプロイ戦略 (continuous,manual またはtimed_incremental)
repository_storage いいえ リポジトリがどのストレージシャードにあるか。 管理者のみ利用可能です。
approvals_before_merge 整数 いいえ デフォルトでマージリクエストを承認する承認者の数
external_authorization_classification_label いいえ プロジェクトの分類ラベル
mirror ブーリアン いいえ プロジェクトでプルミラーリングを有効にします。
mirror_trigger_builds ブーリアン いいえ プル ミラーリング トリガー ビルド
initialize_with_readme ブーリアン いいえ false デフォルト
template_name いいえ を使用しない場合はuse_custom_template組み込みプロジェクト・use_custom_templateテンプレートのuse_custom_template名前。 を使用する場合は use_custom_template、カスタム・プロジェクト・テンプレートの名前。
template_project_id 整数 いいえ use_custom_template, カスタム・プロジェクト・テンプレートのプロジェクト ID と共に使用される場合、曖昧になる可能性があるtemplate_name ため template_name、これは使用しない方が望ましいです。
use_custom_template ブーリアン いいえ カスタム・インスタンスまたはグループgroup_with_project_templates_id)プロジェクト・テンプレートを使用します。
group_with_project_templates_id 整数 いいえ グループレベルのカスタムテンプレートの場合、すべてのカスタムプロジェクトテンプレートのソースとなるグループの ID を指定します。 インスタンスレベルのテンプレートの場合は空白にしておきます。use_custom_template が true である必要があります。
packages_enabled ブーリアン いいえ パッケージリポジトリ機能の有効化または無効化
注意:HTTP リポジトリが内部からアクセスできない場合は、認証情報を URL に追加してください:https://username:password@gitlab.company.com/group/project.gitpasswordapi スコープを有効にした公開アクセスキーです。

ユーザーのプロジェクトを作成

指定したユーザーが所有する新しいプロジェクトを作成します。 管理者のみ利用可能です。

POST /projects/user/:user_id
属性 タイプ 必須 説明
user_id 整数 はい プロジェクトオーナーのユーザーID
name はい 新しいプロジェクトの名前
path いいえ 新しいプロジェクトのカスタムリポジトリ名。 デフォルトでは名前に基づいて生成されます。
namespace_id 整数 いいえ 新しいプロジェクトの名前空間 (デフォルトは現在のユーザーの名前空間)
description いいえ プロジェクト概要
issues_enabled ブーリアン いいえ (非推奨) このプロジェクトのイシューを有効にします。 代わりにissues_access_level を使ってください。
merge_requests_enabled ブーリアン いいえ (非推奨) このプロジェクトのマージリクエストを有効にします。 代わりにmerge_requests_access_level を使ってください。
jobs_enabled ブーリアン いいえ (非推奨) このプロジェクトのジョブを有効にします。 代わりにbuilds_access_level を使ってください。
wiki_enabled ブーリアン いいえ (非推奨) このプロジェクトの wiki を有効にします。 代わりにwiki_access_level を使ってください。
snippets_enabled ブーリアン いいえ (非推奨) こ のプ ロ ジ ェ ク ト で ス ニペ ッ ト を有効に し ます。 かわ り にsnippets_access_level を使います。
issues_access_level いいえ disabled,private のいずれか。enabled
repository_access_level いいえ disabled,private のいずれか。enabled
merge_requests_access_level いいえ disabled,private のいずれか。enabled
forking_access_level いいえ disabled,private のいずれか。enabled
builds_access_level いいえ disabled,private のいずれか。enabled
wiki_access_level いいえ disabled,private のいずれか。enabled
snippets_access_level いいえ disabled,private のいずれか。enabled
pages_access_level いいえ disabledprivateenabled またはpublic
emails_disabled ブーリアン いいえ メール通知の無効化
show_default_award_emojis ブーリアン いいえ デフォルトのアワード絵文字を表示
resolve_outdated_diff_discussions ブーリアン いいえ プッシュで変更された行のマージリクエストの差分ディスカッションを自動的に解決
container_registry_enabled ブーリアン いいえ このプロジェクトのコンテナレジストリを有効にします。
shared_runners_enabled ブーリアン いいえ このプロジェクトの共有ランナーを有効にします。
visibility いいえ プロジェクトの可視性レベルを見る
import_url いいえ リポジトリのインポート元URL
public_builds ブーリアン いいえ trueの場合、プロジェクトメンバー以外のジョブも閲覧可能。
only_allow_merge_if_pipeline_succeeds ブーリアン いいえ マージリクエストを成功したジョブにのみマージするかどうかを設定します。
allow_merge_on_skipped_pipeline ブーリアン いいえ マージリクエストをスキップしたジョブでマージできるかどうかを設定します。
only_allow_merge_if_all_discussions_are_resolved ブーリアン いいえ すべてのディスカッションが解決されたときにのみマージリクエストをマージするかどうかを設定します。
merge_method いいえ マージ方法の設定
autoclose_referenced_issues ブーリアン いいえ デフォルトブランチで参照されているイシューを自動クローズするかどうかを設定します。
suggestion_commit_message いいえ マージリクエストを適用するためのコミットメッセージ
remove_source_branch_after_merge ブーリアン いいえ すべての新規マージリクエストでDelete source branch オプションをデフォルトで有効にします。
lfs_enabled ブーリアン いいえ LFSの有効化
request_access_enabled ブーリアン いいえ ユーザーによる会員アクセスリクエストの許可
tag_list アレイ いいえ プロジェクトに最終的に割り当てられるタグの配列。
avatar ミクスト いいえ プロジェクトのアバター用画像ファイル
printing_merge_request_link_enabled ブーリアン いいえ コマンドラインからのプッシュ時にマージリクエストを作成/表示するリンクを表示します。
build_git_strategy いいえ git 戦略。 デフォルトは次のとおりです。fetch
build_timeout 整数 いいえ ジョブが実行可能な最大時間(分)(単位:秒
auto_cancel_pending_pipelines いいえ 保留中のパイプラインの自動キャンセル (注: これはブーリアンではなく、有効/無効です)
build_coverage_regex いいえ テストカバレッジのパース
ci_config_path いいえ CI設定ファイルのパス
auto_devops_enabled ブーリアン いいえ このプロジェクトの自動DevOpsを有効にします。
auto_devops_deploy_strategy いいえ 自動デプロイ戦略 (continuous,manual またはtimed_incremental)
repository_storage いいえ リポジトリがどのストレージシャードにあるか。 管理者のみ利用可能です。
approvals_before_merge 整数 いいえ デフォルトでマージリクエストを承認する承認者の数
external_authorization_classification_label いいえ プロジェクトの分類ラベル
mirror ブーリアン いいえ プロジェクトでプルミラーリングを有効にします。
mirror_trigger_builds ブーリアン いいえ プル ミラーリング トリガー ビルド
initialize_with_readme ブーリアン いいえ false デフォルト
template_name いいえ を使用しない場合はuse_custom_template組み込みプロジェクト・use_custom_templateテンプレートのuse_custom_template名前。 を使用する場合は use_custom_template、カスタム・プロジェクト・テンプレートの名前。
use_custom_template ブーリアン いいえ カスタム・インスタンスまたはグループgroup_with_project_templates_id)プロジェクト・テンプレートを使用します。
group_with_project_templates_id 整数 いいえ use_custom_templateグループレベルのカスタムテンプレートの場合、すべてのカスタムプロジェクトテンプレートのソースとなるグループの ID を指定します。 インスタンスレベルのテンプレートの場合は空白にしておきます。use_custom_template が true である必要があります。
packages_enabled ブーリアン いいえ パッケージリポジトリ機能の有効化または無効化
注意:HTTP リポジトリが内部からアクセスできない場合は、認証情報を URL に追加してください:https://username:password@gitlab.company.com/group/project.gitpasswordapi スコープを有効にした公開アクセスキーです。

プロジェクトの編集

既存のプロジェクトを更新します。

PUT /projects/:id
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
name いいえ プロジェクト名
path いいえ プロジェクトのカスタムリポジトリ名。 デフォルトでは名前に基づいて生成されます。
default_branch いいえ master デフォルト
description いいえ プロジェクト概要
issues_enabled ブーリアン いいえ (非推奨) このプロジェクトのイシューを有効にします。 代わりにissues_access_level を使ってください。
merge_requests_enabled ブーリアン いいえ (非推奨) このプロジェクトのマージリクエストを有効にします。 代わりにmerge_requests_access_level を使ってください。
jobs_enabled ブーリアン いいえ (非推奨) このプロジェクトのジョブを有効にします。 代わりにbuilds_access_level を使ってください。
wiki_enabled ブーリアン いいえ (非推奨) このプロジェクトの wiki を有効にします。 代わりにwiki_access_level を使ってください。
snippets_enabled ブーリアン いいえ (非推奨) こ のプ ロ ジ ェ ク ト で ス ニペ ッ ト を有効に し ます。 かわ り にsnippets_access_level を使います。
issues_access_level いいえ disabled,private のいずれか。enabled
repository_access_level いいえ disabled,private のいずれか。enabled
merge_requests_access_level いいえ disabled,private のいずれか。enabled
forking_access_level いいえ disabled,private のいずれか。enabled
builds_access_level いいえ disabled,private のいずれか。enabled
wiki_access_level いいえ disabled,private のいずれか。enabled
snippets_access_level いいえ disabled,private のいずれか。enabled
pages_access_level いいえ disabledprivateenabled またはpublic
emails_disabled ブーリアン いいえ メール通知の無効化
show_default_award_emojis ブーリアン いいえ デフォルトのアワード絵文字を表示
resolve_outdated_diff_discussions ブーリアン いいえ プッシュで変更された行のマージリクエストの差分ディスカッションを自動的に解決
container_registry_enabled ブーリアン いいえ このプロジェクトのコンテナレジストリを有効にします。
container_expiration_policy_attributes ハッシュ いいえ このプロジェクトの画像クリーンアップポリシーを更新します。 受け入れ可能な値:cadence (string),keep_n (string),older_than (string),name_regex (string),name_regex_delete (string),name_regex_keep (string),enabled (boolean)
shared_runners_enabled ブーリアン いいえ このプロジェクトの共有ランナーを有効にします。
visibility いいえ プロジェクトの可視性レベルを見る
import_url いいえ リポジトリのインポート元URL
public_builds ブーリアン いいえ trueの場合、プロジェクトメンバー以外のジョブも閲覧可能。
only_allow_merge_if_pipeline_succeeds ブーリアン いいえ マージリクエストを成功したジョブにのみマージするかどうかを設定します。
allow_merge_on_skipped_pipeline ブーリアン いいえ マージリクエストをスキップしたジョブでマージできるかどうかを設定します。
only_allow_merge_if_all_discussions_are_resolved ブーリアン いいえ すべてのディスカッションが解決されたときにのみマージリクエストをマージするかどうかを設定します。
merge_method いいえ マージ方法の設定
autoclose_referenced_issues ブーリアン いいえ デフォルトブランチで参照されているイシューを自動クローズするかどうかを設定します。
suggestion_commit_message いいえ マージリクエストを適用するためのコミットメッセージ
remove_source_branch_after_merge ブーリアン いいえ すべての新規マージリクエストでDelete source branch オプションをデフォルトで有効にします。
lfs_enabled ブーリアン いいえ LFSの有効化
request_access_enabled ブーリアン いいえ ユーザーによる会員アクセスリクエストの許可
tag_list アレイ いいえ プロジェクトに最終的に割り当てられるタグの配列。
avatar ミクスト いいえ プロジェクトのアバター用画像ファイル
build_git_strategy いいえ git 戦略。 デフォルトは次のとおりです。fetch
build_timeout 整数 いいえ ジョブが実行可能な最大時間(分)(単位:秒
auto_cancel_pending_pipelines いいえ 保留中のパイプラインの自動キャンセル (注: これはブーリアンではなく、有効/無効です)
build_coverage_regex いいえ テストカバレッジのパース
ci_config_path いいえ CI設定ファイルのパス
ci_default_git_depth 整数 いいえ 浅いクローニングのデフォルトのリビジョン数
auto_devops_enabled ブーリアン いいえ このプロジェクトの自動DevOpsを有効にします。
auto_devops_deploy_strategy いいえ 自動デプロイ戦略 (continuous,manual またはtimed_incremental)
repository_storage いいえ リポジトリがどのストレージシャードにあるか。 管理者のみ利用可能です。
approvals_before_merge 整数 いいえ デフォルトでマージリクエストを承認する承認者の数
external_authorization_classification_label いいえ プロジェクトの分類ラベル
mirror ブーリアン いいえ プロジェクトでプルミラーリングを有効にします。
mirror_user_id 整数 いいえ プルミラーイベントのすべてのアクティビティに責任を持つユーザーです。 管理者のみが設定できます。
mirror_trigger_builds ブーリアン いいえ プル ミラーリング トリガー ビルド
only_mirror_protected_branches ブーリアン いいえ ミラーで保護されたブランチのみ
mirror_overwrites_diverged_branches ブーリアン いいえ プルミラーは分岐したブランチを上書きします。
packages_enabled ブーリアン いいえ パッケージリポジトリ機能の有効化または無効化
service_desk_enabled ブーリアン いいえ サービスデスク機能の有効化または無効化
注意:HTTP リポジトリが内部からアクセスできない場合は、認証情報を URL に追加してください:https://username:password@gitlab.company.com/group/project.gitpasswordapi スコープを有効にした公開アクセスキーです。

フォークプロジェクト

認証されたユーザーまたは指定されたユーザーのユーザー・ネームスペースにプロジェクトをフォークします。

プロジェクトのフォークオペレーションは非同期で、バックグラウンドジョブで完了します。 リクエストは即座に返されます。 プロジェクトのフォークが完了したかどうかを調べるには、新しいプロジェクトのimport_status に問い合わせます。

POST /projects/:id/fork
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
namespace 整数/文字列 いいえ (廃止予定) プロジェクトがフォークされる名前空間の ID またはパス。
namespace_id 整数 いいえ プロジェクトがフォークされる名前空間のID
namespace_path いいえ プロジェクトをフォークする名前空間のパス。
path いいえ フォーク後のプロジェクトに割り当てられるパス。
name いいえ フォーク後のプロジェクトに割り当てられる名前。

プロジェクトのフォークリスト

注:この機能は GitLab 10.1 で導入されました。

指定したプロジェクトとフォークされた関係が確立されている、呼び出し元のユーザーがアクセス可能なプロジェクトを一覧表示します。

GET /projects/:id/forks
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
archived ブーリアン いいえ アーカイブ状態による制限
visibility いいえ 視認性による制限public,internal, またはprivate
order_by いいえ idnamepathcreated_atupdated_atlast_activity_at のフィールド順にプロジェクトを返します。 デフォルトはcreated_at
sort いいえ プロジェクトをasc またはdesc 順番に descソートして返しますdesc 。 デフォルトは desc
search いいえ 検索条件に一致するプロジェクトのリストを返します。
simple ブーリアン いいえ 各プロジェクトについて、限定されたフィールドのみを返します。 認証がない場合、単純な_フィールドのみが_返されるため、これは使用できません。
owned ブーリアン いいえ 現在のユーザーが明示的に所有するプロジェクトによる制限
membership ブーリアン いいえ 現在のユーザーが所属しているプロジェクトによる制限
starred ブーリアン いいえ 現在のユーザーがスターを付けたプロジェクトで制限
statistics ブーリアン いいえ プロジェクト統計を含む
with_custom_attributes ブーリアン いいえ レスポンスにカスタム属性を含める(管理者のみ)
with_issues_enabled ブーリアン いいえ 有効なイシュー機能による制限
with_merge_requests_enabled ブーリアン いいえ 有効化されたマージリクエスト機能による制限
min_access_level 整数 いいえ 現在のユーザーの最小アクセスレベルによる制限
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/forks"

回答例

[
  {
    "id": 3,
    "description": null,
    "default_branch": "master",
    "visibility": "internal",
    "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git",
    "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
    "web_url": "http://example.com/diaspora/diaspora-project-site",
    "readme_url": "http://example.com/diaspora/diaspora-project-site/blob/master/README.md",
    "tag_list": [
      "example",
      "disapora project"
    ],
    "name": "Diaspora Project Site",
    "name_with_namespace": "Diaspora / Diaspora Project Site",
    "path": "diaspora-project-site",
    "path_with_namespace": "diaspora/diaspora-project-site",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false,
    "created_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "namespace": {
      "id": 3,
      "name": "Diaspora",
      "path": "diaspora",
      "kind": "group",
      "full_path": "diaspora"
    },
    "import_status": "none",
    "archived": true,
    "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
    "shared_runners_enabled": true,
    "forks_count": 0,
    "star_count": 1,
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "autoclose_referenced_issues": true,
    "suggestion_commit_message": null,
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members"
    }
  }
]

プロジェクトのスター

指定したプロジェクトに星をつけます。 プロジェクトがすでに星がついている場合は、ステータスコード304 を返します。

POST /projects/:id/star
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/star"

回答例

{
  "id": 3,
  "description": null,
  "default_branch": "master",
  "visibility": "internal",
  "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git",
  "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  "web_url": "http://example.com/diaspora/diaspora-project-site",
  "readme_url": "http://example.com/diaspora/diaspora-project-site/blob/master/README.md",
  "tag_list": [
    "example",
    "disapora project"
  ],
  "name": "Diaspora Project Site",
  "name_with_namespace": "Diaspora / Diaspora Project Site",
  "path": "diaspora-project-site",
  "path_with_namespace": "diaspora/diaspora-project-site",
  "issues_enabled": true,
  "open_issues_count": 1,
  "merge_requests_enabled": true,
  "jobs_enabled": true,
  "wiki_enabled": true,
  "snippets_enabled": false,
  "can_create_merge_request_in": true,
  "resolve_outdated_diff_discussions": false,
  "container_registry_enabled": false,
  "created_at": "2013-09-30T13:46:02Z",
  "last_activity_at": "2013-09-30T13:46:02Z",
  "creator_id": 3,
  "namespace": {
    "id": 3,
    "name": "Diaspora",
    "path": "diaspora",
    "kind": "group",
    "full_path": "diaspora"
  },
  "import_status": "none",
  "archived": true,
  "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
  "license_url": "http://example.com/diaspora/diaspora-client/blob/master/LICENSE",
  "license": {
    "key": "lgpl-3.0",
    "name": "GNU Lesser General Public License v3.0",
    "nickname": "GNU LGPLv3",
    "html_url": "http://choosealicense.com/licenses/lgpl-3.0/",
    "source_url": "http://www.gnu.org/licenses/lgpl-3.0.txt"
  },
  "shared_runners_enabled": true,
  "forks_count": 0,
  "star_count": 1,
  "public_jobs": true,
  "shared_with_groups": [],
  "only_allow_merge_if_pipeline_succeeds": false,
  "allow_merge_on_skipped_pipeline": false,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "remove_source_branch_after_merge": false,
  "request_access_enabled": false,
  "merge_method": "merge",
  "autoclose_referenced_issues": true,
  "suggestion_commit_message": null,
  "_links": {
    "self": "http://example.com/api/v4/projects",
    "issues": "http://example.com/api/v4/projects/1/issues",
    "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
    "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
    "labels": "http://example.com/api/v4/projects/1/labels",
    "events": "http://example.com/api/v4/projects/1/events",
    "members": "http://example.com/api/v4/projects/1/members"
  }
}

プロジェクトのスター解除

指定したプロジェクトのスターを解除します。 プロジェクトがスター付きでない場合は、ステータスコード304 を返します。

POST /projects/:id/unstar
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/unstar"

回答例

{
  "id": 3,
  "description": null,
  "default_branch": "master",
  "visibility": "internal",
  "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git",
  "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  "web_url": "http://example.com/diaspora/diaspora-project-site",
  "readme_url": "http://example.com/diaspora/diaspora-project-site/blob/master/README.md",
  "tag_list": [
    "example",
    "disapora project"
  ],
  "name": "Diaspora Project Site",
  "name_with_namespace": "Diaspora / Diaspora Project Site",
  "path": "diaspora-project-site",
  "path_with_namespace": "diaspora/diaspora-project-site",
  "issues_enabled": true,
  "open_issues_count": 1,
  "merge_requests_enabled": true,
  "jobs_enabled": true,
  "wiki_enabled": true,
  "snippets_enabled": false,
  "can_create_merge_request_in": true,
  "resolve_outdated_diff_discussions": false,
  "container_registry_enabled": false,
  "created_at": "2013-09-30T13:46:02Z",
  "last_activity_at": "2013-09-30T13:46:02Z",
  "creator_id": 3,
  "namespace": {
    "id": 3,
    "name": "Diaspora",
    "path": "diaspora",
    "kind": "group",
    "full_path": "diaspora"
  },
  "import_status": "none",
  "archived": true,
  "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
  "license_url": "http://example.com/diaspora/diaspora-client/blob/master/LICENSE",
  "license": {
    "key": "lgpl-3.0",
    "name": "GNU Lesser General Public License v3.0",
    "nickname": "GNU LGPLv3",
    "html_url": "http://choosealicense.com/licenses/lgpl-3.0/",
    "source_url": "http://www.gnu.org/licenses/lgpl-3.0.txt"
  },
  "shared_runners_enabled": true,
  "forks_count": 0,
  "star_count": 0,
  "public_jobs": true,
  "shared_with_groups": [],
  "only_allow_merge_if_pipeline_succeeds": false,
  "allow_merge_on_skipped_pipeline": false,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "remove_source_branch_after_merge": false,
  "request_access_enabled": false,
  "merge_method": "merge",
  "autoclose_referenced_issues": true,
  "suggestion_commit_message": null,
  "_links": {
    "self": "http://example.com/api/v4/projects",
    "issues": "http://example.com/api/v4/projects/1/issues",
    "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
    "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
    "labels": "http://example.com/api/v4/projects/1/labels",
    "events": "http://example.com/api/v4/projects/1/events",
    "members": "http://example.com/api/v4/projects/1/members"
  }
}

プロジェクトのスターラー一覧

指定したプロジェクトにスターを付けたユーザーを一覧表示します。

GET /projects/:id/starrers
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
search いいえ 特定のユーザーを検索します。
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/starrers"

回答例

[
  {
    "starred_since": "2019-01-28T14:47:30.642Z",
    "user":
      {
        "id": 1,
        "username": "jane_smith",
        "name": "Jane Smith",
        "state": "active",
        "avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg",
        "web_url": "http://localhost:3000/jane_smith"
      }
  },
    "starred_since": "2018-01-02T11:40:26.570Z",
    "user":
      {
        "id": 2,
        "username": "janine_smith",
        "name": "Janine Smith",
        "state": "blocked",
        "avatar_url": "http://gravatar.com/../e32131cd8.jpeg",
        "web_url": "http://localhost:3000/janine_smith"
      }
]

言語

プロジェクトで使用されている言語をパーセンテージで取得します。

GET /projects/:id/languages
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/languages"

回答例

{
  "Ruby": 66.69,
  "JavaScript": 22.98,
  "HTML": 7.91,
  "CoffeeScript": 2.42
}

プロジェクトのアーカイブ

このアクションは冪等なので、すでにアーカイブされているプロジェクトをアーカイブしてもプロジェクトは変更されません。

POST /projects/:id/archive
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/archive"

回答例

{
  "id": 3,
  "description": null,
  "default_branch": "master",
  "visibility": "private",
  "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git",
  "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  "web_url": "http://example.com/diaspora/diaspora-project-site",
  "readme_url": "http://example.com/diaspora/diaspora-project-site/blob/master/README.md",
  "tag_list": [
    "example",
    "disapora project"
  ],
  "owner": {
    "id": 3,
    "name": "Diaspora",
    "created_at": "2013-09-30T13:46:02Z"
  },
  "name": "Diaspora Project Site",
  "name_with_namespace": "Diaspora / Diaspora Project Site",
  "path": "diaspora-project-site",
  "path_with_namespace": "diaspora/diaspora-project-site",
  "issues_enabled": true,
  "open_issues_count": 1,
  "merge_requests_enabled": true,
  "jobs_enabled": true,
  "wiki_enabled": true,
  "snippets_enabled": false,
  "can_create_merge_request_in": true,
  "resolve_outdated_diff_discussions": false,
  "container_registry_enabled": false,
  "created_at": "2013-09-30T13:46:02Z",
  "last_activity_at": "2013-09-30T13:46:02Z",
  "creator_id": 3,
  "namespace": {
    "id": 3,
    "name": "Diaspora",
    "path": "diaspora",
    "kind": "group",
    "full_path": "diaspora"
  },
  "import_status": "none",
  "import_error": null,
  "permissions": {
    "project_access": {
      "access_level": 10,
      "notification_level": 3
    },
    "group_access": {
      "access_level": 50,
      "notification_level": 3
    }
  },
  "archived": true,
  "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
  "license_url": "http://example.com/diaspora/diaspora-client/blob/master/LICENSE",
  "license": {
    "key": "lgpl-3.0",
    "name": "GNU Lesser General Public License v3.0",
    "nickname": "GNU LGPLv3",
    "html_url": "http://choosealicense.com/licenses/lgpl-3.0/",
    "source_url": "http://www.gnu.org/licenses/lgpl-3.0.txt"
  },
  "shared_runners_enabled": true,
  "forks_count": 0,
  "star_count": 0,
  "runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
  "ci_default_git_depth": 50,
  "public_jobs": true,
  "shared_with_groups": [],
  "only_allow_merge_if_pipeline_succeeds": false,
  "allow_merge_on_skipped_pipeline": false,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "remove_source_branch_after_merge": false,
  "request_access_enabled": false,
  "merge_method": "merge",
  "autoclose_referenced_issues": true,
  "suggestion_commit_message": null,
  "_links": {
    "self": "http://example.com/api/v4/projects",
    "issues": "http://example.com/api/v4/projects/1/issues",
    "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
    "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
    "labels": "http://example.com/api/v4/projects/1/labels",
    "events": "http://example.com/api/v4/projects/1/events",
    "members": "http://example.com/api/v4/projects/1/members"
  }
}

プロジェクトのアーカイブ解除

このアクションは冪等であるため、アーカイブされていないプロジェクトをアーカイブ解除してもプロジェクトは変更されません。

POST /projects/:id/unarchive
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/unarchive"

回答例

{
  "id": 3,
  "description": null,
  "default_branch": "master",
  "visibility": "private",
  "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git",
  "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  "web_url": "http://example.com/diaspora/diaspora-project-site",
  "readme_url": "http://example.com/diaspora/diaspora-project-site/blob/master/README.md",
  "tag_list": [
    "example",
    "disapora project"
  ],
  "owner": {
    "id": 3,
    "name": "Diaspora",
    "created_at": "2013-09-30T13:46:02Z"
  },
  "name": "Diaspora Project Site",
  "name_with_namespace": "Diaspora / Diaspora Project Site",
  "path": "diaspora-project-site",
  "path_with_namespace": "diaspora/diaspora-project-site",
  "issues_enabled": true,
  "open_issues_count": 1,
  "merge_requests_enabled": true,
  "jobs_enabled": true,
  "wiki_enabled": true,
  "snippets_enabled": false,
  "can_create_merge_request_in": true,
  "resolve_outdated_diff_discussions": false,
  "container_registry_enabled": false,
  "created_at": "2013-09-30T13:46:02Z",
  "last_activity_at": "2013-09-30T13:46:02Z",
  "creator_id": 3,
  "namespace": {
    "id": 3,
    "name": "Diaspora",
    "path": "diaspora",
    "kind": "group",
    "full_path": "diaspora"
  },
  "import_status": "none",
  "import_error": null,
  "permissions": {
    "project_access": {
      "access_level": 10,
      "notification_level": 3
    },
    "group_access": {
      "access_level": 50,
      "notification_level": 3
    }
  },
  "archived": false,
  "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
  "license_url": "http://example.com/diaspora/diaspora-client/blob/master/LICENSE",
  "license": {
    "key": "lgpl-3.0",
    "name": "GNU Lesser General Public License v3.0",
    "nickname": "GNU LGPLv3",
    "html_url": "http://choosealicense.com/licenses/lgpl-3.0/",
    "source_url": "http://www.gnu.org/licenses/lgpl-3.0.txt"
  },
  "shared_runners_enabled": true,
  "forks_count": 0,
  "star_count": 0,
  "runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
  "ci_default_git_depth": 50,
  "public_jobs": true,
  "shared_with_groups": [],
  "only_allow_merge_if_pipeline_succeeds": false,
  "allow_merge_on_skipped_pipeline": false,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "remove_source_branch_after_merge": false,
  "request_access_enabled": false,
  "merge_method": "merge",
  "autoclose_referenced_issues": true,
  "suggestion_commit_message": null,
  "_links": {
    "self": "http://example.com/api/v4/projects",
    "issues": "http://example.com/api/v4/projects/1/issues",
    "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
    "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
    "labels": "http://example.com/api/v4/projects/1/labels",
    "events": "http://example.com/api/v4/projects/1/events",
    "members": "http://example.com/api/v4/projects/1/members"
  }
}

プロジェクトの削除

このエンドポイントは

  • すべての関連リソース(イシュー、マージリクエストなど)を含むプロジェクトを削除します。
  • GitLab12.6のPremiumまたはSilver以上のティアから、プロジェクトを削除するためのマークを付けます。 実際の削除はインスタンス設定で指定された日数後に行われます。
DELETE /projects/:id
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス

削除されたプロジェクトの復元

GitLab 12.6 で導入されました

削除されたプロジェクトを復元します。

POST /projects/:id/restore
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス

ファイルのアップロード

指定したプロジェクトにファイルをアップロードし、イシューやマージリクエストの説明やコメントに使用します。

POST /projects/:id/uploads
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
file はい アップロードするファイル

ファイルシステムからファイルをアップロードするには、--form 引数を使用します。これにより、cURL はヘッダContent-Type: multipart/form-dataを使用してデータをポストします。file= パラメータは、ファイルシステム上のファイルを指し、その前に@を付ける必要があります。例えば、以下のようになります:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "file=@dk.png" "https://gitlab.example.com/api/v4/projects/5/uploads"

返されたオブジェクト:

{
  "alt": "dk",
  "url": "/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png",
  "full_path": "/namespace1/project1/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png",
  "markdown": "![dk](/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png)"
}

: 返されるurl はプロジェクトパスからの相対パスです。返されるfull_path はファイルへの絶対パスです。 Markdown コンテキストでは、markdown のフォーマットが使用されると、リンクは自動的に展開されます。

プロジェクトをグループで共有

プロジェクトをグループで共有できるようにします。

POST /projects/:id/share
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
group_id 整数 はい 共有するグループのID
group_access 整数 はい グループに与えるアクセスレベル
expires_at いいえ ISO 8601フォーマットでのシェア有効期限:2016-09-26

グループからプロジェクトの共有を解除します。成功すると204 を返し、内容は返されません。

DELETE /projects/:id/share/:group_id
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
group_id 整数 はい グループのID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/share/17"

フック

プロジェクトフックやWebhookとも呼ばれ、システム全体に適用されるシステムフックとは異なります。

プロジェクトフック一覧

プロジェクトフックのリストを取得します。

GET /projects/:id/hooks
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス

プロジェクトフック

プロジェクトのための特定のフックを取得します。

GET /projects/:id/hooks/:hook_id
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
hook_id 整数 はい プロジェクトフックのID
{
  "id": 1,
  "url": "http://example.com/hook",
  "project_id": 3,
  "push_events": true,
  "push_events_branch_filter": "",
  "issues_events": true,
  "confidential_issues_events": true,
  "merge_requests_events": true,
  "tag_push_events": true,
  "note_events": true,
  "confidential_note_events": true,
  "job_events": true,
  "pipeline_events": true,
  "wiki_page_events": true,
  "enable_ssl_verification": true,
  "created_at": "2012-10-12T17:04:47Z"
}

プロジェクトフックの追加

指定したプロジェクトにフックを追加します。

POST /projects/:id/hooks
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
url はい フックのURL
push_events ブーリアン いいえ プッシュイベントのトリガーフック
push_events_branch_filter いいえ ブランチが一致した場合のみ、プッシュイベントをトリガーフック
issues_events ブーリアン いいえ イシューイベントのトリガーフック
confidential_issues_events ブーリアン いいえ 機密イシューイベントのトリガーフック
merge_requests_events ブーリアン いいえ マージリクエストイベントのトリガーフック
tag_push_events ブーリアン いいえ タグプッシュイベントのトリガーフック
note_events ブーリアン いいえ ノートイベントのトリガーフック
confidential_note_events ブーリアン いいえ 機密ノートイベントのトリガーフック
job_events ブーリアン いいえ ジョブイベントのトリガーフック
pipeline_events ブーリアン いいえ パイプラインイベントのトリガーフック
wiki_page_events ブーリアン いいえ wikiイベントのトリガーフック
enable_ssl_verification ブーリアン いいえ フック発動時にSSL認証を実施
token いいえ 受信したペイロードを検証するためのシークレットトークン。

プロジェクトフックの編集

指定したプロジェクトのフックを編集します。

PUT /projects/:id/hooks/:hook_id
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
hook_id 整数 はい プロジェクトフックのID
url はい フックのURL
push_events ブーリアン いいえ プッシュイベントのトリガーフック
push_events_branch_filter いいえ ブランチが一致した場合のみ、プッシュイベントをトリガーフック
issues_events ブーリアン いいえ イシューイベントのトリガーフック
confidential_issues_events ブーリアン いいえ 機密イシューイベントのトリガーフック
merge_requests_events ブーリアン いいえ マージリクエストイベントのトリガーフック
tag_push_events ブーリアン いいえ タグプッシュイベントのトリガーフック
note_events ブーリアン いいえ ノートイベントのトリガーフック
confidential_note_events ブーリアン いいえ 機密ノートイベントのトリガーフック
job_events ブーリアン いいえ ジョブイベントのトリガーフック
pipeline_events ブーリアン いいえ パイプラインイベントのトリガーフック
wiki_events ブーリアン いいえ wikiイベントのトリガーフック
enable_ssl_verification ブーリアン いいえ フック発動時にSSL認証を実施
token いいえ 受信したペイロードを検証するためのシークレットトークン。

プロジェクトフックの削除

プロジェクトからフックを削除します。 これはべき等メソッドであり、複数回呼び出すことができます。 フックが利用可能であるかどうか。

DELETE /projects/:id/hooks/:hook_id
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
hook_id 整数 はい プロジェクトフックのID

JSONレスポンスは、フックが利用可能かどうかで異なることに注意してください。 JSONレスポンスで返される前にプロジェクトフックが利用可能な場合、または空のレスポンスが返されます。

フォーク関係

プロジェクトオーナーと管理者のみが利用できます。

既存プロジェクト間のforkされたfrom/to関係の作成

POST /projects/:id/fork/:forked_from_id
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
forked_from_id 身分証明書 はい からフォークされたプロジェクトのID。

フォークされた既存のリレーションシップを削除します。

DELETE /projects/:id/fork
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス

プロジェクト名で検索

認証済みユーザーがアクセス可能なプロジェクトを名前で検索します。 プロジェクトが公開されている場合、このエンドポイントは認証なしでアクセスできます。

GET /projects
属性 タイプ 必須 説明
search はい プロジェクト名に含まれる文字列
order_by いいえ idnamecreated_atlast_activity_at のいずれかのフィールドを指定してください。
sort いいえ asc またはdesc 順にソートされたリクエストを返します。
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects?search=test"

プロジェクトのハウスキーピングタスクの開始

GitLab 9.0で導入されました。

POST /projects/:id/housekeeping
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはNAMESPACE/PROJECT_NAME

プッシュルール

プロジェクトプッシュルールの取得

プロジェクトのプッシュルールを取得します。

GET /projects/:id/push_rule
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはNAMESPACE/PROJECT_NAME
{
  "id": 1,
  "project_id": 3,
  "commit_message_regex": "Fixes \d+\..*",
  "commit_message_negative_regex": "ssh\:\/\/",
  "branch_name_regex": "",
  "deny_delete_tag": false,
  "created_at": "2012-10-12T17:04:47Z",
  "member_check": false,
  "prevent_secrets": false,
  "author_email_regex": "",
  "file_name_regex": "",
  "max_file_size": 5,
  "commit_committer_check": false,
  "reject_unsigned_commits": false
}

GitLabプレミアム、シルバー以上のユーザーには、commit_committer_checkreject_unsigned_commits パラメータも表示されます:

{
  "id": 1,
  "project_id": 3,
  "commit_committer_check": false,
  "reject_unsigned_commits": false
  ...
}

プロジェクトプッシュルールの追加

指定したプロジェクトにプッシュルールを追加します。

POST /projects/:id/push_rule
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはNAMESPACE/PROJECT_NAME
deny_delete_tag ブーリアン いいえ タグの削除を拒否
member_check ブーリアン いいえ 既存のGitLabユーザーに作成者(メール)別のコミットを制限
prevent_secrets ブーリアン いいえ GitLabは秘密が含まれている可能性のあるファイルを拒否します。
commit_message_regex いいえ すべてのコミットメッセージはこれに一致しなければなりません。Fixed \d+\..*
commit_message_negative_regex いいえ これにマッチするコミットメッセージは許されません。ssh\:\/\/
branch_name_regex いいえ すべてのブランチ名はこれに一致する必要があります。(feature|hotfix)\/*
author_email_regex いいえ すべてのコミット作成者の電子メールはこれに一致する必要があります。@my-company.com$
file_name_regex いいえ すべてのコミットされたファイル名はこれに一致してはなりません。(jar|exe)$
max_file_size 整数 いいえ 最大ファイルサイズ(MB)
commit_committer_check ブーリアン いいえ ユーザーがこのリポジトリにプッシュできるのは、自分の認証済みメールでコミットしたものだけです。
reject_unsigned_commits ブーリアン いいえ GPGで署名されていないコミットを拒否します。

プロジェクトプッシュルールの編集

指定したプロジェクトのプッシュルールを編集します。

PUT /projects/:id/push_rule
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはNAMESPACE/PROJECT_NAME
deny_delete_tag ブーリアン いいえ タグの削除を拒否
member_check ブーリアン いいえ 既存のGitLabユーザーに作成者(メール)別のコミットを制限
prevent_secrets ブーリアン いいえ GitLabは秘密が含まれている可能性のあるファイルを拒否します。
commit_message_regex いいえ すべてのコミットメッセージはこれに一致しなければなりません。Fixed \d+\..*
commit_message_negative_regex いいえ これにマッチするコミットメッセージは許されません。ssh\:\/\/
branch_name_regex いいえ すべてのブランチ名はこれに一致する必要があります。(feature|hotfix)\/*
author_email_regex いいえ すべてのコミット作成者の電子メールはこれに一致する必要があります。@my-company.com$
file_name_regex いいえ すべてのコミットされたファイル名はこれに一致してはなりません。(jar|exe)$
max_file_size 整数 いいえ 最大ファイルサイズ(MB)
commit_committer_check ブーリアン いいえ ユーザーがこのリポジトリにプッシュできるのは、自分の認証済みメールでコミットしたものだけです。
reject_unsigned_commits ブーリアン いいえ GPG署名されていないコミットを拒否します。

プロジェクトプッシュルールの削除

GitLab Starter9.0で導入されました。

プロジェクトからプッシュ・ルールを削除します。 このメソッドは冪等であり、複数回呼び出すことができます。 プッシュ・ルールが使用可能かどうかは、どちらかです。

DELETE /projects/:id/push_rule
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス

プロジェクトを新しいネームスペースに移します。

GitLab 11.1で導入されました。

PUT /projects/:id/transfer
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
namespace 整数/文字列 はい プロジェクトに転送するネームスペースのIDまたはパス。

ブランチ

詳しくはブランチのドキュメントをご覧ください。

プロジェクトのインポート/エクスポート

詳しくはプロジェクトのインポート/エクスポートのドキュメントをご覧ください。

プロジェクトメンバー

詳しくはプロジェクトメンバーのドキュメントをご覧ください。

プロジェクトのプルミラーリングプロセスの開始

GitLab Starter10.3 で導入されました。

POST /projects/:id/mirror/pull
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

プロジェクト・バッジ

詳しくはプロジェクトバッジのドキュメントをご覧ください。

イシューおよびマージリクエストの説明テンプレート

デフォルト以外のイシューとマージリクエストの説明テンプレートはプロジェクトのリポジトリ内部で管理されます。 そのため、リポジトリAPIと リポジトリファイルAPIを通じてAPI経由で管理することができます。

git リポジトリのスナップショットのダウンロード

GitLab 10.7 で導入されました。

このエンドポイントには、管理者ユーザーのみがアクセスできます。

Gitリポジトリのスナップショットをダウンロードします。 このスナップショットは常に圧縮されていないtar形式です。

git clone が機能しないほどリポジトリが破損している場合、スナップショットによってデータの一部を取得できる可能性があります。

GET /projects/:id/snapshot
属性 タイプ 必須 説明
id 整数/文字列 はい プロジェクトのIDまたはURLエンコードされたパス
wiki ブーリアン いいえ プロジェクトのリポジトリではなくwikiのリポジトリをダウンロードするかどうか