InfoGrab Docs

프로젝트 포크 API

요약

이 API를 사용하여 GitLab 프로젝트의 포크를 관리합니다. 지정된 프로젝트의 포크를 생성합니다. 프로젝트의 포킹 작업은 비동기식으로 백그라운드 잡에서 완료됩니다. 서비스 계정을 사용하여 프로젝트를 포크할 때는 namespace_id 또는 namespace_path 중 하나를 제공해야 합니다.

이 API를 사용하여 GitLab 프로젝트의 포크를 관리합니다. 자세한 내용은 포크를 참조하세요.

프로젝트 포크 생성#

지정된 프로젝트의 포크를 생성합니다.

필수 요건:

  • 인증되어 있어야 합니다.

프로젝트의 포킹 작업은 비동기식으로 백그라운드 잡에서 완료됩니다. 요청은 즉시 반환됩니다. 프로젝트 포크가 완료되었는지 확인하려면 새 프로젝트의 import_status를 쿼리하세요.

POST /projects/:id/fork
속성 유형 필수 여부 설명
id 정수 또는 문자열 Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
branches 문자열 No 포크할 브랜치(모든 브랜치는 비움).
description 문자열 No 포크 후 결과 프로젝트에 할당되는 설명.
mr_default_target_self 불리언 No 포크된 프로젝트의 경우 머지 리퀘스트를 이 프로젝트로 대상 지정합니다. false이면 대상은 업스트림 프로젝트입니다.
name 문자열 No 포크 후 결과 프로젝트에 할당되는 이름.
namespace_id 정수 No 프로젝트가 포크되는 네임스페이스의 ID.
namespace_path 문자열 No 프로젝트가 포크되는 네임스페이스의 경로.
namespace 정수 또는 문자열 No (더 이상 사용되지 않음) 프로젝트가 포크되는 네임스페이스의 ID 또는 경로.
path 문자열 No 포크 후 결과 프로젝트에 할당되는 경로.
visibility 문자열 No 포크 후 결과 프로젝트에 할당되는 공개 수준.
Note

서비스 계정을 사용하여 프로젝트를 포크할 때는 namespace_id 또는 namespace_path 중 하나를 제공해야 합니다. 서비스 계정은 개인 네임스페이스로 프로젝트를 포크할 수 없습니다. 자세한 내용은 그룹 또는 프로젝트에 서비스 계정 추가를 참조하세요.

프로젝트의 모든 포크 나열#

지정된 프로젝트의 모든 포크를 나열합니다. 액세스 가능한 포크만 반환됩니다.

GET /projects/:id/forks

지원되는 속성:

속성 유형 필수 여부 설명
id 정수 또는 문자열 Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
archived 불리언 No 보관 상태로 제한.
membership 불리언 No 현재 사용자가 멤버인 프로젝트로 제한.
min_access_level 정수 No 현재 사용자가 최소한 지정된 액세스 수준을 가진 프로젝트로 제한. 가능한 값: 5(최소 액세스), 10(게스트), 15(기획자), 20(보고자), 25(보안 관리자), 30(개발자), 40(유지 관리자), 50(소유자).
order_by 문자열 No id, name, path, created_at, updated_at, star_count, 또는 last_activity_at 필드로 정렬된 프로젝트 반환. 기본값은 created_at.
owned 불리언 No 현재 사용자가 명시적으로 소유한 프로젝트로 제한.
search 문자열 No 검색 기준과 일치하는 프로젝트 목록 반환.
simple 불리언 No 각 프로젝트에 대한 제한된 필드만 반환. 인증 없이는 이 작업은 효과 없음; 단순 필드만 반환됨.
sort 문자열 No asc 또는 desc 순서로 정렬된 프로젝트 반환. 기본값은 desc.
starred 불리언 No 현재 사용자가 즐겨찾기한 프로젝트로 제한.
statistics 불리언 No 프로젝트 통계 포함. Reporter, Developer, Maintainer 또는 Owner 역할의 사용자만 사용 가능.
updated_after 날짜시간 No 지정된 시간 이후에 마지막으로 업데이트된 프로젝트로 결과 제한. 형식: ISO 8601 (YYYY-MM-DDTHH:MM:SSZ). GitLab 15.10에서 도입됨.
updated_before 날짜시간 No 지정된 시간 이전에 마지막으로 업데이트된 프로젝트로 결과 제한. 형식: ISO 8601 (YYYY-MM-DDTHH:MM:SSZ). GitLab 15.10에서 도입됨.
visibility 문자열 No public, internal, 또는 private 공개 수준으로 제한.
with_custom_attributes 불리언 No 응답에 사용자 정의 속성 포함. (관리자만)
with_issues_enabled 불리언 No 이슈 기능이 활성화된 프로젝트로 제한.
with_merge_requests_enabled 불리언 No 머지 리퀘스트 기능이 활성화된 프로젝트로 제한.

