Configuração de Segredos (Secrets) no GitHub Actions

GitBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a usar os Segredos (Secrets) do GitHub Actions. Segredos são variáveis de ambiente criptografadas que você cria em uma organização, repositório ou ambiente de repositório. Os segredos que você cria ficam disponíveis para uso em seus fluxos de trabalho (workflows) do GitHub Actions.

Isso é essencial para manter informações sensíveis, como chaves de API, tokens de acesso e senhas, seguras. O GitHub Actions automaticamente oculta (redacts) segredos dos logs, garantindo que não sejam expostos.

Este laboratório baseia-se no repositório que você criou nos laboratórios anteriores. Você adicionará um segredo ao seu repositório github-actions-demo e criará um fluxo de trabalho que o utiliza.

Você passará pelas seguintes etapas:

  1. Adicionar um segredo de repositório ao seu repositório GitHub existente.
  2. Clonar o repositório e criar um arquivo de fluxo de trabalho que referencia o segredo.
  3. Adicionar etapas para usar o segredo.
  4. Enviar (push) o fluxo de trabalho para o GitHub.
  5. Verificar se o segredo está mascarado nos logs de execução.
Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Crie um segredo de repositório chamado MY_SECRET nas configurações do GitHub

Nesta etapa, você adicionará um segredo ao seu repositório existente github-actions-demo no GitHub e clonará o repositório para o seu ambiente LabEx.

Adicionar um Segredo de Repositório

  1. Abra seu navegador da web e navegue até seu repositório github-actions-demo no GitHub: https://github.com/your-username/github-actions-demo
  2. Clique na aba Settings (Configurações).
  3. Na barra lateral esquerda, role para baixo até a seção Security (Segurança), clique em Secrets and variables (Segredos e variáveis) e, em seguida, selecione Actions.
  4. Clique no botão verde New repository secret (Novo segredo de repositório).
  5. Insira os seguintes detalhes:
    • Name (Nome): MY_SECRET
    • Secret (Segredo): SuperSecretValue123
  6. Clique em Add secret (Adicionar segredo).
GitHub Actions secrets

Você deverá ver agora MY_SECRET listado em "Repository secrets" (Segredos do repositório).

Clonar o Repositório

Agora, volte para o ambiente LabEx para clonar o repositório.

  1. Na página do seu repositório GitHub para github-actions-demo, clique no botão verde Code (Código).
  2. Certifique-se de que a aba HTTPS esteja selecionada e copie a URL. Ela deve ser parecida com https://github.com/your-username/github-actions-demo.git.
  3. Abra o terminal no ambiente LabEx. O caminho padrão é ~/project.
  4. Use o comando git clone para baixar o repositório. Substitua your-username pelo seu nome de usuário real do GitHub.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git

Exemplo de Saída:

