Apêndice A: ações de origem do GitHub (por meio do aplicativo OAuth) - AWS CodePipeline

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Apêndice A: ações de origem do GitHub (por meio do aplicativo OAuth)

Este apêndice fornece informações sobre (por meio do aplicativo OAuth) da ação do GitHub no CodePipeline.

nota

Embora não seja recomendável usar a ação do GitHub (por meio do aplicativo OAuth), os pipelines existentes com a ação do GitHub (por meio do aplicativo OAuth) continuarão funcionando sem impacto algum. Para um pipeline com uma ação do GitHub (por meio do aplicativo OAuth), o CodePipeline usa tokens baseados no OAuth para se conectar ao repositório do GitHub. Por outro lado, a ação do GitHub (por meio do aplicativo do GitHub) usa um recurso de conexão para associar recursos da AWS ao repositório do GitHub. O recurso de conexão usa tokens baseados em aplicativos para estabelecer conexões. Para obter mais informações sobre como atualizar seu pipeline para a ação recomendada do GitHub que usa uma conexão, consulte Atualizar uma ação de origem do GitHub (por meio do aplicativo OAuth) para uma ação de origem do GitHub (por meio do aplicativo do GitHub). Para obter mais informações sobre o acesso ao GitHub baseado no OAuth em contraste com o acesso ao GitHub baseado em aplicativo, consulte https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps.

Para integrar-se ao GitHub, o CodePipeline usa um aplicativo OAuth do GitHub para o pipeline. O CodePipeline usa webhooks para gerenciar a detecção de alterações do pipeline com a ação de origem do GitHub (por meio do aplicativo OAuth).

nota

Ao configurar uma ação de origem do GitHub (por meio do aplicativo do GitHub) no CloudFormation, você não inclui nenhuma informação de token do GitHub nem adiciona um recurso de webhook. Você configura um recurso de conexão conforme mostrado em AWS::CodeStarConnections::Connection no Guia do usuário do CloudFormation.

Essa referência contém as seguintes seções para a ação do GitHub (por meio do aplicativo OAuth):

Importante

Ao criar webhooks do CodePipeline, não use suas próprias credenciais nem reutilize o mesmo token secreto em vários webhooks. Para garantir um nível ideal de segurança, gere um token secreto exclusivo para cada webhook que você criar. O token secreto é uma string arbitrária que você fornece e é usada pelo GitHub para calcular e assinar as cargas úteis do webhook enviadas ao CodePipeline, com o intuito de proteger a integridade e a autenticidade das cargas úteis do webhook. Usar as próprias credenciais ou reutilizar o mesmo token em vários webhooks pode levar a vulnerabilidades de segurança.

nota

Se um token secreto tiver sido fornecido, ele será redigido na resposta.

Adição de uma ação de origem do GitHub (por meio do aplicativo OAuth)

Você adiciona ações de origem do GitHub (por meio do aplicativo OAuth) ao CodePipeline ao:

  • Usando o assistente Criar pipeline do console do CodePipeline (Criar um pipeline personalizado (console)) ou a página Editar ação para escolher a opção de provedor do GitHub. O console cria um webhook que aciona seu pipeline quando a origem é alterada.

  • Usando a CLI para adicionar a configuração da ação GitHub e criando recursos adicionais por meio do(a):

    • Exemplo de configuração da ação GitHub em Referência da ação de origem do GitHub (por meio do aplicativo OAuth) para criar a ação conforme mostrado em Criar um pipeline (CLI).

    • Desabilitação das verificações periódicas e criação da detecção de alterações manualmente, porque o método de detecção de alterações assume como padrão o acionamento do pipeline pesquisando a origem. Você migra o pipeline de sondagem para webhooks de ações do GitHub (por meio do aplicativo OAuth).

Referência da ação de origem do GitHub (por meio do aplicativo OAuth)

nota

