Apêndice A: GitHub (via OAuth aplicativo) ações de origem - 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: GitHub (via OAuth aplicativo) ações de origem

Este apêndice fornece informações sobre (via OAuth aplicativo) a GitHub ação em. CodePipeline

nota

Embora não seja recomendável usar a ação GitHub (via OAuth aplicativo), os pipelines existentes com a ação GitHub (via OAuth aplicativo) continuarão funcionando sem nenhum impacto. Para um pipeline com uma ação GitHub (via OAuth aplicativo), CodePipeline usa tokens OAuth baseados para se conectar ao seu GitHub repositório. Por outro lado, a GitHub ação (via GitHub aplicativo) usa um recurso de conexão para associar AWS recursos ao seu GitHub repositório. 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 GitHub ação recomendada que usa uma conexão, consulteAtualizar uma ação de origem GitHub (via OAuth aplicativo) para uma ação de origem GitHub (via GitHub aplicativo). Para obter mais informações sobre o GitHub acesso OAuth baseado em contraste com o GitHub acesso baseado em aplicativos, consulte. https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps

Para fazer a integração GitHub, CodePipeline use um GitHub OAuth aplicativo para seu pipeline. CodePipelineusa webhooks para gerenciar a detecção de alterações em seu pipeline com a ação de origem GitHub (via OAuth aplicativo).

nota

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

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

Importante

Ao criar CodePipeline webhooks, 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, GitHub usada para computar e assinar as cargas do webhook enviadas para CodePipeline, a fim de proteger a integridade e a autenticidade das cargas 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.

Adicionar uma ação de origem GitHub (via OAuth aplicativo)

Você adiciona GitHub (via OAuth aplicativo) ações de origem CodePipeline a:

  • Usando o CodePipeline console Create pipeline wizard (Criar um pipeline personalizado (console)) ou Editar página de ação para escolher a opção GitHubde provedor. 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 GitHub (via OAuth aplicativo) referência de ação de origem 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 seu pipeline de votação para webhooks para ações GitHub (via OAuth aplicativo).

GitHub (via OAuth aplicativo) referência de ação de origem

nota

Embora não seja recomendável usar a ação GitHub (via OAuth aplicativo), os pipelines existentes com a ação GitHub (via OAuth aplicativo) continuarão funcionando sem nenhum impacto. Para um pipeline com uma ação de origem GitHub GitHub (via OAuth aplicativo), CodePipeline usa tokens OAuth baseados para se conectar ao seu GitHub repositório. Por outro lado, a nova GitHub ação (via GitHub aplicativo) usa um recurso de conexão para associar AWS recursos ao seu GitHub repositório. 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 GitHub ação recomendada que usa uma conexão, consulteAtualizar uma ação de origem GitHub (via OAuth aplicativo) para uma ação de origem GitHub (via GitHub aplicativo).

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

Para se integrar GitHub, CodePipeline use um OAuth aplicativo ou um token de acesso pessoal para seu pipeline. Se você usa o console para criar ou editar seu pipeline, CodePipeline cria um GitHub webhook que inicia seu pipeline quando ocorre uma alteração no repositório.

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

Se você quiser limitar o acesso aos CodePipeline repositórios, crie uma GitHub conta e conceda à conta acesso somente aos repositórios com os quais você deseja se integrar. CodePipeline Use essa conta ao configurar o uso CodePipeline de GitHub repositórios para estágios de origem em pipelines.

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

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 GitHub usuário ou da organização que possui o GitHub repositório.

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 GitHub autenticação que CodePipeline permite realizar operações no seu GitHub repositório. 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, CodePipeline usa um OAuth token para registrar a GitHub conexão.

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

  • Ao usar um AWS CloudFormation modelo para criar o pipeline, primeiro você deve armazenar o token como um segredo 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 GitHub escopos, consulte a Referência da API do GitHub desenvolvedor no GitHub site.

PollForSourceChanges

Obrigatório: não

PollForSourceChangescontrola se CodePipeline pesquisa o GitHub repositório em busca de alterações na fonte. 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) (AWS 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, CodePipeline pesquisa seu repositório em busca de alterações na fonte.

    nota

    Se você omitirPollForSourceChanges, o CodePipeline padrão é pesquisar seu repositório em busca de alterações na fonte. Esse comportamento é o mesmo de quando o PollForSourceChanges está definido como true.

  • False: se definido, CodePipeline não pesquisa seu repositório em busca de alterações na fonte. 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 do repositório são os artefatos de saída da ação. GitHub O ID de confirmação do código-fonte é exibido CodePipeline como a revisão da fonte para a execução do pipeline acionado.

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 em CodePipeline, consulteReferência de variáveis.

CommitId

O ID do GitHub commit que acionou a execução do pipeline. IDs Os commits são o SHA completo do commit.

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 GitHub repositório em que o commit que acionou o pipeline foi feito.

BranchName

O nome da ramificação do GitHub repositório em que a alteração na fonte 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" } ] },

Conectando-se a GitHub (OAuth)

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

  • 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 AWS CloudFormation modelo, você deve fornecer o valor de um token de acesso pessoal que você já criou. GitHub

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