Cloning into 'github-actions-demo'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/X), done.
remote: Total X (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (X/X), done.
  1. Navegue para dentro do repositório clonado:
cd ~/project/github-actions-demo

Referencie o segredo no fluxo de trabalho com ${{ secrets.MY_SECRET }}

Nesta etapa, você criará um arquivo de fluxo de trabalho que referencia o segredo que você acabou de criar.

  1. Certifique-se de estar no diretório do repositório:
cd ~/project/github-actions-demo
  1. Crie um novo arquivo chamado secrets-demo.yml dentro do diretório .github/workflows:
touch .github/workflows/secrets-demo.yml
  1. Abra .github/workflows/secrets-demo.yml no WebIDE e adicione o seguinte conteúdo. Isso define um fluxo de trabalho básico que é acionado por eventos de push.
name: Secrets Demo
on: [push]

jobs:
  use-secret:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

Isso configura o job. Na próxima etapa, adicionaremos a lógica para usar o segredo.

Adicione uma etapa para ecoar o valor do segredo com segurança

Nesta etapa, você modificará o fluxo de trabalho (workflow) para acessar o segredo. O GitHub Actions permite acessar segredos usando a sintaxe ${{ secrets.SECRET_NAME }}.

Modificar o Fluxo de Trabalho

Abra o arquivo .github/workflows/secrets-demo.yml e anexe a seguinte etapa à lista de steps. Certifique-se de que o recuo (indentation) esteja correto.

- name: Print Secret
  env:
    MY_SECRET_VAL: ${{ secrets.MY_SECRET }}
  run: |
    echo "Printing secret directly (masked): ${{ secrets.MY_SECRET }}"
    echo "Printing secret from env (masked): $MY_SECRET_VAL"

Seu arquivo completo .github/workflows/secrets-demo.yml deve ficar assim:

name: Secrets Demo
on: [push]

jobs:
  use-secret:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Print Secret
        env:
          MY_SECRET_VAL: ${{ secrets.MY_SECRET }}
        run: |
          echo "Printing secret directly (masked): ${{ secrets.MY_SECRET }}"
          echo "Printing secret from env (masked): $MY_SECRET_VAL"

Conceito Chave

Quando você usa um segredo em um fluxo de trabalho, o GitHub o mascara automaticamente nos logs. Mesmo que você tente usar echo nele, a saída mostrará asteriscos (***) em vez do valor real.

Faça commit e push do fluxo de trabalho com a referência do segredo

Nesta etapa, você fará o commit das suas alterações e as enviará (push) para o GitHub. Isso acionará a GitHub Action.

  1. Certifique-se de estar no diretório do repositório:
cd ~/project/github-actions-demo
  1. Prepare o arquivo de fluxo de trabalho (workflow file):
git add .github/workflows/secrets-demo.yml
  1. Faça o commit das alterações com uma mensagem descritiva:
git commit -m "Add workflow to test secrets"
  1. Envie as alterações para o repositório remoto no GitHub:
git push

Nota sobre Autenticação:
Quando você executar git push, o WebIDE solicitará automaticamente a autenticação. Siga estas etapas detalhadas:

  1. Um pop-up aparecerá com a mensagem: "The extension 'GitHub' wants to sign in using GitHub." Clique em Allow.
  2. Uma nova notificação aparecerá. Clique em "Copy&Continue to GitHub" e, em seguida, clique em "Open" no próximo prompt.
  3. Faça login na sua conta do GitHub na janela do navegador que se abrir e insira o código de autorização que foi copiado. Após confirmar a autorização, a página será fechada automaticamente.
  4. Aguarde alguns segundos e você verá o terminal concluir a operação de push com sucesso.

Nota de Privacidade: O WebIDE solicitará acesso total à sua conta do GitHub para fins de autenticação. Você não precisa se preocupar com questões de privacidade - a VM LabEx será imediatamente destruída após a conclusão do laboratório atual, e suas credenciais e informações de autorização não serão retidas.

Verifique os logs para garantir que o segredo seja usado sem exposição

Após enviar seu código (push), o fluxo de trabalho será acionado automaticamente no GitHub. Você pode visualizar os logs de execução do fluxo de trabalho para verificar se o segredo (secret) está sendo usado de forma segura.

  1. Acesse seu repositório no GitHub em um navegador da web: https://github.com/your-username/github-actions-demo
  2. Clique na aba Actions no topo da página do repositório.
  3. Você deverá ver uma execução de fluxo de trabalho listada, provavelmente nomeada como "Add workflow to test secrets" ou "Secrets Demo".

Nota: Ao enviar código, múltiplos Actions podem ser acionados se você tiver vários arquivos de fluxo de trabalho em seu repositório. Por favor, identifique a execução correta do fluxo de trabalho verificando o nome do fluxo de trabalho na barra lateral esquerda ou usando a lista de execuções do fluxo de trabalho no lado direito.

  1. Clique no título da execução do fluxo de trabalho e, em seguida, clique no job use-secret.
  2. Expanda a etapa Print Secret para ver a saída.

Você deverá ver algo como isto:

Printing secret directly (masked): ***
Printing secret from env (masked): ***

Observe que, mesmo que o fluxo de trabalho tenha tentado imprimir o valor do segredo, o GitHub Actions o mascarou automaticamente com *** nos logs. Este é um recurso de segurança crítico - ele impede que informações sensíveis sejam expostas acidentalmente nos logs, mesmo que você tente imprimi-las. Isso confirma que seu segredo está configurado de forma segura e sendo usado no fluxo de trabalho sem expor seu valor real.

GitHub Actions logs

Resumo

Neste laboratório, você aprendeu com sucesso como:

  1. Criar um Segredo de Repositório (Repository Secret) nas Configurações do GitHub para armazenar dados sensíveis.
  2. Criar um arquivo de fluxo de trabalho (workflow) do GitHub Actions.
  3. Referenciar o segredo usando a sintaxe ${{ secrets.MY_SECRET }}.
  4. Passar o segredo para variáveis de ambiente dentro de uma etapa de job.
  5. Verificar se o GitHub mascara automaticamente o valor do segredo nos logs de build.

Esta prática garante que seus dados sensíveis, como chaves de deploy e tokens de API, permaneçam seguros durante todo o seu processo de CI/CD.