Skip to main content

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

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

Note

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의 작업만 다운로드할 수 있습니다.

Note

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 조직의 소유자여야 합니다.

    Note

    기본적으로 사이트 관리자도 번들된 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에 대한 워크플로 구문을(를) 참조하세요.