풀 미러링 API
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
}
프로젝트의 풀 미러링 업데이트 (지원 중단)#
히스토리
이 구성 옵션은 GitLab 17.6에서 지원 중단되었으며 API v5에서 제거될 예정입니다. 대신 새 구성 및 엔드포인트를 사용하세요. 이 변경은 중단적 변경입니다.
원격 리포지터리가 공개적으로 접근 가능하거나 username:token 인증을 사용하는 경우 프로젝트를 생성 또는 업데이트할 때 API를 사용하여 풀 미러링을 구성합니다.
HTTP 리포지터리가 공개적으로 접근 가능하지 않은 경우 URL에 인증 정보를 추가할 수 있습니다. 예를 들어
https://username:token@gitlab.company.com/group/project.git(여기서 token은 api 범위가 활성화된 개인 접근 토큰).
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
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"
