InfoGrab DocsInfoGrab 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
}

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

히스토리
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"

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

히스토리
  • GitLab 19.3에서 force 속성이 도입되었습니다.

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

POST /projects/:id/mirror/pull

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes ID 또는 프로젝트의 URL 인코딩된 경로.
force boolean No true이면 하드 실패한 미러를 재설정하고 업데이트를 다시 시도합니다. GitHub 웹훅 서명으로 인증된 요청에서는 무시됩니다.

성공하면 200 OK를 반환합니다.

요청 예시:

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

하드 실패한 미러를 복구하려면 forcetrue로 설정합니다. 자세한 내용은 미러링 시 하드 실패 수정을 참조하세요.

요청 예시:

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

풀 미러링 API

GitLab v19.3
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
}

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

히스토리
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"

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

히스토리
  • GitLab 19.3에서 force 속성이 도입되었습니다.

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

POST /projects/:id/mirror/pull

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes ID 또는 프로젝트의 URL 인코딩된 경로.
force boolean No true이면 하드 실패한 미러를 재설정하고 업데이트를 다시 시도합니다. GitHub 웹훅 서명으로 인증된 요청에서는 무시됩니다.

성공하면 200 OK를 반환합니다.

요청 예시:

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

하드 실패한 미러를 복구하려면 forcetrue로 설정합니다. 자세한 내용은 미러링 시 하드 실패 수정을 참조하세요.

요청 예시:

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