풀 미러링 API
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
가 제거됨.
원격 저장소에 공개적으로 접근할 수 있거나 username:token
인증을 사용하여 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"
프로젝트에 대한 풀 미러링 프로세스 시작
프로젝트에 대한 풀 미러링 프로세스를 시작합니다.
POST /projects/:id/mirror/pull
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
요청 예시:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"