InfoGrab Docs

풀 미러링 API

요약

이 API를 사용하여 프로젝트 풀 미러링을 관리합니다. 지정된 프로젝트의 풀 미러 세부 정보를 조회합니다. 성공하면 200 OK와 다음 응답 속성을 반환합니다: 프로젝트의 풀 미러링 설정을 업데이트합니다. 성공하면 200 OK와 업데이트된 풀 미러 구성을 반환합니다.

이 API를 사용하여 프로젝트 풀 미러링을 관리합니다.

프로젝트 풀 미러 세부 정보 조회#

히스토리
  • GitLab 17.5에서 미러 구성 정보를 포함하도록 응답을 확장했습니다. 다음 구성 설정이 포함됩니다: enabled, mirror_trigger_builds, only_mirror_protected_branches, mirror_overwrites_diverged_branches, mirror_branch_regex.

지정된 프로젝트의 풀 미러 세부 정보를 조회합니다.

GET /projects/:id/mirror/pull

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes ID 또는 프로젝트의 URL 인코딩된 경로.

성공하면 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
enabled boolean true이면 미러가 활성화됩니다.
id integer 미러 구성의 고유 식별자.
last_error string or null 가장 최근의 오류 메시지(있는 경우). 오류가 없으면 null.
last_successful_update_at string 마지막 성공적인 미러 업데이트의 타임스탬프.
last_update_at string 가장 최근의 미러 업데이트 시도 타임스탬프.
last_update_started_at string 마지막 미러 업데이트 프로세스 시작 타임스탬프.
mirror_branch_regex string or null 어떤 브랜치를 미러링할지 필터링하기 위한 정규식 패턴. 설정되지 않으면 null.
mirror_overwrites_diverged_branches boolean true이면 미러링 중 분기된 브랜치를 덮어씁니다.
mirror_trigger_builds boolean true이면 미러 업데이트에 대한 빌드를 트리거합니다.
only_mirror_protected_branches boolean or null true이면 보호된 브랜치만 미러링됩니다. 설정되지 않으면 값이 null입니다.
update_status string 미러 업데이트 프로세스의 상태. 가능한 값: none, scheduled, started, finished, failed, canceled.
url string 미러링된 리포지터리의 URL.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

응답 예시:

{
  "id": 101486,
  "last_error": null,
  "last_successful_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_started_at": "2020-01-06T17:31:55.864Z",
  "update_status": "finished",
  "url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git",
  "enabled": true,
  "mirror_trigger_builds": true,
  "only_mirror_protected_branches": null,
  "mirror_overwrites_diverged_branches": false,
  "mirror_branch_regex": null
}

프로젝트 풀 미러링 설정 업데이트#

히스토리
  • GitLab 17.6에서 도입되었습니다.

프로젝트의 풀 미러링 설정을 업데이트합니다.

PUT /projects/:id/mirror/pull

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes ID 또는 프로젝트의 URL 인코딩된 경로.
auth_password string No 프로젝트를 풀 미러링하기 위한 인증에 사용되는 암호.
auth_user string No 프로젝트를 풀 미러링하기 위한 인증에 사용되는 사용자명.
enabled boolean No true로 설정하면 프로젝트에서 풀 미러링을 활성화합니다.
mirror_branch_regex string No 정규식을 포함합니다. 정규식과 일치하는 이름의 브랜치만 미러링됩니다. only_mirror_protected_branches가 비활성화되어야 합니다.
mirror_overwrites_diverged_branches boolean No true이면 분기된 브랜치를 덮어씁니다.
mirror_trigger_builds boolean No true이면 미러 업데이트에 대한 파이프라인을 트리거합니다.
only_mirror_protected_branches boolean No true이면 보호된 브랜치만 미러링하도록 제한합니다.
url string No 미러링되는 원격 리포지터리의 URL.

성공하면 200 OK와 업데이트된 풀 미러 구성을 반환합니다.

풀 미러링 추가 요청 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --data '{
    "enabled": true,
    "url": "https://gitlab.example.com/group/project.git",
    "auth_user": "user",
    "auth_password": "password"
  }' \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

풀 미러링 제거 요청 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "enabled=false" \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

응답 예시:

{
  "id": 101486,
  "last_error": null,
  "last_successful_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_started_at": "2020-01-06T17:31:55.864Z",
  "update_status": "finished",
  "url": "https://gitlab.example.com/group/project.git",
  "enabled": true,
  "mirror_trigger_builds": false,
  "only_mirror_protected_branches": null,
  "mirror_overwrites_diverged_branches": false,
  "mirror_branch_regex": null
}

프로젝트의 풀 미러링 업데이트 (지원 중단)#