Embora não seja recomendável usar a ação do GitHub (por meio do aplicativo OAuth), os pipelines existentes com a ação do GitHub (por meio do aplicativo OAuth) continuarão funcionando sem impacto algum. Para um pipeline com uma ação de origem do GitHub (por meio do aplicativo OAuth), o CodePipeline usa tokens baseados no OAuth para se conectar ao repositório do GitHub. Por outro lado, a nova ação do GitHub (por meio do aplicativo do GitHub) usa um recurso de conexão para associar recursos da AWS ao repositório do GitHub. O recurso de conexão usa tokens baseados em aplicativos para estabelecer conexões. Para obter mais informações sobre como atualizar seu pipeline para a ação recomendada do GitHub que usa uma conexão, consulte Atualizar uma ação de origem do GitHub (por meio do aplicativo OAuth) para uma ação de origem do GitHub (por meio do aplicativo do GitHub).

Aciona o pipeline quando uma nova confirmação é feita no repositório e ramificação do GitHub configurados.

Para integrar-se ao GitHub, o CodePipeline usa uma aplicação OAuth ou um token de acesso pessoal para seu pipeline. Se você usar o console para criar ou editar o pipeline, o CodePipeline criará um webhook do GitHub que acionará o pipeline quando ocorrer uma alteração no repositório.

Você já deve ter criado uma conta e um repositório do GitHub antes de conectar o pipeline por meio de uma ação do GitHub.

Se você quiser limitar o acesso do CodePipeline aos repositórios, crie uma conta do GitHub e conceda à conta acesso apenas aos repositórios que você deseja integrar ao CodePipeline. Use essa conta ao configurar o CodePipeline para usar repositórios do GitHub em estágios de origem nos pipelines.

Para obter mais informações, consulte a documentação do desenvolvedor do GitHub no site do GitHub.

Tipo de ação

  • Categoria: Source

  • Proprietário: ThirdParty

  • Fornecedor: GitHub

  • Versão: 1

Parâmetros de configuração

Proprietário

Obrigatório: Sim

O nome do usuário ou da organização do GitHub que possui o repositório do GitHub.

Repositório

Obrigatório: Sim

O nome do repositório onde as alterações de origem devem ser detectadas.

Ramificação

Obrigatório: Sim

O nome da ramificação onde as alterações de origem devem ser detectadas.

OAuthToken

Obrigatório: Sim

Representa o token de autenticação do GitHub que permite ao CodePipeline executar operações no repositório do GitHub. A entrada é sempre exibida como uma máscara de quatro asteriscos. Representa um dos seguintes valores:

  • Quando você usa o console para criar o pipeline, o CodePipeline usa um token OAuth para registrar a conexão do GitHub.

  • Ao usar a AWS CLI para criar o pipeline, é possível transmitir um token de acesso pessoal do GitHub nesse campo. Substitua os asteriscos (****) pelo seu token de acesso pessoal copiado do GitHub. Quando get-pipeline é executado para visualizar a configuração da ação, a máscara de quatro asteriscos é exibida para esse valor.

  • Quando um modelo do CloudFormation é usado para criar o pipeline, primeiro é necessário armazenar o token como um segredo no AWS Secrets Manager. Inclua o valor desse campo como uma referência dinâmica ao segredo armazenado no Secrets Manager, como {{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}.

Para obter mais informações sobre os escopos do GitHub, consulte a Referência da API do desenvolvedor do GitHub no site do GitHub.

PollForSourceChanges

Obrigatório: Não

O PollForSourceChanges determina se o CodePipeline pesquisará o repositório do GitHub em busca de alterações na origem. Recomendamos que você use webhooks para detectar alterações na origem. Para obter mais informações sobre como configurar webhooks, consulte Migre os pipelines de pesquisa para webhooks (via OAuth aplicativo) GitHub (ações de origem)) (CLI) ou Atualize pipelines para eventos push GitHub (por meio do OAuth aplicativo) (ações de origem) (CloudFormation modelo).

Importante

Quando planejar configurar webhooks, você deve definir PollForSourceChanges como false para evitar execuções duplicadas do pipeline.

