Skip to main content

Sincronizar ações do GitHub.com manualmente

Para usuários que precisam acessar as ações a partir de GitHub.com, você pode sincronizar ações específicas para sua empresa.

GitHub Actions em GitHub AE foi projetado para funcionar em ambientes sem acesso total à internet. Por padrão, os fluxos de trabalho não podem usar ações de GitHub.com e GitHub Marketplace.

A abordagem recomendada de habilitar o acesso a ações a partir de GitHub.com é permitir o acesso automático para todas as ações. Faça isso usando o GitHub Connect para integrar o GitHub AE ao GitHub Enterprise Cloud. Para obter mais informações, confira "Como habilitar o acesso automático às ações do GitHub.com usando o GitHub Connect".

No entanto, se você quiser um controle mais rigoroso sobre quais as ações são permitidas na sua empresa, você poderá seguir este guia para usar a ferramenta de código aberto actions-sync do GitHub para sincronizar repositórios de ações individuais do GitHub.com para a sua empresa.

Sobre a ferramenta actions-sync

A ferramenta actions-sync deve ser executada em um computador que possa acessar a API do GitHub.com e a API da instância do GitHub AE. A máquina não precisa estar conectada a ambos ao mesmo tempo.

Se o computador tiver acesso a ambos os sistemas ao mesmo tempo, você poderá fazer a sincronização com um único comando actions-sync sync. Se você só puder acessar um sistema por vez, use os comandos actions-sync pull e push.

A ferramenta actions-sync só pode baixar ações de GitHub.com armazenados em repositórios públicos.

Nota: a ferramenta actions-sync destina-se ao uso em sistemas em que o GitHub Connect não está habilitado. Se você executar a ferramenta em um sistema com GitHub Connect habilitado, poderá ver o erro The repository <repo_name> has been retired and cannot be reused. Isso indica que um fluxo de trabalho usou essa ação diretamente no GitHub.com e o namespace está desativado em your enterprise. Para obter mais informações, confira "Desativação automática de namespaces para as ações acessadas no GitHub.com".

Pré-requisitos

  • Antes de usar a ferramenta actions-sync, você deve garantir que todas as organizações de destino já existam em sua empresa. O exemplo a seguir demonstra como sincronizar ações com uma organização chamada synced-actions. Para obter mais informações, confira "Como criar uma organização do zero".
  • Você precisa criar um personal access token na empresa que possa criar e gravar em repositórios nas organizações de destino. Para obter mais informações, confira "Como criar um personal access token".

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. For more information, 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. Run the actions-sync sync command:

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

    O comando acima usa os seguintes argumentos:

    • --cache-dir: o diretório de cache no computador que executa o comando.

    • --destination-token: um personal access token da instância corporativa de destino.

    • --destination-url: a URL da instância corporativa de destino.

    • --repo-name: o repositório de ação a ser sincronizado. Ele usa o formato de owner/repository:destination_owner/destination_repository.

      • O exemplo acima sincroniza o repositório actions/stale com o repositório synced-actions/actions-stale na instância da empresa de destino. Você deve criar a organização nomeada synced-actions em sua empresa antes de executar o comando acima.
      • Se você omitir :destination_owner/destination_repository, a ferramenta usará o nome original do proprietário e do repositório da sua empresa. Antes de executar o comando, você deve criar uma nova organização em sua empresa que corresponda ao nome da ação do proprietário. Considere usar uma organização central para armazenar as ações sincronizadas na sua empresa, uma vez que isso significa que você não precisará criar várias novas organizações se sincronizar ações de diferentes proprietários.
      • Você pode sincronizar várias ações substituindo o parâmetro --repo-name por --repo-name-list ou --repo-name-list-file. Para obter mais informações, veja o README actions-sync.
  4. Depois que o repositório de ação for criado na sua empresa, as pessoas da sua empresa poderão usar o repositório de destino para fazer referência à ação nos fluxos de trabalho. Para o exemplo da ação mostrado acima:

    uses: synced-actions/actions-stale@v1
    

    Para obter mais informações, confira "Sintaxe de fluxo de trabalho do GitHub Actions".