# Mandar reports para o GitHub

URL: /guias/reports-no-github

Conecte uma GitHub App ao projeto e crie ou vincule issues a partir dos reports.

Ao fim, qualquer membro do projeto cria uma issue do GitHub a partir de um report, com o texto e um link de volta ao Mira. As evidências ficam no Mira.

## Pré-requisitos [#pré-requisitos]

- Administrador do Mira, ou Mantenedor do projeto, e alguém com permissão para criar GitHub Apps na conta ou organização.
- Os repositórios de destino com **Issues** ativo.
- Um report no projeto para o teste final.

## Passos [#passos]

<Steps>
<Step>

### Criar a GitHub App [#criar-a-github-app]

**Quem faz:** admin.

Em **Configurações do projeto**, **Integrações**, abra **GitHub Issues**. Escolha **Conta pessoal** ou **Organização** e clique em **Criar a App no GitHub**. O link abre o registro já preenchido. Clique em **Create GitHub App**.

Resultado: o GitHub abre a página da App. Para ter links de código e commits suspeitos nos erros, acrescente a permissão **Contents** em leitura. Veja [GitHub Issues](/integracoes/github#conectar-o-github).

</Step>
<Step>

### Coletar as três credenciais [#coletar-as-três-credenciais]

**Quem faz:** admin.

Na página da App, copie o **App ID** (não o Client ID). Em **Private keys**, clique em **Generate a private key** para baixar o `.pem`. Em **Install App**, instale nos repositórios necessários com **Only select repositories**, abra **Configure** e copie o Installation ID, o número no fim da URL.

Resultado: você tem o App ID, o Installation ID e o `.pem`. Uma organização pode exigir aprovação de um owner antes da instalação.

</Step>
<Step>

### Conectar no Mira [#conectar-no-mira]

**Quem faz:** admin.

No painel **GitHub Issues**, informe o App ID, o Installation ID e o conteúdo inteiro do `.pem`, da linha `BEGIN` até a linha `END`. Clique em **Validar e conectar**.

Resultado: o painel mostra a conta conectada.

</Step>
<Step>

### Liberar os repositórios [#liberar-os-repositórios]

**Quem faz:** admin.

Marque os repositórios que podem receber issues deste projeto e clique em **Salvar repositórios**.

Resultado: só os repositórios marcados aparecem para os membros. Liberar um repositório autoriza todos os membros do projeto a enviar texto por ele, mesmo sem permissão de escrita no GitHub.

</Step>
<Step>

### Criar a issue a partir de um report [#criar-a-issue-a-partir-de-um-report]

**Quem faz:** qualquer membro.

Abra um report e revise a triagem. No card **Integrações**, escolha criar issue e selecione o repositório. Revise título e descrição, remova dados sensíveis e confirme.

<TodoPrint>Card Integrações de um report com a ação de criar issue no GitHub. Nome planejado: `github-create-issue.png`. Depende de GitHub simulado no pipeline.</TodoPrint>

Resultado: o card mostra a solicitação em andamento e depois o vínculo com a issue. A issue no GitHub traz o texto e o link do report.

</Step>
<Step>

### Vincular uma issue que já existe [#vincular-uma-issue-que-já-existe]

**Quem faz:** qualquer membro.

Copie a URL da issue, como `https://github.com/empresa/repositorio/issues/123`, cole na ação de vincular do report e confira repositório, número e título.

Resultado: o report mostra o vínculo. Pull requests não podem ser vinculados, e o Mira não escreve na issue existente.

</Step>
</Steps>

## Conferir que deu certo [#conferir-que-deu-certo]

Abra a issue pelo link no card **Integrações**. Ela deve mostrar o texto do report e o link de volta, e a GitHub App como autora da ação. No Mira, o histórico do report registra quem pediu o envio.

## Problemas comuns [#problemas-comuns]

| Sintoma | O que fazer |
| --- | --- |
| O GitHub recusou a chave | Confira se o App ID é da mesma App e cole o `.pem` inteiro |
| Instalação não encontrada | Confira o Installation ID e se a App continua instalada |
| Repositório não aparece para os membros | Adicione-o na instalação, clique em **Consultar de novo** e salve em **Salvar repositórios** |
| Solicitação pendente ou aguardando o limite do GitHub | Acompanhe a que existe. Novos cliques não antecipam o envio |
| Resultado incerto na criação | Confira o GitHub antes de criar outra, porque a issue pode existir sem confirmação no Mira |

As demais mensagens e a troca de chave estão em [GitHub Issues](/integracoes/github#mensagens-ao-conectar).

## Próximos passos [#próximos-passos]

- [Do report à correção com um agente](/guias/report-a-correcao), em que o PR cita a issue vinculada.
- O status do report não acompanha a issue. Resolva o report no Mira depois que a correção for conferida.