Os valores válidos para esse parâmetro:

  • True: se definido, o CodePipeline pesquisará o repositório em busca de alterações na origem.

    nota

    Se você omitir PollForSourceChanges, o CodePipeline assumirá como valor padrão a pesquisa do repositório em busca de alterações na origem. Esse comportamento é o mesmo de quando o PollForSourceChanges está definido como true.

  • False: se definido, o CodePipeline não pesquisará o repositório em busca de alterações na origem. Use essa configuração quando você planejar configurar um webhook para detectar alterações na origem.

Input artifacts (Artefatos de entrada)

  • Número de artefatos: 0

  • Descrição: os artefatos de entrada não se aplicam a esse tipo de ação.

Artefatos de saída

  • Número de artefatos: 1

  • Descrição: O artefato de saída desta ação é um arquivo ZIP que contém o conteúdo do repositório e ramificação configurados na confirmação especificada como a revisão de origem para a execução do pipeline. Os artefatos gerados no repositório são os artefatos de saída para a ação do GitHub. O ID de confirmação do código-fonte é exibido no CodePipeline como a revisão de origem da execução acionada do pipeline.

Variáveis de saída

Quando configurada, essa ação produz variáveis que podem ser referenciadas pela configuração de ação de uma ação downstream no pipeline. Esta ação produz variáveis que podem ser visualizadas como variáveis de saída, mesmo que a ação não tenha um namespace. Configure uma ação com um namespace a fim de disponibilizar as variáveis para a configuração de ações downstream.

Para obter mais informações sobre variáveis no CodePipeline, consulte Referência de variáveis.

CommitId

O ID de confirmação do GitHub que acionou a execução do pipeline. Os IDs de confirmação são o SHA completo da confirmação.

CommitMessage

A mensagem da descrição, se houver, associada à confirmação que acionou a execução do pipeline.

CommitUrl

O endereço URL da confirmação que acionou o pipeline.

RepositoryName

O nome do repositório do GitHub onde a confirmação que acionou o pipeline foi feita.

BranchName

O nome da ramificação do repositório do GitHub onde a alteração na origem foi feita.

AuthorDate

A data em que a confirmação foi criada, no formato de timestamp.

CommitterDate

A data em que a confirmação foi confirmada, no formato de timestamp.

Declaração de ação (exemplo do GitHub)

YAML
Name: Source Actions: - InputArtifacts: [] ActionTypeId: Version: '1' Owner: ThirdParty Category: Source Provider: GitHub OutputArtifacts: - Name: SourceArtifact RunOrder: 1 Configuration: Owner: MyGitHubAccountName Repo: MyGitHubRepositoryName PollForSourceChanges: 'false' Branch: main OAuthToken: '{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}' Name: ApplicationSource
JSON
{ "Name": "Source", "Actions": [ { "InputArtifacts": [], "ActionTypeId": { "Version": "1", "Owner": "ThirdParty", "Category": "Source", "Provider": "GitHub" }, "OutputArtifacts": [ { "Name": "SourceArtifact" } ], "RunOrder": 1, "Configuration": { "Owner": "MyGitHubAccountName", "Repo": "MyGitHubRepositoryName", "PollForSourceChanges": "false", "Branch": "main", "OAuthToken": "{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}" }, "Name": "ApplicationSource" } ] },

Conexão ao GitHub (OAuth)

Na primeira vez que usar o console para adicionar um repositório do GitHub a um pipeline, você será solicitado a autorizar o acesso do CodePipeline a seus repositórios. O token requer os seguintes escopos do GitHub:

  • O escopo repo, que é usado para se obter o controle total para ler e efetuar pull de artefatos de repositórios públicos e privados para um pipeline.

  • O escopo admin:repo_hook, que é usado para se obter o controle total dos ganchos do repositório.

Ao usar a CLI ou um modelo do CloudFormation, você deve fornecer o valor de um token de acesso pessoal que você já criou no GitHub.

Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.