Skip to main content

GitHub.com에서 수동으로 작업 동기화

GitHub.com의 작업에 액세스해야 하는 사용자의 경우 특정 작업을 엔터프라이즈에 동기화할 수 있습니다.

참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.

GitHub Enterprise Server의 GitHub Actions는 완전한 인터넷 액세스가 없는 환경에서도 작동하도록 설계되었습니다. 기본적으로 워크플로는 GitHub.com 및 GitHub Marketplace의 작업을 사용할 수 없습니다.

GitHub Connect을(를) 사용하여 GitHub Enterprise Server을(를) GitHub Enterprise Cloud와 통합하여 모든 작업에 자동 액세스를 사용하도록 설정하는 것이 좋습니다. "GitHub Connect를 사용하여 GitHub.com 작업에 자동 액세스 사용" 항목을 참조하세요.

엔터프라이즈에서 허용되는 작업을 더 엄격하게 제어하려는 경우 이 가이드에 따라 오픈 소스 actions-sync 도구를 사용하여 GitHub.com의 개별 작업 리포지토리를 엔터프라이즈에 동기화할 수 있습니다.

GitHub Enterprise Server를 업그레이드하면 번들 작업은 업그레이드 패키지의 기본 버전으로 자동 교체됩니다. 이러한 버전은 사용 가능한 최신 버전이 아닐 수 있습니다. 모범 사례로, actions-sync를 사용하여 작업을 업데이트하는 경우 GitHub Enterprise Server 업그레이드(메이저 또는 마이너) 후 항상 actions-sync를 다시 실행하여 작업이 최신 상태로 유지되도록 해야 합니다.

actions-sync 도구 정보

GitHub.com API 및 GitHub Enterprise Server 인스턴스 API에 액세스할 수 있는 머신에서 actions-sync 도구를 실행해야 합니다. 동시에 둘 다에 머신을 연결할 필요가 없습니다.

머신이 동시에 두 시스템에 모두 액세스할 수 있는 경우 단일 actions-sync sync 명령으로 동기화를 수행할 수 있습니다. 한 번에 하나의 시스템에만 액세스할 수 있는 경우 actions-sync pullpush 명령을 사용할 수 있습니다.

actions-sync 도구는 퍼블릭 리포지토리에 저장된 GitHub.com의 작업만 다운로드할 수 있습니다.

참고: actions-sync 도구는 GitHub Connect를 사용할 수 없는 시스템에서 사용하기 위한 것입니다. GitHub Connect를 사용할 수 있는 시스템에서 도구를 실행하면 The repository <repo_name> has been retired and cannot be reused 오류가 표시될 수 있습니다. 이 오류는 워크플로가 GitHub.com에서 직접 해당 작업을 사용했으며 GitHub Enterprise Server 인스턴스에서 네임스페이스가 사용 중지되었음을 나타냅니다. "GitHub Connect를 사용하여 GitHub.com 작업에 자동 액세스 사용" 항목을 참조하세요.

필수 조건

  • actions-sync 도구를 사용하기 전에 모든 대상 조직이 이미 엔터프라이즈에 있는지 확인해야 합니다. 다음 예제에서는 synced-actions라는 조직에 작업을 동기화하는 방법을 보여 줍니다. "처음부터 새 조직 만들기" 항목을 참조하세요.

  • 대상 조직에 리포지토리를 만들고 쓸 수 있는 personal access token을(를) 엔터프라이즈에 만들어야 합니다. "개인용 액세스 토큰 관리"을 참조하세요.

  • GitHub Enterprise Server 인스턴스에서 actions 조직의 번들 작업을 동기화하려면 actions 조직의 소유자여야 합니다.

    참고: 기본적으로 사이트 관리자도 번들된 actions 조직의 소유자가 아닙니다.

    사이트 관리자는 관리 셸에서 ghe-org-admin-promote 명령을 사용하여 사용자를 번들된 actions 조직의 소유자로 승격할 수 있습니다. "관리 셸(SSH)에 액세스" 및 "명령줄 유틸리티" 항목을 참조하세요.

    ghe-org-admin-promote -u USERNAME -o actions
    

Example: Using the actions-sync tool

This example demonstrates using the actions-sync tool to sync an individual action from GitHub.com to an enterprise instance.

Note: This example uses the actions-sync sync command, which requires concurrent access to both the GitHub.com API and your enterprise instance's API from your machine. If you can only access one system at a time, you can use the actions-sync pull and push commands. See the actions-sync README.

  1. Download and extract the latest actions-sync release for your machine's operating system.

  2. Create a directory to store cache files for the tool.

  3. In your terminal, change to the bin directory within the release directory you just extracted. For example:

    cd PATH/TO/gh_DATETIME_OS_ARCHITECTURE/bin
    
  4. actions-sync sync 명령을 실행합니다.

    ./actions-sync sync \
      --cache-dir "cache" \
      --destination-token "aabbccddeeffgg" \
      --destination-url "https://my-ghes-instance" \
      --repo-name "actions/stale:synced-actions/actions-stale"
    

    위 명령은 다음 인수를 사용합니다.

    • --cache-dir: 명령을 실행하는 머신의 캐시 디렉터리입니다.

    • --destination-token: 대상 엔터프라이즈 인스턴스에 대한 personal access token입니다.

    • --destination-url: 대상 엔터프라이즈 인스턴스의 URL입니다.

    • --repo-name: 동기화할 작업 리포지토리입니다. owner/repository:destination_owner/destination_repository 형식을 사용합니다.

      • 위 예제에서는 actions/stale 리포지토리를 대상 엔터프라이즈 인스턴스의 synced-actions/actions-stale 리포지토리에 동기화합니다. 위 명령을 실행하기 전에 엔터프라이즈에서 synced-actions라는 조직을 만들어야 합니다.
      • :destination_owner/destination_repository를 생략하면 도구에서 엔터프라이즈의 원래 소유자 및 리포지토리 이름을 사용합니다. 명령을 실행하기 전에 작업의 소유자 이름과 일치하는 새 조직을 엔터프라이즈에서 만들어야 합니다. 중앙 조직을 사용하여 엔터프라이즈에서 동기화된 작업을 저장하는 것이 좋습니다. 이렇게 하면 여러 소유자의 작업을 동기화하는 경우에도 새 조직을 여러 개 만들 필요가 없습니다.
      • --repo-name 매개 변수를 --repo-name-list 또는 --repo-name-list-file로 바꿔 여러 작업을 동기화할 수 있습니다. actions-sync 추가 정보를 참조하세요.
  5. 엔터프라이즈에 작업 리포지토리가 생성된 후에는 엔터프라이즈 사용자가 대상 리포지토리를 사용하여 워크플로에서 작업을 참조할 수 있습니다. 위에 표시된 예제 작업의 경우 다음과 같이 참조합니다.

    uses: synced-actions/actions-stale@v1
    

    "GitHub Actions에 대한 워크플로 구문" 항목을 참조하세요.