히스토리
  • 기능 플래그 mirror_only_branches_match_regex가 GitLab 16.0에서 기본 활성화되었습니다.
  • GitLab 16.2에서 일반 가용성이 되었습니다. 기능 플래그 mirror_only_branches_match_regex가 제거되었습니다.
  • GitLab 17.6에서 지원 중단되었습니다.
Warning

이 구성 옵션은 GitLab 17.6에서 지원 중단되었으며 API v5에서 제거될 예정입니다. 대신 새 구성 및 엔드포인트를 사용하세요. 이 변경은 중단적 변경입니다.

원격 리포지터리가 공개적으로 접근 가능하거나 username:token 인증을 사용하는 경우 프로젝트를 생성 또는 업데이트할 때 API를 사용하여 풀 미러링을 구성합니다.

HTTP 리포지터리가 공개적으로 접근 가능하지 않은 경우 URL에 인증 정보를 추가할 수 있습니다. 예를 들어 https://username:token@gitlab.company.com/group/project.git(여기서 tokenapi 범위가 활성화된 개인 접근 토큰).

지원되는 속성:

속성 유형 필수 설명
import_url string Yes 미러링되는 원격 리포지터리의 URL (필요 시 user:token 포함).
mirror boolean Yes true이면 풀 미러링을 활성화합니다.
mirror_branch_regex string No 정규식을 포함합니다. 정규식과 일치하는 이름의 브랜치만 미러링됩니다. only_mirror_protected_branches가 비활성화되어야 합니다.
mirror_trigger_builds boolean No true이면 미러 업데이트에 대한 파이프라인을 트리거합니다.
only_mirror_protected_branches boolean No true이면 보호된 브랜치만 미러링하도록 제한합니다.

풀 미러링으로 프로젝트를 생성하는 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "new_project",
    "namespace_id": "1",
    "mirror": true,
    "import_url": "https://username:token@gitlab.example.com/group/project.git"
  }' \
  --url "https://gitlab.example.com/api/v4/projects/"

풀 미러링 추가 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "mirror=true&import_url=https://username:token@gitlab.example.com/group/project.git" \
  --url "https://gitlab.example.com/api/v4/projects/:id"

풀 미러링 제거 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "mirror=false" \
  --url "https://gitlab.example.com/api/v4/projects/:id"

프로젝트의 풀 미러링 프로세스 시작#

프로젝트의 풀 미러링 프로세스를 시작합니다.

POST /projects/:id/mirror/pull

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes ID 또는 프로젝트의 URL 인코딩된 경로.

성공하면 202 Accepted를 반환합니다.

요청 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

풀 미러링 API

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

이 API를 사용하여 프로젝트 풀 미러링을 관리합니다. 지정된 프로젝트의 풀 미러 세부 정보를 조회합니다. 성공하면 200 OK와 다음 응답 속성을 반환합니다: 프로젝트의 풀 미러링 설정을 업데이트합니다. 성공하면 200 OK와 업데이트된 풀 미러 구성을 반환합니다.

이 API를 사용하여 프로젝트 풀 미러링을 관리합니다.

프로젝트 풀 미러 세부 정보 조회#

히스토리
  • GitLab 17.5에서 미러 구성 정보를 포함하도록 응답을 확장했습니다. 다음 구성 설정이 포함됩니다: enabled, mirror_trigger_builds, only_mirror_protected_branches, mirror_overwrites_diverged_branches, mirror_branch_regex.

지정된 프로젝트의 풀 미러 세부 정보를 조회합니다.

GET /projects/:id/mirror/pull

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes ID 또는 프로젝트의 URL 인코딩된 경로.

성공하면 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
enabled boolean true이면 미러가 활성화됩니다.
id integer 미러 구성의 고유 식별자.
last_error string or null 가장 최근의 오류 메시지(있는 경우). 오류가 없으면 null.
last_successful_update_at string 마지막 성공적인 미러 업데이트의 타임스탬프.
last_update_at string 가장 최근의 미러 업데이트 시도 타임스탬프.
last_update_started_at string 마지막 미러 업데이트 프로세스 시작 타임스탬프.
mirror_branch_regex string or null 어떤 브랜치를 미러링할지 필터링하기 위한 정규식 패턴. 설정되지 않으면 null.
mirror_overwrites_diverged_branches boolean true이면 미러링 중 분기된 브랜치를 덮어씁니다.
mirror_trigger_builds boolean true이면 미러 업데이트에 대한 빌드를 트리거합니다.
only_mirror_protected_branches boolean or null true이면 보호된 브랜치만 미러링됩니다. 설정되지 않으면 값이 null입니다.
update_status string 미러 업데이트 프로세스의 상태. 가능한 값: none, scheduled, started, finished, failed, canceled.
url string 미러링된 리포지터리의 URL.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

응답 예시:

{
  "id": 101486,
  "last_error": null,
  "last_successful_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_started_at": "2020-01-06T17:31:55.864Z",
  "update_status": "finished",
  "url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git",
  "enabled": true,
  "mirror_trigger_builds": true,
  "only_mirror_protected_branches": null,
  "mirror_overwrites_diverged_branches": false,
  "mirror_branch_regex": null
}

프로젝트 풀 미러링 설정 업데이트#

히스토리
  • GitLab 17.6에서 도입되었습니다.

프로젝트의 풀 미러링 설정을 업데이트합니다.

PUT /projects/:id/mirror/pull

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes ID 또는 프로젝트의 URL 인코딩된 경로.
auth_password string No 프로젝트를 풀 미러링하기 위한 인증에 사용되는 암호.
auth_user string No 프로젝트를 풀 미러링하기 위한 인증에 사용되는 사용자명.
enabled boolean No true로 설정하면 프로젝트에서 풀 미러링을 활성화합니다.
mirror_branch_regex string No 정규식을 포함합니다. 정규식과 일치하는 이름의 브랜치만 미러링됩니다. only_mirror_protected_branches가 비활성화되어야 합니다.
mirror_overwrites_diverged_branches boolean No true이면 분기된 브랜치를 덮어씁니다.
mirror_trigger_builds boolean No true이면 미러 업데이트에 대한 파이프라인을 트리거합니다.
only_mirror_protected_branches boolean No true이면 보호된 브랜치만 미러링하도록 제한합니다.
url string No 미러링되는 원격 리포지터리의 URL.

성공하면 200 OK와 업데이트된 풀 미러 구성을 반환합니다.

풀 미러링 추가 요청 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --data '{
    "enabled": true,
    "url": "https://gitlab.example.com/group/project.git",
    "auth_user": "user",
    "auth_password": "password"
  }' \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

풀 미러링 제거 요청 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "enabled=false" \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

응답 예시:

{
  "id": 101486,
  "last_error": null,
  "last_successful_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_started_at": "2020-01-06T17:31:55.864Z",
  "update_status": "finished",
  "url": "https://gitlab.example.com/group/project.git",
  "enabled": true,
  "mirror_trigger_builds": false,
  "only_mirror_protected_branches": null,
  "mirror_overwrites_diverged_branches": false,
  "mirror_branch_regex": null
}

프로젝트의 풀 미러링 업데이트 (지원 중단)#

히스토리
  • 기능 플래그 mirror_only_branches_match_regex가 GitLab 16.0에서 기본 활성화되었습니다.
  • GitLab 16.2에서 일반 가용성이 되었습니다. 기능 플래그 mirror_only_branches_match_regex가 제거되었습니다.
  • GitLab 17.6에서 지원 중단되었습니다.
Warning

이 구성 옵션은 GitLab 17.6에서 지원 중단되었으며 API v5에서 제거될 예정입니다. 대신 새 구성 및 엔드포인트를 사용하세요. 이 변경은 중단적 변경입니다.

원격 리포지터리가 공개적으로 접근 가능하거나 username:token 인증을 사용하는 경우 프로젝트를 생성 또는 업데이트할 때 API를 사용하여 풀 미러링을 구성합니다.

HTTP 리포지터리가 공개적으로 접근 가능하지 않은 경우 URL에 인증 정보를 추가할 수 있습니다. 예를 들어 https://username:token@gitlab.company.com/group/project.git(여기서 tokenapi 범위가 활성화된 개인 접근 토큰).

지원되는 속성:

속성 유형 필수 설명
import_url string Yes 미러링되는 원격 리포지터리의 URL (필요 시 user:token 포함).
mirror boolean Yes true이면 풀 미러링을 활성화합니다.
mirror_branch_regex string No 정규식을 포함합니다. 정규식과 일치하는 이름의 브랜치만 미러링됩니다. only_mirror_protected_branches가 비활성화되어야 합니다.
mirror_trigger_builds boolean No true이면 미러 업데이트에 대한 파이프라인을 트리거합니다.
only_mirror_protected_branches boolean No true이면 보호된 브랜치만 미러링하도록 제한합니다.

풀 미러링으로 프로젝트를 생성하는 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "new_project",
    "namespace_id": "1",
    "mirror": true,
    "import_url": "https://username:token@gitlab.example.com/group/project.git"
  }' \
  --url "https://gitlab.example.com/api/v4/projects/"

풀 미러링 추가 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "mirror=true&import_url=https://username:token@gitlab.example.com/group/project.git" \
  --url "https://gitlab.example.com/api/v4/projects/:id"

풀 미러링 제거 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "mirror=false" \
  --url "https://gitlab.example.com/api/v4/projects/:id"

프로젝트의 풀 미러링 프로세스 시작#

프로젝트의 풀 미러링 프로세스를 시작합니다.

POST /projects/:id/mirror/pull

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes ID 또는 프로젝트의 URL 인코딩된 경로.

성공하면 202 Accepted를 반환합니다.

요청 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"