풀 미러링 API
Tier: Premium, Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
풀 미러링을 사용하여 REST API를 통해 프로젝트를 관리할 수 있습니다.
프로젝트의 풀 미러 세부 정보 가져오기
프로젝트의 풀 미러 세부 정보를 반환합니다.
GET /projects/:id/mirror/pull
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
예시 요청:
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"
성공 시, 200 OK
및 다음과 같은 응답 속성을 반환합니다:
속성 | 유형 | 설명 |
---|---|---|
id
| 숫자 | 미러 구성의 고유 식별자. |
last_error
| 문자열 또는 null | 가장 최근의 오류 메시지(있는 경우). 오류가 발생하지 않은 경우 null .
|
last_successful_update_at
| 문자열 | 마지막 성공적인 미러 업데이트의 타임스탬프. |
last_update_at
| 문자열 | 가장 최근의 미러 업데이트 시도의 타임스탬프. |
last_update_started_at
| 문자열 | 최근의 미러 업데이트 프로세스가 시작된 시간의 타임스탬프. |
update_status
| 문자열 | 미러 업데이트 프로세스의 상태. |
url
| 문자열 | 미러링된 저장소의 URL. |
enabled
| 부울 | 미러가 활성화되었는지 여부를 나타냅니다. |
mirror_trigger_builds
| 부울 | 미러 업데이트에 대한 빌드를 트리거해야 하는지 여부를 결정합니다. |
only_mirror_protected_branches
| 부울 또는 null | 보호된 브랜치만 미러링해야 하는지 여부를 지정합니다. 설정되지 않은 경우 null .
|
mirror_overwrites_diverged_branches
| 부울 | 미러링 중에 벌어진 브랜치를 덮어써야 하는지 여부를 나타냅니다. |
mirror_branch_regex
| 문자열 또는 null | 미러링할 브랜치를 필터링하는 데 사용되는 정규식 패턴. 설정되지 않은 경우 null .
|
예시 응답:
{
"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
}
프로젝트의 풀 미러링 구성
mirror_branch_regex
필드는 GitLab 15.8에서 도입되었으며 기본적으로mirror_only_branches_match_regex
라는 플래그와 함께 사용됩니다. 기본값은 비활성화됩니다.- GitLab 16.0에서 기본적으로 활성화됩니다.
- GitLab 16.2에서 일반적으로 사용 가능합니다. 기능 플래그
mirror_only_branches_match_regex
가 제거되었습니다.
원격 저장소가 공개적으로 접근 가능한 경우, API를 사용하여 새 프로젝트를 만들거나 기존 프로젝트를 업데이트하는 동안 풀 미러링을 구성할 수 있습니다. HTTP 저장소에 공개 액세스 권한이 없는 경우, URL에 인증 정보를 추가할 수 있습니다. 예를 들어, https://username:token@gitlab.company.com/group/project.git
에서 token
은 api
스코프가 활성화된 개인 액세스 토큰입니다.
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
import_url
| 문자열 | 예 | 미러링되는 원격 저장소의 URL(필요한 경우 user:token 과 함께).
|
mirror
| 부울 | 예 |
true 로 설정하면 프로젝트에 풀 미러링이 활성화됩니다.
|
mirror_trigger_builds
| 부울 | 아니오 |
true 로 설정하면 미러 업데이트에 대한 파이프라인을 트리거합니다.
|
only_mirror_protected_branches
| 부울 | 아니오 |
true 로 설정하면 보호된 브랜치에만 미러링을 제한합니다.
|
mirror_branch_regex
| 문자열 | 아니오 | 정규식을 포함합니다. 해당 정규식과 일치하는 이름의 브랜치만 미러링됩니다. only_mirror_protected_branches 가 비활성화된 경우에만 사용 가능합니다.
|
풀 미러링이 구성된 프로젝트를 만들기 위한 예시:
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>" \
--url "https://gitlab.example.com/api/v4/projects/:id" \
--data "mirror=true&import_url=https://username:token@gitlab.example.com/group/project.git"
풀 미러링 삭제 예시:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/:id" \
--data "mirror=false"
프로젝트의 Pull 미러링 프로세스 시작하기
프로젝트의 Pull 미러링 프로세스를 시작합니다.
POST /projects/:id/mirror/pull
지원되는 속성:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-encoded 경로. |
예시 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"