예시 요청:

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"
    }
  }
]

포크 관계 만들기#

두 지정된 프로젝트 간에 포크 관계를 만듭니다.

필수 요건:

  • 관리자이거나 프로젝트에 Owner 역할이 할당되어 있어야 합니다.
POST /projects/:id/fork/:forked_from_id

지원되는 속성:

속성 유형 필수 여부 설명
forked_from_id ID Yes 포크된 프로젝트의 ID.
id 정수 또는 문자열 Yes 프로젝트의 ID 또는 URL 인코딩된 경로.

포크 관계 삭제#

두 지정된 프로젝트 간의 포크 관계를 삭제합니다.

필수 요건:

  • 관리자이거나 프로젝트에 Owner 역할이 할당되어 있어야 합니다.
DELETE /projects/:id/fork

지원되는 속성:

속성 유형 필수 여부 설명
id 정수 또는 문자열 Yes 프로젝트의 ID 또는 URL 인코딩된 경로.

프로젝트 포크 API

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

이 API를 사용하여 GitLab 프로젝트의 포크를 관리합니다. 지정된 프로젝트의 포크를 생성합니다. 프로젝트의 포킹 작업은 비동기식으로 백그라운드 잡에서 완료됩니다. 서비스 계정을 사용하여 프로젝트를 포크할 때는 namespace_id 또는 namespace_path 중 하나를 제공해야 합니다.

이 API를 사용하여 GitLab 프로젝트의 포크를 관리합니다. 자세한 내용은 포크를 참조하세요.

프로젝트 포크 생성#

지정된 프로젝트의 포크를 생성합니다.

필수 요건:

  • 인증되어 있어야 합니다.

프로젝트의 포킹 작업은 비동기식으로 백그라운드 잡에서 완료됩니다. 요청은 즉시 반환됩니다. 프로젝트 포크가 완료되었는지 확인하려면 새 프로젝트의 import_status를 쿼리하세요.

POST /projects/:id/fork
속성 유형 필수 여부 설명
id 정수 또는 문자열 Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
branches 문자열 No 포크할 브랜치(모든 브랜치는 비움).
description 문자열 No 포크 후 결과 프로젝트에 할당되는 설명.
mr_default_target_self 불리언 No 포크된 프로젝트의 경우 머지 리퀘스트를 이 프로젝트로 대상 지정합니다. false이면 대상은 업스트림 프로젝트입니다.
name 문자열 No 포크 후 결과 프로젝트에 할당되는 이름.
namespace_id 정수 No 프로젝트가 포크되는 네임스페이스의 ID.
namespace_path 문자열 No 프로젝트가 포크되는 네임스페이스의 경로.
namespace 정수 또는 문자열 No (더 이상 사용되지 않음) 프로젝트가 포크되는 네임스페이스의 ID 또는 경로.
path 문자열 No 포크 후 결과 프로젝트에 할당되는 경로.
visibility 문자열 No 포크 후 결과 프로젝트에 할당되는 공개 수준.
Note

