InfoGrab DocsInfoGrab Docs

원격 리포지터리에서 가져오기

원격 리포지터리에서 변경 사항을 GitLab으로 가져오는 풀 미러를 만들어 복사본을 최신 상태로 유지합니다.

히스토리 13.9에서 GitLab Premium으로 이동됨. GitLab 인터페이스를 사용하면 GitLab에 호스팅되지 않은 리포지터리라도 그 콘텐츠와 활동을 탐색할 수 있습니다. 업스트림 리포지터리의 브랜치, 태그, 커밋을 내 리포지터리로 복사하려면 풀 미러 를 만듭니다. 푸시 미러 와 달리 풀 미러는 예약된 일정에 따라 업스트림(원격) 리포지터리에서 변경 사항을 가져옵니다. 미러가 업스트림 리포지터리와 어긋나지 않도록 다운스트림 미러에 직접 커밋을 푸시하지 않습니다. 대신 업스트림 리포지터리에 커밋을 푸시합니다. 원격 리포지터리의 변경 사항은 다음 경우에 GitLab 리포지터리로 가져옵니다. 이전 풀로부터 30분 후 자동으로 가져옵니다. 이 동작은 비활성화할 수 없습니다. 관리자가 미러를 강제로 업데이트 할 때 가져옵니다. API 호출이 업데이트를 트리거 할 때 가져옵니다. UI 및 API 업데이트에는 기본 풀 미러링 간격 5분이 적용됩니다. 이 간격은 GitLab Self-Managed 인스턴스에서 구성할 수 있습니다. 기본적으로 다운스트림 풀 미러의 브랜치나 태그가 로컬 리포지터리와 어긋나면 GitLab은 해당 브랜치 업데이트를 중지합니다. 데이터 손실을 방지하기 위한 동작입니다. 업스트림 리포지터리에서 삭제된 브랜치와 태그는 다운스트림 리포지터리에 반영되지 않습니다. Note 다운스트림 풀 미러 리포지터리에서 삭제되었지만 업스트림 리포지터리에는 남아 있는 항목은 다음 풀에서 복원됩니다. 예를 들어 미러된 리포지터리에서만 삭제한 브랜치는 다음 풀 이후 다시 나타납니다. 풀 미러링 작동 방식 # GitLab 리포지터리를 풀 미러로 구성하면 다음 순서로 동작합니다. GitLab 이 리포지터리를 대기열에 추가합니다. 1분에 한 번 Sidekiq cron job 이 다음을 기준으로 업데이트할 리포지터리 미러를 예약합니다. Sidekiq 설정으로 결정되는 가용 용량. GitLab.com의 경우 GitLab.com Sidekiq 설정 을 참고합니다. 이미 대기열에 있고 업데이트 시점이 된 미러의 수. 시점이 되었는지 여부는 리포지터리 미러가 마지막으로 업데이트된 시각과 업데이트 재시도 횟수에 따라 정해집니다. Sidekiq 이 업데이트를 처리할 수 있게 되면 미러가 업데이트됩니다. 업데이트 프로세스가 성공한 경우: 최소 30분 대기 후 업데이트가 다시 대기열에 등록됩니다. 실패한 경우: 업데이트를 나중에 다시 시도합니다. 14회 실패하면 미러는 하드 실패 로 표시되며 더 이상 업데이트 대기열에 등록되지 않습니다. 업스트림 브랜치와 어긋난 브랜치가 실패의 원인이 될 수 있습니다. 브랜치가 어긋나지 않도록 하려면 미러를 만들 때 어긋난 브랜치 덮어쓰기 를 구성합니다. 풀 미러링 구성 # 사전 요구 사항: 원격 리포지터리가 GitHub에 있고 2단계 인증(2FA)을 구성 했다면 repo 범위로 GitHub 개인 액세스 토큰 을 만듭니다. 2FA가 활성화되어 있으면 이 개인 액세스 토큰이 GitHub 비밀번호 역할을 합니다. GitLab 사일런트