Skip to main content

Sincronizar ações manualmente de GitHub.com

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

Observação

No momento, não há suporte para executores hospedados no GitHub Enterprise Server no GitHub.

O GitHub Actions em GitHub Enterprise Server 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.

Recomendamos habilitar o acesso automático a ações públicas usando GitHub Connect para integrar GitHub Enterprise Server ao GitHub Enterprise Cloud. Confira Habilitar o acesso automático a ações de GitHub.com usando GitHub Connect.

Se você quiser um controle mais rigoroso sobre quais ações são permitidas em sua empresa, siga este guia para utilizar nossa ferramenta de código aberto actions-sync para sincronizar repositórios de ações individuais de GitHub.com para sua empresa.

Quando você atualiza GitHub Enterprise Server, as ações agrupadas são automaticamente substituídas pelas versões padrão no pacote de atualização. Estas podem não ser a versão mais recente disponível. Como prática recomendada, se você usar actions-sync para atualizar ações, sempre deverá executar actions-sync novamente após qualquer GitHub Enterprise Server atualização (principal ou secundária) para garantir que as ações permaneçam atualizadas.

Sobre a ferramenta actions-sync

A ferramenta actions-sync deve ser executada em uma máquina que possa acessar a API GitHub.com e a API da sua instância GitHub Enterprise Server. 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 do GitHub.com armazenadas em repositórios públicos.

Observação

A actions-sync ferramenta destina-se ao uso em sistemas em que GitHub Connect não está habilitada. 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 em GitHub.com e que o namespace foi descontinuado em sua instância do GitHub Enterprise Server. Confira Habilitar o acesso automático a ações de GitHub.com usando GitHub Connect.

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. Confira Criar uma organização do início.

  • Você deve criar um personal access token na sua empresa que possa criar e escrever em repositórios nas organizações de destino. Confira Gerenciar seus tokens de acesso pessoal.

  • Se você quiser sincronizar as ações incluídas na organização actions em sua instância do GitHub Enterprise Server, você deve ser proprietário da organização actions.

    Observação

    Por padrão, os administradores do site não são proprietários da organização actions agrupada.

    Os administradores do site podem usar o comando ghe-org-admin-promote no shell administrativo para promover um usuário para ser um proprietário da organização empacotada actions. Confira Acessar o shell administrativo (SSH) e Utilitários de linha de comando.

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

Exemplo: Usando a ferramenta actions-sync

Este exemplo demonstra como usar a ferramenta actions-sync para sincronizar uma ação específica de GitHub.com para uma instância empresarial.

Observação

Este exemplo usa o comando actions-sync sync, que requer acesso simultâneo à API GitHub.com e à API da sua instância corporativa a partir da sua máquina. Se você só puder acessar um sistema por vez, use os comandos actions-sync pull e push. Consulte actions-sync README.

  1. Baixe e extraia a versão actions-sync mais recente para o sistema operacional do computador.

  2. Crie um diretório para armazenar arquivos em cache para a ferramenta.

  3. No terminal, mude para o diretório bin dentro do diretório da versão que você acabou de extrair. Por exemplo:

    cd PATH/TO/gh_DATETIME_OS_ARCHITECTURE/bin
    
  4. Executar o comando 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"
    

    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 para a instância da empresa 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 do proprietário da ação. 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. Consulte actions-sync README.
  5. 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:

    # Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.
    # São fornecidas por terceiros e regidas por
    # termos de serviço, política de privacidade e suporte separados
    # online.
    uses: synced-actions/actions-stale@v1
    

    Confira Sintaxe de fluxo de trabalho para o GitHub Actions.