正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

プロジェクトフォーク

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

このAPIを使用して、GitLabプロジェクトのフォークを管理します。詳細については、forks(../user/project/repository/forking_workflow.md)を参照してください。

プロジェクトをフォークする

個人のネームスペースまたは指定されたネームスペースにプロジェクトをフォークします。

前提要件:

  • 認証済みである必要があります。

プロジェクトのフォーク操作は非同期で、バックグラウンドジョブで完了します。リクエストはすぐに返されます。プロジェクトのフォークが完了したかどうかを判断するには、新しいプロジェクトのimport_statusをクエリします。

POST /projects/:id/fork
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
branches文字列いいえブランチをフォークします(すべてのブランチの場合は空)。
description文字列いいえフォーク後に結果として得られるプロジェクトに割り当てられた説明。
mr_default_target_selfブール値いいえフォークされたプロジェクトの場合、マージリクエストのターゲットをこのプロジェクトに設定します。falseの場合、ターゲットはアップストリームプロジェクトになります。
name文字列いいえフォーク後に結果として得られるプロジェクトに割り当てられた名前。
namespace_id整数いいえプロジェクトのフォーク先のネームスペースのID。
namespace_path文字列いいえプロジェクトのフォーク先のネームスペースのパス。
namespace整数または文字列いいえ_(非推奨)_プロジェクトのフォーク先のネームスペースのIDまたはパス。
path文字列いいえフォーク後に結果として得られるプロジェクトに割り当てられたパス。
visibility文字列いいえフォーク後に結果として得られるプロジェクトに割り当てられた表示レベル

プロジェクトのフォークの一覧

指定されたプロジェクトとの間に確立されたフォークした関係を持つ、アクセス可能なプロジェクトを一覧表示します。

GET /projects/:id/forks

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
archivedブール値いいえアーカイブ状態で制限します。
membershipブール値いいえ現在のユーザーがメンバーであるプロジェクトで制限します。
min_access_level整数いいえ現在のユーザーの最小ロール(access_levelで制限します。
order_by文字列いいえidnamepathcreated_atupdated_atstar_count、またはlast_activity_atのフィールドで並べ替えられたプロジェクトを返します。デフォルトはcreated_atです。
ownedブール値いいえ現在のユーザーが明示的に所有するプロジェクトで制限します。
search文字列いいえ検索条件に一致するプロジェクトのリストを返します。
simpleブール値いいえプロジェクトごとに制限されたフィールドのみを返します。認証がない場合、このオペレーションは何も行いません。単純なフィールドのみが返されます。
sort文字列いいえascまたはdescの順にソートされたプロジェクトを返します。デフォルトはdescです。
starredブール値いいえ現在のユーザーがお気に入りに登録したプロジェクトで制限します。
statisticsブール値いいえプロジェクトの統計を含めます。レポーター以上のロールを持つユーザーのみが利用できます。
updated_after日時いいえ指定された時刻以降に最終更新が行われたプロジェクトに結果を制限します。形式: ISO 8601(YYYY-MM-DDTHH:MM:SSZ)。GitLab 15.10で導入されました。
updated_before日時いいえ指定された時刻以前に最終更新が行われたプロジェクトに結果を制限します。形式: ISO 8601(YYYY-MM-DDTHH:MM:SSZ)。GitLab 15.10で導入されました。
visibility文字列いいえ表示レベル(publicinternalprivate)で制限します。
with_custom_attributesブール値いいえ応答にカスタム属性を含めます。(管理者のみ)
with_issues_enabledブール値いいえ有効になっているイシュー機能で制限します。
with_merge_requests_enabledブール値いいえ有効になっているマージリクエスト機能で制限します。

リクエスト例:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/forks"

レスポンス例:

[
  {
    "id": 3,
    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
    "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
    "default_branch": "main",
    "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/main/README.md",
    "tag_list": [ //deprecated, use `topics` instead
      "example",
      "disapora project"
    ],
    "topics": [
      "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",
    "repository_object_format": "sha1",
    "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, // deprecated, use container_registry_access_level instead
    "container_registry_access_level": "disabled",
    "security_and_compliance_access_level": "disabled",
    "created_at": "2013-09-30T13:46:02Z",
    "updated_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,
    "group_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,
    "restrict_user_defined_variables": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "squash_option": "default_on",
    "autoclose_referenced_issues": true,
    "enforce_auth_checks_on_uploads": true,
    "suggestion_commit_message": null,
    "merge_commit_template": null,
    "container_registry_image_prefix": "registry.example.com/diaspora/diaspora-project-site",
    "_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",
      "cluster_agents": "http://example.com/api/v4/projects/1/cluster_agents"
    }
  }
]

プロジェクト間のフォーク関係の作成

プロジェクト間のフォーク関係を作成します。

前提要件:

  • 管理者であるか、プロジェクトのオーナーロールが割り当てられている必要があります。
POST /projects/:id/fork/:forked_from_id

サポートされている属性は以下のとおりです:

属性必須説明
forked_from_idIDはいフォーク元のプロジェクトのID。
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス

プロジェクト間のフォーク関係の削除

プロジェクト間のフォーク関係を削除します。

前提要件:

  • 管理者であるか、プロジェクトのオーナーロールが割り当てられている必要があります。
DELETE /projects/:id/fork

サポートされている属性は以下のとおりです:

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