Help us learn about your current experience with the documentation. Take the survey.
项目分支 API
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
使用此 API 来管理 GitLab 项目的分支。更多信息,请参阅 forks。
分支一个项目
将项目分支到您的个人命名空间或提供的命名空间中。
先决条件:
- 您必须经过身份验证。
项目的分支操作是异步的,在后台作业中完成。请求会立即返回。要确定项目分支是否完成,请查询新项目的 import_status。
POST /projects/:id/fork| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer or string | 是 | 项目的 ID 或 URL 编码路径。 |
branches |
string | 否 | 要分支的分支(空表示所有分支)。 |
description |
string | 否 | 分配给分支后生成项目的描述。 |
mr_default_target_self |
boolean | 否 | 对于分支项目,将合并请求的目标设为此项目。如果为 false,则目标是上游项目。 |
name |
string | 否 | 分配给分支后生成项目的名称。 |
namespace_id |
integer | 否 | 项目被分支到的命名空间的 ID。 |
namespace_path |
string | 否 | 项目被分支到的命名空间的路径。 |
namespace |
integer or string | 否 | (已弃用) 项目被分支到的命名空间的 ID 或路径。 |
path |
string | 否 | 分配给分支后生成项目的路径。 |
visibility |
string | 否 | 分配给分支后生成项目的 可见性级别。 |
列出项目的分支
列出您有权访问的、与指定项目建立了分支关系的项目。
GET /projects/:id/forks支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer or 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 | 否 | 包含项目统计信息。仅对至少具有 Reporter 角色的用户可用。 |
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 | 否 | 按启用的 issues 功能限制。 |
with_merge_requests_enabled |
boolean | 否 | 按启用的 merge requests 功能限制。 |
示例请求:
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_id |
ID | 是 | 被分支的项目的 ID。 |
id |
integer or string | 是 | 项目的 ID 或 URL 编码路径。 |
删除项目之间的分支关系
删除项目之间的分支关系。
先决条件:
- 您必须是管理员或在项目上被分配了所有者角色。
DELETE /projects/:id/fork支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer or string | 是 | 项目的 ID 或 URL 编码路径。 |