项目派生 API
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
使用此 API 管理极狐GitLab 项目的分叉。有关更多信息,请参见 forks。
分叉项目
将项目分叉到您的个人命名空间或提供的命名空间。
先决条件:
- 您必须经过身份验证。
项目的分叉操作是异步的,并且在后台任务中完成。请求会立即返回。要确定项目的分叉是否已完成,请查询新项目的 import_status。
plaintextPOST /projects/:id/fork
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id | integer 或 string | 是 | 项目的 ID 或 URL 编码路径。 |
branches | string | 否 | 要分叉的分支(为空表示所有分支)。 |
description | string | 否 | 分叉后分配给生成项目的描述。 |
mr_default_target_self | boolean | 否 | 对于分叉项目,目标合并请求到此项目。如果为 false,则目标是上游项目。 |
name | string | 否 | 分叉后分配给生成项目的名称。 |
namespace_id | integer | 否 | 项目分叉到的命名空间的 ID。 |
namespace_path | string | 否 | 项目分叉到的命名空间的路径。 |
namespace | integer 或 string | 否 | (已弃用) 项目分叉到的命名空间的 ID 或路径。 |
path | string | 否 | 分叉后分配给生成项目的路径。 |
visibility | string | 否 | 分叉后分配给生成项目的 可见性级别。 |
列出项目的分叉
列出您可以访问的与指定项目具有已建立分叉关系的项目。
plaintextGET /projects/:id/forks
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id | integer 或 string | 是 | 项目的 ID 或 URL 编码路径。 |
archived | boolean | 否 | 根据存档状态限制。 |
membership | boolean | 否 | 根据当前用户成员的项目限制。 |
min_access_level | integer | 否 | 根据当前用户的最低 角色 (access_level) 限制。 |
order_by | string | 否 | 返回按 id、name、path、created_at、updated_at、star_count 或 last_activity_at 字段排序的项目。默认是 created_at。 |
owned | boolean | 否 | 根据当前用户显式拥有的项目限制。 |
search | string | 否 | 返回符合搜索条件的项目列表。 |
simple | boolean | 否 | 仅返回每个项目的有限字段。没有身份验证,此操作无效;仅返回简单字段。 |
sort | string | 否 | 返回按 asc 或 desc 顺序排序的项目。默认是 desc。 |
starred | boolean | 否 | 根据当前用户加星标的项目限制。 |
statistics | boolean | 否 | 包括项目统计。仅对至少拥有报告者角色的用户可用。 |
updated_after | datetime | 否 | 限制结果为指定时间之后最后更新的项目。格式:ISO 8601 (YYYY-MM-DDTHH:MM:SSZ)。在极狐GitLab 15.10 中引入。 |
updated_before | datetime | 否 | 限制结果为指定时间之前最后更新的项目。格式:ISO 8601 (YYYY-MM-DDTHH:MM:SSZ)。在极狐GitLab 15.10 中引入。 |
visibility | string | 否 | 根据可见性 public、internal 或 private 限制。 |
with_custom_attributes | boolean | 否 | 在响应中包括 自定义属性。(仅限管理员) |
with_issues_enabled | boolean | 否 | 根据启用的议题功能限制。 |
with_merge_requests_enabled | boolean | 否 | 根据启用的合并请求功能限制。 |
示例请求:
shellcurl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/forks"
示例响应:
json1[ 2 { 3 "id": 3, 4 "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", 5 "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>", 6 "default_branch": "main", 7 "visibility": "internal", 8 "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git", 9 "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git", 10 "web_url": "http://example.com/diaspora/diaspora-project-site", 11 "readme_url": "http://example.com/diaspora/diaspora-project-site/blob/main/README.md", 12 "tag_list": [ //deprecated, use `topics` instead 13 "example", 14 "disapora project" 15 ], 16 "topics": [ 17 "example", 18 "disapora project" 19 ], 20 "name": "Diaspora Project Site", 21 "name_with_namespace": "Diaspora / Diaspora Project Site", 22 "path": "diaspora-project-site", 23 "path_with_namespace": "diaspora/diaspora-project-site", 24 "repository_object_format": "sha1", 25 "issues_enabled": true, 26 "open_issues_count": 1, 27 "merge_requests_enabled": true, 28 "jobs_enabled": true, 29 "wiki_enabled": true, 30 "snippets_enabled": false, 31 "can_create_merge_request_in": true, 32 "resolve_outdated_diff_discussions": false, 33 "container_registry_enabled": false, // deprecated, use container_registry_access_level instead 34 "container_registry_access_level": "disabled", 35 "security_and_compliance_access_level": "disabled", 36 "created_at": "2013-09-30T13:46:02Z", 37 "updated_at": "2013-09-30T13:46:02Z", 38 "last_activity_at": "2013-09-30T13:46:02Z", 39 "creator_id": 3, 40 "namespace": { 41 "id": 3, 42 "name": "Diaspora", 43 "path": "diaspora", 44 "kind": "group", 45 "full_path": "diaspora" 46 }, 47 "import_status": "none", 48 "archived": true, 49 "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png", 50 "shared_runners_enabled": true, 51 "group_runners_enabled": true, 52 "forks_count": 0, 53 "star_count": 1, 54 "public_jobs": true, 55 "shared_with_groups": [], 56 "only_allow_merge_if_pipeline_succeeds": false, 57 "allow_merge_on_skipped_pipeline": false, 58 "restrict_user_defined_variables": false, 59 "only_allow_merge_if_all_discussions_are_resolved": false, 60 "remove_source_branch_after_merge": false, 61 "request_access_enabled": false, 62 "merge_method": "merge", 63 "squash_option": "default_on", 64 "autoclose_referenced_issues": true, 65 "enforce_auth_checks_on_uploads": true, 66 "suggestion_commit_message": null, 67 "merge_commit_template": null, 68 "container_registry_image_prefix": "registry.example.com/diaspora/diaspora-project-site", 69 "_links": { 70 "self": "http://example.com/api/v4/projects", 71 "issues": "http://example.com/api/v4/projects/1/issues", 72 "merge_requests": "http://example.com/api/v4/projects/1/merge_requests", 73 "repo_branches": "http://example.com/api/v4/projects/1/repository_branches", 74 "labels": "http://example.com/api/v4/projects/1/labels", 75 "events": "http://example.com/api/v4/projects/1/events", 76 "members": "http://example.com/api/v4/projects/1/members", 77 "cluster_agents": "http://example.com/api/v4/projects/1/cluster_agents" 78 } 79 } 80]
在项目之间创建分叉关系
在项目之间创建分叉关系。
先决条件:
- 您必须是管理员或在项目上分配了所有者角色。
plaintextPOST /projects/:id/fork/:forked_from_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
forked_from_id | ID | 是 | 分叉自的项目 ID。 |
id | integer 或 string | 是 | 项目的 ID 或 URL 编码路径。 |
删除项目之间的分叉关系
删除项目之间的分叉关系。
先决条件:
- 您必须是管理员或在项目上分配了所有者角色。
plaintextDELETE /projects/:id/fork
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id | integer 或 string | 是 | 项目的 ID 或 URL 编码路径。 |