- 프로젝트의 원격 미러 목록
- 단일 프로젝트의 원격 미러 가져오기
- 풀 미러 생성
- 푸시 미러 생성
- 원격 미러 속성 업데이트
- Force push mirror update
- Delete a remote mirror
프로젝트 원격 미러 API
프로젝트의 저장소 설정에 정의된 “원격 미러”는 프로젝트의 저장소 설정에 정의된 “원격 미러”라고 합니다. 이 API를 사용하여 이러한 미러의 상태를 조회하고 수정할 수 있습니다.
보안상의 이유로 API 응답의 url
속성은 항상 사용자 이름과 비밀번호 정보가 삭제됩니다.
프로젝트의 원격 미러 목록
원격 미러와 그 상태의 배열을 반환합니다:
GET /projects/:id/remote_mirrors
예시 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/42/remote_mirrors"
예시 응답:
[
{
"enabled": true,
"id": 101486,
"auth_method": "ssh_public_key",
"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",
"only_protected_branches": true,
"keep_divergent_refs": true,
"update_status": "finished",
"url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git"
}
]
단일 프로젝트의 원격 미러 가져오기
원격 미러와 해당 상태를 반환합니다:
GET /projects/:id/remote_mirrors/:mirror_id
예시 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/42/remote_mirrors/101486"
예시 응답:
{
"enabled": true,
"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",
"only_protected_branches": true,
"keep_divergent_refs": true,
"update_status": "finished",
"url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git"
}
풀 미러 생성
프로젝트 풀 미러 API를 사용하여 풀 미러를 구성하는 방법을 알아보세요.
푸시 미러 생성
- 필드
mirror_branch_regex
는 GitLab 15.8에서 도입되었으며mirror_only_branches_match_regex
라는 플래그와 함께 사용됩니다. 기본 설정 상태가 아닙니다.- GitLab 16.0에서 기본 설정 상태가 활성화되었습니다.
- GitLab 16.2에서 일반적으로 이용 가능합니다. 기능 플래그
mirror_only_branches_match_regex
가 제거되었습니다.- 필드
auth_method
는 GitLab 16.10에서 도입되었습니다.
푸시 미러는 기본으로 비활성화되어 있습니다. 미러를 활성화하려면 미러를 생성할 때 옵션 매개변수 enabled
를 포함하세요:
POST /projects/:id/remote_mirrors
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
url
| String | yes | 저장소가 미러링되는 대상 URL입니다. |
enabled
| Boolean | no | 미러가 활성화되는지 여부를 결정합니다. |
keep_divergent_refs
| Boolean | no | 발산하는 참조를 건너뛸지 여부를 결정합니다. |
only_protected_branches
| Boolean | no | 보호된 브랜치만 미러링되는지 여부를 결정합니다. |
mirror_branch_regex
| String | no | 정규 표현식을 포함합니다. 해당 정규 표현식과 일치하는 브랜치만 미러링됩니다. only_protected_branches 를 비활성화해야 합니다. 프리미엄 및 얼티메이트 전용입니다.
|
auth_method
| String | no | 미러 인증 방법(ssh_public_key 또는 password )을 결정합니다.
|
예시 요청:
curl --request POST --data "url=https://username:token@example.com/gitlab/example.git" \
--header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/42/remote_mirrors"
예시 응답:
{
"enabled": false,
"id": 101486,
"auth_method": "password",
"last_error": null,
"last_successful_update_at": null,
"last_update_at": null,
"last_update_started_at": null,
"only_protected_branches": false,
"keep_divergent_refs": false,
"update_status": "none",
"url": "https://*****:*****@example.com/gitlab/example.git"
}
원격 미러 속성 업데이트
- 필드
auth_method
는 GitLab 16.10에서 도입되었습니다.
원격 미러를 켜거나 끄거나 또는 미러링되는 브랜치의 유형을 변경하세요:
PUT /projects/:id/remote_mirrors/:mirror_id
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
mirror_id
| Integer | yes | 원격 미러 ID입니다. |
enabled
| Boolean | no | 미러의 활성화 여부를 결정합니다. |
keep_divergent_refs
| Boolean | no | 발산하는 참조를 건너뛸지 여부를 결정합니다. |
only_protected_branches
| Boolean | no | 보호된 브랜치만 미러링되는지 여부를 결정합니다. |
mirror_branch_regex
| String | no | 브랜치 이름이 정규 표현식과 일치하는 경우에만 미러링되는지 여부를 결정합니다. only_protected_branches 가 활성화된 상태에서 작동하지 않습니다. 프리미엄 및 얼티메이트 전용입니다.
|
auth_method
| String | no | 미러 인증 방법(ssh_public_key 또는 password )을 결정합니다.
|
예시 요청:
curl --request PUT --data "enabled=false" --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/42/remote_mirrors/101486"
예시 응답:
{
"enabled": false,
"id": 101486,
"auth_method": "password",
"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",
"only_protected_branches": true,
"keep_divergent_refs": true,
"update_status": "finished",
"url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git"
}
Force push mirror update
- GitLab 16.11에서 도입되었습니다.
푸시 미러를 강제로 업데이트합니다.
POST /projects/:id/remote_mirrors/:mirror_id/sync
지원되는 속성:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
mirror_id
| 정수 | 예 | 원격 미러의 ID. |
성공시 204
를 반환합니다.
예시 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/42/remote_mirrors/101486/sync"
예시 응답:
HTTP 응답 코드가 204인 빈 응답입니다.
Delete a remote mirror
원격 미러를 삭제합니다.
DELETE /projects/:id/remote_mirrors/:mirror_id
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
mirror_id
| 정수 | 예 | 원격 미러 ID. |
예시 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/42/remote_mirrors/101486"