서비스 계정을 사용하여 프로젝트를 포크할 때는 namespace_id 또는 namespace_path 중 하나를 제공해야 합니다. 서비스 계정은 개인 네임스페이스로 프로젝트를 포크할 수 없습니다. 자세한 내용은 그룹 또는 프로젝트에 서비스 계정 추가를 참조하세요.

프로젝트의 모든 포크 나열#

지정된 프로젝트의 모든 포크를 나열합니다. 액세스 가능한 포크만 반환됩니다.

GET /projects/:id/forks

지원되는 속성:

속성 유형 필수 여부 설명
id 정수 또는 문자열 Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
archived 불리언 No 보관 상태로 제한.
membership 불리언 No 현재 사용자가 멤버인 프로젝트로 제한.
min_access_level 정수 No 현재 사용자가 최소한 지정된 액세스 수준을 가진 프로젝트로 제한. 가능한 값: 5(최소 액세스), 10(게스트), 15(기획자), 20(보고자), 25(보안 관리자), 30(개발자), 40(유지 관리자), 50(소유자).
order_by 문자열 No id, name, path, created_at, updated_at, star_count, 또는 last_activity_at 필드로 정렬된 프로젝트 반환. 기본값은 created_at.
owned 불리언 No 현재 사용자가 명시적으로 소유한 프로젝트로 제한.
search 문자열 No 검색 기준과 일치하는 프로젝트 목록 반환.
simple 불리언 No 각 프로젝트에 대한 제한된 필드만 반환. 인증 없이는 이 작업은 효과 없음; 단순 필드만 반환됨.
sort 문자열 No asc 또는 desc 순서로 정렬된 프로젝트 반환. 기본값은 desc.
starred 불리언 No 현재 사용자가 즐겨찾기한 프로젝트로 제한.
statistics 불리언 No 프로젝트 통계 포함. Reporter, Developer, Maintainer 또는 Owner 역할의 사용자만 사용 가능.
updated_after 날짜시간 No 지정된 시간 이후에 마지막으로 업데이트된 프로젝트로 결과 제한. 형식: ISO 8601 (YYYY-MM-DDTHH:MM:SSZ). GitLab 15.10에서 도입됨.
updated_before 날짜시간 No 지정된 시간 이전에 마지막으로 업데이트된 프로젝트로 결과 제한. 형식: ISO 8601 (YYYY-MM-DDTHH:MM:SSZ). GitLab 15.10에서 도입됨.
visibility 문자열 No public, internal, 또는 private 공개 수준으로 제한.
with_custom_attributes 불리언 No 응답에 사용자 정의 속성 포함. (관리자만)
with_issues_enabled 불리언 No 이슈 기능이 활성화된 프로젝트로 제한.
with_merge_requests_enabled 불리언 No 머지 리퀘스트 기능이 활성화된 프로젝트로 제한.

예시 요청:

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"
    }
  }
]

포크 관계 만들기#

두 지정된 프로젝트 간에 포크 관계를 만듭니다.

필수 요건:

  • 관리자이거나 프로젝트에 Owner 역할이 할당되어 있어야 합니다.
POST /projects/:id/fork/:forked_from_id

지원되는 속성:

속성 유형 필수 여부 설명
forked_from_id ID Yes 포크된 프로젝트의 ID.
id 정수 또는 문자열 Yes 프로젝트의 ID 또는 URL 인코딩된 경로.

포크 관계 삭제#

두 지정된 프로젝트 간의 포크 관계를 삭제합니다.

필수 요건:

  • 관리자이거나 프로젝트에 Owner 역할이 할당되어 있어야 합니다.
DELETE /projects/:id/fork

지원되는 속성:

속성 유형 필수 여부 설명
id 정수 또는 문자열 Yes 프로젝트의 ID 또는 URL 인코딩된 경로.