From 0d08fea74d7e5178c673c9c6009ed94ad83acc1f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 6 Aug 2026 02:03:28 +0000
Subject: [PATCH 1/9] Refresh Copilot review guidance and workflow checks
Co-authored-by: brunosilvaaircompany <288640862+brunosilvaaircompany@users.noreply.github.com>
---
.github/steps/1-step.md | 13 ++++++++-----
.github/steps/2-step.md | 12 +++++++++---
.github/steps/3-step.md | 23 +++++++++++++++++++----
.github/steps/4-step.md | 14 +++++++++++---
.github/workflows/2-step.yml | 8 ++++----
.github/workflows/3-step.yml | 18 ++++++++++++++++++
.github/workflows/4-step.yml | 10 ++++------
README.md | 6 +++++-
8 files changed, 78 insertions(+), 26 deletions(-)
diff --git a/.github/steps/1-step.md b/.github/steps/1-step.md
index fb5b2d7..1ca6a3d 100644
--- a/.github/steps/1-step.md
+++ b/.github/steps/1-step.md
@@ -111,15 +111,18 @@ Vamos adicionar um banner simples para professores fazerem comunicados e pedir f
-11. Peça uma revisão ao Copilot usando a paleta de comandos do VS Code:
+11. Peça uma revisão ao Copilot no VS Code:
- - Pressione `Ctrl+Shift+P` (Windows/Linux) ou `Cmd+Shift+P` (Mac) para abrir a paleta de comandos.
- - Digite `Chat: Review` e selecione a opção correspondente.
+ - Abra o painel **Source Control**.
+ - Passe o mouse sobre **CHANGES** e clique em **Copilot Code Review - Uncommitted Changes**.
- Aguarde o Copilot analisar suas alterações e adicionar comentários de revisão.
> [!TIP]
-> Você pode escolher revisar alterações não commitadas, staged ou todas as alterações não enviadas. Certifique-se de salvar os arquivos antes de pedir a revisão.
+> Se preferir, você também pode selecionar um trecho de código no editor, clicar com o botão direito e usar **Generate Code > Review**. Certifique-se de salvar os arquivos antes de pedir a revisão.
+
+> [!NOTE]
+> Alguns tipos de arquivo são ignorados pela revisão do Copilot (por exemplo: `*.lock`, `*.log`, `*.svg`, diretórios gerados e vendor).
12. Expanda o painel **Comments** para ver a lista de feedbacks do Copilot.
@@ -139,7 +142,7 @@ Vamos adicionar um banner simples para professores fazerem comunicados e pedir f
Está com problemas? 🤷
- A Revisão do Copilot no VS Code só considera alterações não commitadas. Não faça commit antes de pedir a revisão.
-- Se o Copilot não fornecer feedback de revisão, certifique-se de clicar no botão correto para o agrupamento (unstaged, staged, uncommitted).
+- Se o Copilot não fornecer feedback, confirme que você acionou o botão **Copilot Code Review - Uncommitted Changes** no painel **Source Control**.
- Se o Copilot não enxergar suas alterações, certifique-se de salvar os arquivos antes.
diff --git a/.github/steps/2-step.md b/.github/steps/2-step.md
index 4f1c816..6221bea 100644
--- a/.github/steps/2-step.md
+++ b/.github/steps/2-step.md
@@ -6,7 +6,7 @@ Agora que você testou as capacidades de revisão local do Copilot e fez algumas
### 📖 Teoria: Revisão de Código em Pull Requests
-O GitHub Copilot analisa seu código e fornece feedback inteligente com sugestões acionáveis que você pode aplicar instantaneamente. Cada revisão de código consome uma [Unidade de Solicitação Premium (PRU)](https://docs.github.com/en/copilot/concepts/billing/copilot-requests) do solicitante.
+O GitHub Copilot analisa seu código e fornece feedback inteligente com sugestões acionáveis que você pode aplicar instantaneamente. Cada revisão consome **AI credits**, e os recursos agentic da revisão também podem consumir **GitHub Actions minutes**.
> [!IMPORTANT]
@@ -23,6 +23,12 @@ O GitHub Copilot analisa seu código e fornece feedback inteligente com sugestõ
- **Personalizável**: Suporta instruções customizadas para alinhar com os padrões do time
- **Seguro**: Opera dentro da infraestrutura segura do GitHub
+> [!NOTE]
+> O Copilot code review pode rodar em esforço **Low** (padrão) ou **Medium** (análise mais profunda). O modo Medium tende a consumir mais AI credits e mais minutos de Actions.
+
+> [!NOTE]
+> Alguns arquivos são excluídos da revisão do Copilot (como `*.lock`, `*.log`, `*.svg` e partes geradas automaticamente).
+
Para mais informações, veja a [documentação de revisão de código do GitHub Copilot](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/request-a-code-review).
@@ -40,7 +46,7 @@ Para mais informações, veja a [documentação de revisão de código do GitHub
- **title:** `Add announcement banner`
-3. Na área de detalhes à direita, encontre o menu **Reviewers**. Clique no **ícone de configurações** para mostrar a lista de revisores disponíveis e selecione **Copilot**.
+3. Na área de detalhes à direita, encontre **Reviewers** e clique em **Request** ao lado de **Copilot**.
@@ -59,7 +65,7 @@ Para mais informações, veja a [documentação de revisão de código do GitHub
Está com problemas? 🤷
- Se o Copilot não aparecer na lista de revisores, verifique se o repositório tem o Copilot habilitado
-- Se o Copilot não aparecer na lista de revisores, confira seu plano de assinatura. Não está disponível no plano gratuito.
+- Se o Copilot não aparecer na lista de revisores, confira seu plano de assinatura e políticas da organização. Em organizações com Copilot Business/Enterprise, admins podem habilitar revisão para membros sem licença individual.
- Às vezes, as revisões levam um ou dois minutos para serem concluídas.
diff --git a/.github/steps/3-step.md b/.github/steps/3-step.md
index 4dbee16..967e4dc 100644
--- a/.github/steps/3-step.md
+++ b/.github/steps/3-step.md
@@ -14,6 +14,7 @@ As instruções personalizadas do repositório permitem fornecer ao Copilot cont
- **Instruções para o repositório inteiro**: Se aplicam a todo o código do repositório. Ex: `.github/copilot-instructions.md`
- **Instruções específicas por caminho**: Se aplicam a arquivos específicos para criar critérios focados em diferentes partes do código. Ex: `.github/instructions/NOME.instructions.md`.
+- **Instruções de agente**: Fornecem contexto adicional para agentes em arquivos como `AGENTS.md`.
As instruções são escritas em linguagem natural, no formato Markdown, e normalmente incluem:
@@ -30,14 +31,14 @@ Arquivos de instrução específicos por caminho incluem [YAML front matter](htt
```yaml
---
-applyTo: "tests/**/**,docs/*.md"
+applyTo: "**/*.test.*,docs/**/*.md"
---
# Testing Guidelines ...
```
```yaml
---
-applyTo: "docs/*.md,README.md"
+applyTo: "docs/**/*.md,README.md"
---
# Documentation Guidelines ...
```
@@ -46,6 +47,9 @@ applyTo: "docs/*.md,README.md"
> [!TIP]
> As [instruções personalizadas](https://docs.github.com/en/copilot/how-tos/custom-instructions/adding-repository-custom-instructions-for-github-copilot) funcionam tanto para revisões locais no VS Code quanto para pull requests, garantindo consistência em todo o fluxo de desenvolvimento.
+> [!NOTE]
+> O suporte a cada tipo de instrução varia por cliente (GitHub.com, VS Code, Visual Studio, JetBrains, Xcode, CLI). Consulte sempre a matriz de suporte na documentação oficial.
+
### ⌨️ Atividade: Adicione instruções gerais
@@ -106,7 +110,7 @@ Vamos criar critérios de revisão específicos do Copilot para o frontend e bac
```markdown
---
- applyTo: "*.html,*.css,*.js"
+ applyTo: "**/*.html,**/*.css,**/*.js"
---
## Diretrizes de Frontend
@@ -128,7 +132,7 @@ Vamos criar critérios de revisão específicos do Copilot para o frontend e bac
```markdown
---
- applyTo: "backend/**/*,*.py"
+ applyTo: "src/backend/**/*.py"
---
## Diretrizes de Backend
@@ -140,6 +144,9 @@ Vamos criar critérios de revisão específicos do Copilot para o frontend e bac
- Verifique se mudanças no backend se refletem no frontend (`src/static/**`). Se encontrar possíveis breaking changes, mencione ao desenvolvedor.
```
+> [!TIP]
+> Se você quiser que um arquivo de instrução seja usado apenas por um tipo de agente, pode usar `excludeAgent` no front matter (por exemplo: `excludeAgent: "code-review"` ou `excludeAgent: "cloud-agent"`).
+
5. Faça commit e push dos arquivos de instrução.
@@ -147,6 +154,14 @@ Vamos criar critérios de revisão específicos do Copilot para o frontend e bac
> [!TIP]
> O VS Code possui comandos integrados para ajudar a gerenciar instruções. Tente abrir a paleta de comandos e buscar por `instructions`.
+### ⌨️ Atividade: (opcional) Expanda com skills e MCP
+
+Se quiser elevar o nível da revisão do Copilot:
+
+- Adicione skills em `.github/skills/` para revisões mais especializadas.
+- Configure servidores MCP no repositório para fornecer contexto adicional à revisão.
+- Use `AGENTS.md` para instruções compartilhadas entre ferramentas e agentes.
+
### ⌨️ Atividade: Solicite outra revisão
Com nossas novas instruções definidas, o Copilot agora entende melhor o que é importante para nosso projeto. Vamos pedir outra revisão.
diff --git a/.github/steps/4-step.md b/.github/steps/4-step.md
index 5efc03b..632e59e 100644
--- a/.github/steps/4-step.md
+++ b/.github/steps/4-step.md
@@ -9,7 +9,7 @@ As revisões personalizadas parecem estar funcionando muito bem, mas há um prob
As regras do repositório permitem impor revisões automáticas de código em todos os pull requests, garantindo verificações de qualidade consistentes sem depender dos desenvolvedores para solicitar revisões manualmente ou lembrar de seguir a documentação.
-Cada revisão de código consome uma [Unidade de Solicitação Premium (PRU)](https://docs.github.com/en/copilot/concepts/billing/copilot-requests) do autor do pull request.
+Cada revisão de código consome **AI credits**. Além disso, recursos agentic da revisão podem consumir **GitHub Actions minutes**.
**Opções de Aplicação:**
@@ -31,6 +31,9 @@ Cada revisão de código consome uma [Unidade de Solicitação Premium (PRU)](ht
Para mais informações, veja a [documentação de regras de repositório](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets).
+> [!NOTE]
+> Além de rulesets no repositório/organização, usuários individuais em planos compatíveis também podem habilitar revisão automática para seus próprios pull requests nas configurações do Copilot.
+
### ⌨️ Atividade: Crie uma regra de repositório
@@ -67,6 +70,8 @@ Para mais informações, veja a [documentação de regras de repositório](https
- **Exigir pull request antes de mesclar**: ☑️
- **Exigir resolução de conversas antes de mesclar**: ☑️
- **Solicitar automaticamente revisão de código do Copilot**: ☑️
+ - (Opcional) **Review new pushes**: ☑️
+ - (Opcional) **Review draft pull requests**: ☑️
7. Role até o final e clique em **Create**.
@@ -80,7 +85,7 @@ Para mais informações, veja a [documentação de regras de repositório](https
-10. Clique em **Resolve conversation** para todo feedback atual e antigo do Copilot. Não é necessário implementar nada.
+10. Revise os comentários do Copilot com cuidado. Resolva apenas os que realmente foram tratados (ou considerados não aplicáveis com justificativa).
11. Faça o merge do pull request.
@@ -89,6 +94,9 @@ Para mais informações, veja a [documentação de regras de repositório](https
> [!NOTE]
> Se o botão **Merge pull request** não ativar, verifique se há conversas não resolvidas nos comentários antigos.
+> [!NOTE]
+> Em ambientes com requisitos de rede ou performance, você pode personalizar a execução da revisão com `.github/workflows/copilot-code-review.yml` (ou `copilot-setup-steps.yml`), definir runners e ajustar regras de firewall.
+
12. Com o pull request mesclado, aguarde um momento para a Mona checar seu trabalho, fornecer feedback e fazer a revisão final. Parabéns! Você terminou! 🎉
@@ -120,7 +128,7 @@ Então... vamos corrigir isso! 🧑🚀🚀
> [!TIP]
-> Os modelos premium (que usam PRUs) normalmente são mais robustos e exigem menos prompts de refinamento.
+> Modelos mais avançados normalmente são mais robustos e exigem menos prompts de refinamento, porém tendem a consumir mais AI credits.
> 
diff --git a/.github/workflows/2-step.yml b/.github/workflows/2-step.yml
index 943a72e..fa11c59 100644
--- a/.github/workflows/2-step.yml
+++ b/.github/workflows/2-step.yml
@@ -54,16 +54,16 @@ jobs:
file: exercise-toolkit/markdown-templates/step-feedback/checking-work.md
edit-mode: replace
- - name: Check if Copilot is assigned as reviewer
+ - name: Check if Copilot review was requested
id: check-copilot-reviewer
continue-on-error: true
env:
REVIEWER_LOGIN: ${{ github.event.requested_reviewer.login }}
run: |
if [[ "${REVIEWER_LOGIN,,}" == "copilot" ]]; then
- echo "Copilot is assigned as reviewer."
+ echo "Copilot review was requested."
else
- echo "Copilot is NOT assigned as reviewer."
+ echo "Copilot review was NOT requested."
exit 1
fi
@@ -78,7 +78,7 @@ jobs:
vars: |
step_number: 2
results_table:
- - description: "Copilot reviewed pull request"
+ - description: "Copilot was requested as reviewer on the pull request"
passed: ${{ steps.check-copilot-reviewer.outcome == 'success' }}
- name: Fail job if not all checks passed
diff --git a/.github/workflows/3-step.yml b/.github/workflows/3-step.yml
index c0cd919..26e8446 100644
--- a/.github/workflows/3-step.yml
+++ b/.github/workflows/3-step.yml
@@ -70,6 +70,13 @@ jobs:
with:
file: .github/instructions/frontend.instructions.md
+ - name: Check frontend instructions front matter
+ id: check-frontend-frontmatter
+ continue-on-error: true
+ run: |
+ grep -q "^---" .github/instructions/frontend.instructions.md
+ grep -q "applyTo:" .github/instructions/frontend.instructions.md
+
# Check if backend instructions file exists
- name: Check if backend instructions file exists
id: check-backend-instructions
@@ -78,6 +85,13 @@ jobs:
with:
file: .github/instructions/backend.instructions.md
+ - name: Check backend instructions front matter
+ id: check-backend-frontmatter
+ continue-on-error: true
+ run: |
+ grep -q "^---" .github/instructions/backend.instructions.md
+ grep -q "applyTo:" .github/instructions/backend.instructions.md
+
- name: Update comment - step results
uses: GrantBirki/comment@v2.1.1
with:
@@ -93,8 +107,12 @@ jobs:
passed: ${{ steps.check-copilot-instructions.outcome == 'success' }}
- description: "Created frontend-specific instructions file"
passed: ${{ steps.check-frontend-instructions.outcome == 'success' }}
+ - description: "Frontend instructions include YAML front matter with applyTo"
+ passed: ${{ steps.check-frontend-frontmatter.outcome == 'success' }}
- description: "Created backend-specific instructions file"
passed: ${{ steps.check-backend-instructions.outcome == 'success' }}
+ - description: "Backend instructions include YAML front matter with applyTo"
+ passed: ${{ steps.check-backend-frontmatter.outcome == 'success' }}
- name: Fail job if not all checks passed
if: contains(steps.*.outcome, 'failure')
diff --git a/.github/workflows/4-step.yml b/.github/workflows/4-step.yml
index 7e8dc51..80a2e34 100644
--- a/.github/workflows/4-step.yml
+++ b/.github/workflows/4-step.yml
@@ -56,14 +56,13 @@ jobs:
edit-mode: replace
- name: Check if repository ruleset exists
- if: ${{ github.event.repository.private == false }}
id: check-ruleset
continue-on-error: true
run: |
- # Use GitHub API to check for rulesets (only available for public repositories)
- response=$(gh api repos/${{ github.repository }}/rulesets --jq '.[].name' 2>/dev/null || echo "")
- echo $response
- if echo "$response" | grep -i "copilot" || echo "$response" | grep -i "review"; then
+ # Validate that at least one ruleset includes a Copilot automatic review rule.
+ response=$(gh api repos/${{ github.repository }}/rulesets 2>/dev/null || echo "[]")
+ echo "$response"
+ if echo "$response" | jq -e '.[] | (.rules // [])[] | select((.type // "") | test("copilot"; "i"))' >/dev/null; then
echo "ruleset_exists=true" >> $GITHUB_OUTPUT
else
echo "ruleset_exists=false" >> $GITHUB_OUTPUT
@@ -73,7 +72,6 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Update comment - step results
- if: ${{ github.event.repository.private == false }}
uses: GrantBirki/comment@v2.1.1
with:
repository: ${{ env.ISSUE_REPOSITORY }}
diff --git a/README.md b/README.md
index c74e15f..47f1fd0 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,8 @@ _Aproveite a revisão de código do GitHub Copilot para promover a qualidade do
- **O que você vai construir**: Você irá atualizar o site de atividades extracurriculares da Mergington High School e personalizar o Copilot para revisar pull requests automaticamente, permitindo que mais professores contribuam.
- **Pré-requisitos**:
- - Assinatura do GitHub Copilot (é necessário um plano pago)
+ - Acesso ao GitHub Copilot code review em um plano compatível (Copilot Pro, Pro+, Max, Business ou Enterprise)
+ - Em organizações com Copilot Business/Enterprise, administradores podem habilitar code review para membros sem licença individual
- Familiaridade com revisão de código em pull requests
- Familiaridade com Codespaces, ou o exercício [Code with Codespaces](https://github.com/skills/code-with-codespaces)
- Familiaridade com o GitHub Copilot, ou o exercício [Getting Started with GitHub](https://github.com/skills/getting-started-with-github-copilot)
@@ -23,6 +24,9 @@ Neste exercício, você irá:
1. Personalizar os critérios de revisão do Copilot com instruções específicas do repositório
1. Configurar revisões automáticas usando regras do repositório
+> [!NOTE]
+> Este exercício usa VS Code e GitHub.com. O GitHub Copilot code review também está disponível em outros clientes compatíveis, como Visual Studio, JetBrains, Xcode, GitHub Mobile e GitHub CLI.
+
### Como iniciar este exercício
Basta copiar o exercício para sua conta, aguardar cerca de 20 segundos para que o Octocat (Mona) prepare a primeira lição e então **atualizar a página**.
From 6d81aeea609349a6a3e3d69d7c4ea9da68e2e7ac Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 6 Aug 2026 02:22:59 +0000
Subject: [PATCH 2/9] Document head-branch review customization and metrics
Co-authored-by: brunosilvaaircompany <288640862+brunosilvaaircompany@users.noreply.github.com>
---
.github/steps/3-step.md | 14 ++++++++++----
.github/steps/x-review.md | 9 +++++++++
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/.github/steps/3-step.md b/.github/steps/3-step.md
index 967e4dc..557ae8e 100644
--- a/.github/steps/3-step.md
+++ b/.github/steps/3-step.md
@@ -50,6 +50,12 @@ applyTo: "docs/**/*.md,README.md"
> [!NOTE]
> O suporte a cada tipo de instrução varia por cliente (GitHub.com, VS Code, Visual Studio, JetBrains, Xcode, CLI). Consulte sempre a matriz de suporte na documentação oficial.
+> [!NOTE]
+> Se o repositório já tiver `REVIEW.md`, `GEMINI.md` ou `CLAUDE.md` na raiz, o Copilot Code Review também respeitará essas diretrizes nativamente. Esses formatos comuns de mercado são incorporados de forma transparente à revisão, sem exigir que o conteúdo seja duplicado em outro arquivo.
+
+> [!IMPORTANT]
+> Ao revisar um pull request, o Copilot Code Review lê `copilot-instructions.md`, `AGENTS.md`, arquivos `*.instructions.md` e agent skills a partir da **branch de origem (head branch)**, e não da branch base. Assim, você pode testar novas regras no próprio pull request antes de mesclá-las.
+
### ⌨️ Atividade: Adicione instruções gerais
@@ -148,7 +154,7 @@ Vamos criar critérios de revisão específicos do Copilot para o frontend e bac
> Se você quiser que um arquivo de instrução seja usado apenas por um tipo de agente, pode usar `excludeAgent` no front matter (por exemplo: `excludeAgent: "code-review"` ou `excludeAgent: "cloud-agent"`).
-5. Faça commit e push dos arquivos de instrução.
+5. Faça commit e push dos arquivos de instrução na branch `add-announcement-banner`.
> [!TIP]
@@ -166,9 +172,9 @@ Se quiser elevar o nível da revisão do Copilot:
Com nossas novas instruções definidas, o Copilot agora entende melhor o que é importante para nosso projeto. Vamos pedir outra revisão.
-6. No VS Code, certifique-se de que as instruções foram realmente commitadas e faça push para o repositório.
+6. Ainda na branch `add-announcement-banner`, altere ou acrescente uma regra observável — por exemplo, uma exigência de acessibilidade para o banner — e faça commit e push. Não crie outro pull request: essa mudança servirá para testar as regras na head branch.
-7. No navegador, retorne ao pull request criado recentemente.
+7. No navegador, retorne ao mesmo pull request criado anteriormente.
8. No canto superior direito, encontre o menu **Reviewers** e o botão **Re-request review** ao lado de **Copilot**. Clique nele e aguarde um momento para o Copilot adicionar comentários ao pull request.
@@ -178,7 +184,7 @@ Com nossas novas instruções definidas, o Copilot agora entende melhor o que é
> [!NOTE]
> Se você for rápido demais após enviar novos commits, talvez precise esperar um pouco para o botão aparecer, ou atualizar a página.
-9. Observe que o feedback do Copilot agora é diferente da revisão anterior.
+9. Compare o feedback com a revisão anterior e observe como o Copilot passou a considerar a regra alterada, sem que ela precisasse ser mesclada na branch base.
10. Com a revisão solicitada, aguarde um momento para a Mona checar seu trabalho, fornecer feedback e compartilhar a próxima lição.
diff --git a/.github/steps/x-review.md b/.github/steps/x-review.md
index abef1ec..68b277b 100644
--- a/.github/steps/x-review.md
+++ b/.github/steps/x-review.md
@@ -25,3 +25,12 @@ Neste exercício, você aprendeu a:
- [Skills: Expanda seu time com o agente de código Copilot](https://github.com/skills/expand-your-team-with-copilot)
- [Skills: Personalize sua experiência com o GitHub Copilot](https://github.com/skills/customize-your-github-copilot-experience)
- [Skills: IA em Ação](https://github.com/skills/ai-in-actions)
+
+### Acompanhe o impacto por repositório
+
+Administradores e professores podem analisar o engajamento do laboratório com os relatórios diários de métricas de uso do Copilot em nível de repositório. A API REST oferece os seguintes endpoints:
+
+- Organização: `GET /orgs/{org}/copilot/metrics/reports/repos-1-day?day=YYYY-MM-DD`
+- Enterprise: `GET /enterprises/{enterprise}/copilot/metrics/reports/repos-1-day?day=YYYY-MM-DD`
+
+Os relatórios detalham, por repositório, os pull requests revisados pelo Copilot Code Review e a quantidade de sugestões separada por tipo de comentário. Compare esses dados entre os repositórios escolares e com os resultados das revisões para acompanhar adoção, participação e impacto após o exercício. Consulte a [documentação da API REST de métricas do Copilot](https://docs.github.com/en/rest/copilot/metrics) para requisitos de acesso e o formato dos relatórios.
From 50f3afc03a21f46da04135be2df6b2ed6d513c97 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 6 Aug 2026 02:27:00 +0000
Subject: [PATCH 3/9] Correct Copilot metrics documentation link
Co-authored-by: brunosilvaaircompany <288640862+brunosilvaaircompany@users.noreply.github.com>
---
.github/steps/x-review.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/steps/x-review.md b/.github/steps/x-review.md
index 68b277b..88e3636 100644
--- a/.github/steps/x-review.md
+++ b/.github/steps/x-review.md
@@ -33,4 +33,4 @@ Administradores e professores podem analisar o engajamento do laboratório com o
- Organização: `GET /orgs/{org}/copilot/metrics/reports/repos-1-day?day=YYYY-MM-DD`
- Enterprise: `GET /enterprises/{enterprise}/copilot/metrics/reports/repos-1-day?day=YYYY-MM-DD`
-Os relatórios detalham, por repositório, os pull requests revisados pelo Copilot Code Review e a quantidade de sugestões separada por tipo de comentário. Compare esses dados entre os repositórios escolares e com os resultados das revisões para acompanhar adoção, participação e impacto após o exercício. Consulte a [documentação da API REST de métricas do Copilot](https://docs.github.com/en/rest/copilot/metrics) para requisitos de acesso e o formato dos relatórios.
+Os relatórios detalham, por repositório, os pull requests revisados pelo Copilot Code Review e a quantidade de sugestões separada por tipo de comentário. Compare esses dados entre os repositórios escolares e com os resultados das revisões para acompanhar adoção, participação e impacto após o exercício. O acesso depende das permissões de administrador e das políticas de métricas da organização ou enterprise. Consulte a [documentação da API REST de métricas do Copilot](https://docs.github.com/en/rest/copilot/copilot-usage-metrics) para os requisitos de acesso e o formato dos relatórios.
From 9ddcd2baeac8bc2ce12969140b4da30199db163e Mon Sep 17 00:00:00 2001
From: Bruno Silva
Date: Wed, 5 Aug 2026 23:44:33 -0300
Subject: [PATCH 4/9] Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---
.github/workflows/3-step.yml | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/3-step.yml b/.github/workflows/3-step.yml
index 26e8446..158ad33 100644
--- a/.github/workflows/3-step.yml
+++ b/.github/workflows/3-step.yml
@@ -71,12 +71,13 @@ jobs:
file: .github/instructions/frontend.instructions.md
- name: Check frontend instructions front matter
+ if: ${{ steps.check-frontend-instructions.outcome == 'success' }}
id: check-frontend-frontmatter
continue-on-error: true
run: |
- grep -q "^---" .github/instructions/frontend.instructions.md
- grep -q "applyTo:" .github/instructions/frontend.instructions.md
-
+ set -euo pipefail
+ head -n 1 .github/instructions/frontend.instructions.md | grep -qx '---'
+ awk 'NR==1{next} /^---$/{exit found?0:1} /^applyTo:/{found=1} END{exit 1}' .github/instructions/frontend.instructions.md
# Check if backend instructions file exists
- name: Check if backend instructions file exists
id: check-backend-instructions
From 7bbbdabaf73de70777ab166a3a048e10aac93cee Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 6 Aug 2026 02:46:30 +0000
Subject: [PATCH 5/9] fix: validate Copilot rules using ruleset detail endpoint
Co-authored-by: brunosilvaaircompany <288640862+brunosilvaaircompany@users.noreply.github.com>
---
.github/steps/x-review.md | 4 ++--
.github/workflows/4-step.yml | 24 +++++++++++++++++-------
2 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/.github/steps/x-review.md b/.github/steps/x-review.md
index 88e3636..a93a8bb 100644
--- a/.github/steps/x-review.md
+++ b/.github/steps/x-review.md
@@ -28,9 +28,9 @@ Neste exercício, você aprendeu a:
### Acompanhe o impacto por repositório
-Administradores e professores podem analisar o engajamento do laboratório com os relatórios diários de métricas de uso do Copilot em nível de repositório. A API REST oferece os seguintes endpoints:
+Administradores e usuários com a permissão **View Copilot Metrics** podem analisar o engajamento do laboratório com os relatórios diários de métricas de uso do Copilot em nível de repositório. A API REST oferece os seguintes endpoints:
- Organização: `GET /orgs/{org}/copilot/metrics/reports/repos-1-day?day=YYYY-MM-DD`
- Enterprise: `GET /enterprises/{enterprise}/copilot/metrics/reports/repos-1-day?day=YYYY-MM-DD`
-Os relatórios detalham, por repositório, os pull requests revisados pelo Copilot Code Review e a quantidade de sugestões separada por tipo de comentário. Compare esses dados entre os repositórios escolares e com os resultados das revisões para acompanhar adoção, participação e impacto após o exercício. O acesso depende das permissões de administrador e das políticas de métricas da organização ou enterprise. Consulte a [documentação da API REST de métricas do Copilot](https://docs.github.com/en/rest/copilot/copilot-usage-metrics) para os requisitos de acesso e o formato dos relatórios.
+Os relatórios detalham, por repositório, os pull requests revisados pelo Copilot Code Review e a quantidade de sugestões separada por tipo de comentário. Compare esses dados entre os repositórios escolares e com os resultados das revisões para acompanhar adoção, participação e impacto após o exercício. Participantes comuns do hands-on podem não ter acesso a esses endpoints: a consulta deve ser feita por um administrador ou por alguém com a permissão apropriada, conforme as políticas de métricas da organização ou enterprise. Consulte a [documentação da API REST de métricas do Copilot](https://docs.github.com/en/rest/copilot/copilot-usage-metrics) para os requisitos de acesso e o formato dos relatórios.
diff --git a/.github/workflows/4-step.yml b/.github/workflows/4-step.yml
index 80a2e34..0f2fe6d 100644
--- a/.github/workflows/4-step.yml
+++ b/.github/workflows/4-step.yml
@@ -59,15 +59,25 @@ jobs:
id: check-ruleset
continue-on-error: true
run: |
- # Validate that at least one ruleset includes a Copilot automatic review rule.
- response=$(gh api repos/${{ github.repository }}/rulesets 2>/dev/null || echo "[]")
- echo "$response"
- if echo "$response" | jq -e '.[] | (.rules // [])[] | select((.type // "") | test("copilot"; "i"))' >/dev/null; then
- echo "ruleset_exists=true" >> $GITHUB_OUTPUT
- else
- echo "ruleset_exists=false" >> $GITHUB_OUTPUT
+ # Validate that at least one active ruleset includes a Copilot automatic review rule.
+ ruleset_ids=$(gh api "repos/${{ github.repository }}/rulesets?per_page=100" 2>/dev/null |
+ jq -r '.[] | select((.enforcement // "") == "active") | .id')
+
+ if [ -z "$ruleset_ids" ]; then
+ echo "ruleset_exists=false" >> "$GITHUB_OUTPUT"
exit 1
fi
+
+ for ruleset_id in $ruleset_ids; do
+ if gh api "repos/${{ github.repository }}/rulesets/$ruleset_id" 2>/dev/null |
+ jq -e 'any((.rules // [])[]?; (.type // "") | test("copilot"; "i"))' >/dev/null; then
+ echo "ruleset_exists=true" >> "$GITHUB_OUTPUT"
+ exit 0
+ fi
+ done
+
+ echo "ruleset_exists=false" >> "$GITHUB_OUTPUT"
+ exit 1
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
From 1bc223d4aa1434b171417f48c985d71059d3173f Mon Sep 17 00:00:00 2001
From: Bruno Silva
Date: Wed, 5 Aug 2026 23:53:26 -0300
Subject: [PATCH 6/9] Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---
.github/workflows/3-step.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/3-step.yml b/.github/workflows/3-step.yml
index 158ad33..070c951 100644
--- a/.github/workflows/3-step.yml
+++ b/.github/workflows/3-step.yml
@@ -77,7 +77,7 @@ jobs:
run: |
set -euo pipefail
head -n 1 .github/instructions/frontend.instructions.md | grep -qx '---'
- awk 'NR==1{next} /^---$/{exit found?0:1} /^applyTo:/{found=1} END{exit 1}' .github/instructions/frontend.instructions.md
+ awk 'NR==1{next} /^applyTo:/{found=1} /^---$/{closed=1; exit} END{exit (found && closed) ? 0 : 1}' .github/instructions/frontend.instructions.md
# Check if backend instructions file exists
- name: Check if backend instructions file exists
id: check-backend-instructions
From 5bfc839cbbadeff3edf6bd32057380dff442bc5e Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 6 Aug 2026 03:01:32 +0000
Subject: [PATCH 7/9] fix: tighten front matter and ruleset validation checks
Co-authored-by: brunosilvaaircompany <288640862+brunosilvaaircompany@users.noreply.github.com>
---
.github/steps/4-step.md | 14 +++++++--
.github/workflows/3-step.yml | 8 +++--
.github/workflows/4-step.yml | 59 +++++++++++++++++++++++++++++++-----
3 files changed, 67 insertions(+), 14 deletions(-)
diff --git a/.github/steps/4-step.md b/.github/steps/4-step.md
index 632e59e..8470113 100644
--- a/.github/steps/4-step.md
+++ b/.github/steps/4-step.md
@@ -1,12 +1,15 @@
## Etapa 4: Automatize as Revisões
-As revisões personalizadas parecem estar funcionando muito bem, mas há um problema: elas não são tecnicamente obrigatórias. Solicitar revisões do Copilot manualmente não é sustentável quando há vários professores contribuindo para o site de atividades. Você quer que todo pull request receba automaticamente o feedback do Copilot, especialmente porque há diferentes níveis de experiência em programação entre os colaboradores. Vamos configurar regras do repositório para exigir revisões do Copilot em todas as mudanças.
+As revisões personalizadas parecem estar funcionando muito bem, mas há um problema: elas não são tecnicamente obrigatórias. Solicitar revisões do Copilot manualmente não é sustentável quando há vários professores contribuindo para o site de atividades. Você quer que todo pull request receba automaticamente o feedback do Copilot, especialmente porque há diferentes níveis de experiência em programação entre os colaboradores. Vamos configurar regras do repositório para **solicitar automaticamente** revisões do Copilot em todas as mudanças.
### 📖 Teoria: Regras de Repositório para Revisões Automáticas
-As regras do repositório permitem impor revisões automáticas de código em todos os pull requests, garantindo verificações de qualidade consistentes sem depender dos desenvolvedores para solicitar revisões manualmente ou lembrar de seguir a documentação.
+As regras do repositório permitem configurar revisões automáticas de código em pull requests, garantindo verificações de qualidade consistentes sem depender dos desenvolvedores para solicitar revisões manualmente ou lembrar de seguir a documentação.
+
+
+Quando você ativa **Automatically request Copilot code review**, o Copilot passa a ser solicitado automaticamente e publica a revisão como comentário no pull request. Essa revisão **não substitui aprovação humana obrigatória** e **não bloqueia merge por si só**. Se o merge ficar bloqueado, o motivo será outra regra do ruleset (por exemplo: exigir pull request, aprovações humanas ou resolução de conversas).
Cada revisão de código consome **AI credits**. Além disso, recursos agentic da revisão podem consumir **GitHub Actions minutes**.
@@ -73,6 +76,11 @@ Para mais informações, veja a [documentação de regras de repositório](https
- (Opcional) **Review new pushes**: ☑️
- (Opcional) **Review draft pull requests**: ☑️
+ **Sobre as opções opcionais:**
+ - **Review new pushes**: solicita nova revisão automática quando novos commits são enviados ao pull request.
+ - **Review draft pull requests**: permite que a revisão automática também aconteça enquanto o pull request ainda está em draft.
+ - Se essas opções não forem habilitadas, a revisão automática não necessariamente será executada novamente a cada push ou durante a fase de draft.
+
7. Role até o final e clique em **Create**.
@@ -80,7 +88,7 @@ Para mais informações, veja a [documentação de regras de repositório](https
8. Volte para o pull request aberto.
-9. Note que o botão de merge agora está desabilitado.
+9. Dependendo das demais regras habilitadas no ruleset, o botão de merge pode ficar desabilitado até que os requisitos sejam atendidos.
diff --git a/.github/workflows/3-step.yml b/.github/workflows/3-step.yml
index 070c951..8b4a91e 100644
--- a/.github/workflows/3-step.yml
+++ b/.github/workflows/3-step.yml
@@ -76,7 +76,7 @@ jobs:
continue-on-error: true
run: |
set -euo pipefail
- head -n 1 .github/instructions/frontend.instructions.md | grep -qx '---'
+ head -n 1 .github/instructions/frontend.instructions.md | grep -qx '^---$'
awk 'NR==1{next} /^applyTo:/{found=1} /^---$/{closed=1; exit} END{exit (found && closed) ? 0 : 1}' .github/instructions/frontend.instructions.md
# Check if backend instructions file exists
- name: Check if backend instructions file exists
@@ -87,11 +87,13 @@ jobs:
file: .github/instructions/backend.instructions.md
- name: Check backend instructions front matter
+ if: ${{ steps.check-backend-instructions.outcome == 'success' }}
id: check-backend-frontmatter
continue-on-error: true
run: |
- grep -q "^---" .github/instructions/backend.instructions.md
- grep -q "applyTo:" .github/instructions/backend.instructions.md
+ set -euo pipefail
+ head -n 1 .github/instructions/backend.instructions.md | grep -qx '^---$'
+ awk 'NR==1{next} /^applyTo:/{found=1} /^---$/{closed=1; exit} END{exit (found && closed) ? 0 : 1}' .github/instructions/backend.instructions.md
- name: Update comment - step results
uses: GrantBirki/comment@v2.1.1
diff --git a/.github/workflows/4-step.yml b/.github/workflows/4-step.yml
index 0f2fe6d..4188739 100644
--- a/.github/workflows/4-step.yml
+++ b/.github/workflows/4-step.yml
@@ -59,24 +59,67 @@ jobs:
id: check-ruleset
continue-on-error: true
run: |
- # Validate that at least one active ruleset includes a Copilot automatic review rule.
- ruleset_ids=$(gh api "repos/${{ github.repository }}/rulesets?per_page=100" 2>/dev/null |
- jq -r '.[] | select((.enforcement // "") == "active") | .id')
+ set -euo pipefail
+
+ classify_error() {
+ local stderr_file="$1"
+ local stderr_content
+ stderr_content="$(cat "$stderr_file")"
+ if echo "$stderr_content" | grep -Eq 'HTTP 401|401 Unauthorized'; then
+ echo "::error::Falha de autenticação ao consultar rulesets. Revise o token do workflow (GITHUB_TOKEN/GH_TOKEN)."
+ elif echo "$stderr_content" | grep -Eq 'HTTP 403|403 Forbidden'; then
+ echo "::error::Permissão insuficiente para consultar rulesets. Revise as permissões administrativas e o escopo do token do workflow."
+ else
+ echo "::error::Falha ao consultar a API de rulesets. Verifique conectividade e permissões do workflow."
+ fi
+ echo "$stderr_content"
+ }
+
+ echo "ruleset_exists=false" >> "$GITHUB_OUTPUT"
+
+ rulesets_response="$(mktemp)"
+ rulesets_stderr="$(mktemp)"
+
+ if ! gh api "repos/${{ github.repository }}/rulesets?per_page=100" >"$rulesets_response" 2>"$rulesets_stderr"; then
+ classify_error "$rulesets_stderr"
+ exit 1
+ fi
+
+ if ! jq -e 'type == "array"' "$rulesets_response" >/dev/null; then
+ echo "::error::Resposta inválida da API ao listar rulesets. Esperado JSON em formato de lista."
+ cat "$rulesets_response"
+ exit 1
+ fi
+
+ ruleset_ids=$(jq -r '.[] | select((.enforcement // "") == "active") | .id' "$rulesets_response")
if [ -z "$ruleset_ids" ]; then
- echo "ruleset_exists=false" >> "$GITHUB_OUTPUT"
+ echo "::error::Nenhum ruleset ativo encontrado no repositório. Ative um ruleset com solicitação automática de revisão do Copilot."
exit 1
fi
for ruleset_id in $ruleset_ids; do
- if gh api "repos/${{ github.repository }}/rulesets/$ruleset_id" 2>/dev/null |
- jq -e 'any((.rules // [])[]?; (.type // "") | test("copilot"; "i"))' >/dev/null; then
+ ruleset_detail_response="$(mktemp)"
+ ruleset_detail_stderr="$(mktemp)"
+
+ if ! gh api "repos/${{ github.repository }}/rulesets/$ruleset_id" >"$ruleset_detail_response" 2>"$ruleset_detail_stderr"; then
+ classify_error "$ruleset_detail_stderr"
+ exit 1
+ fi
+
+ if ! jq -e 'type == "object"' "$ruleset_detail_response" >/dev/null; then
+ echo "::error::Resposta inválida da API ao consultar o ruleset $ruleset_id."
+ cat "$ruleset_detail_response"
+ exit 1
+ fi
+
+ if jq -e 'any((.rules // [])[]?; ((.type // "") | ascii_downcase) == "copilot_code_review")' "$ruleset_detail_response" >/dev/null; then
echo "ruleset_exists=true" >> "$GITHUB_OUTPUT"
exit 0
fi
done
- echo "ruleset_exists=false" >> "$GITHUB_OUTPUT"
+ echo "::error::Nenhum ruleset ativo contém a regra de solicitação automática de revisão do Copilot."
exit 1
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -92,7 +135,7 @@ jobs:
vars: |
step_number: 4
results_table:
- - description: "Repository ruleset created that requires Copilot reviews"
+ - description: "Repository ruleset ativo com solicitação automática de revisão do Copilot"
passed: ${{ steps.check-ruleset.outcome == 'success' }}
- name: Fail job if not all checks passed
From 47a857afa779e55dde7d37988ffd95eebb11315d Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 6 Aug 2026 03:12:17 +0000
Subject: [PATCH 8/9] Translate step results description to English in
4-step.yml
Co-authored-by: brunosilvaaircompany <288640862+brunosilvaaircompany@users.noreply.github.com>
---
.github/workflows/4-step.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/4-step.yml b/.github/workflows/4-step.yml
index 4188739..b5077e1 100644
--- a/.github/workflows/4-step.yml
+++ b/.github/workflows/4-step.yml
@@ -135,7 +135,7 @@ jobs:
vars: |
step_number: 4
results_table:
- - description: "Repository ruleset ativo com solicitação automática de revisão do Copilot"
+ - description: "Active repository ruleset with automatic Copilot code review request"
passed: ${{ steps.check-ruleset.outcome == 'success' }}
- name: Fail job if not all checks passed
From 1dea43e69a967e620b1cf8ab82374de131549a88 Mon Sep 17 00:00:00 2001
From: Bruno Silva
Date: Thu, 6 Aug 2026 00:36:48 -0300
Subject: [PATCH 9/9] =?UTF-8?q?docs:=20documentar=20justificativas=20das?=
=?UTF-8?q?=20altera=C3=A7=C3=B5es=20do=20PR?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/pr-1-alteracoes.md | 339 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 339 insertions(+)
create mode 100644 docs/pr-1-alteracoes.md
diff --git a/docs/pr-1-alteracoes.md b/docs/pr-1-alteracoes.md
new file mode 100644
index 0000000..fbb12c7
--- /dev/null
+++ b/docs/pr-1-alteracoes.md
@@ -0,0 +1,339 @@
+# Justificativa das alterações do PR
+
+Este documento explica o motivo de cada alteração realizada no pull request **“Atualiza laboratório com diretrizes e métricas do Copilot”**.
+
+## Objetivo geral
+
+O PR atualiza o hands-on para refletir o comportamento, a terminologia e as opções atuais do GitHub Copilot code review. Além de modernizar as instruções destinadas aos participantes, ele fortalece as validações automatizadas que verificam o progresso de cada etapa.
+
+As alterações foram organizadas em quatro objetivos principais:
+
+1. alinhar as instruções à interface atual do VS Code e do GitHub.com;
+2. atualizar informações de cobrança, disponibilidade e capacidade do Copilot;
+3. explicar corretamente instruções personalizadas, agent skills, MCP e a head branch;
+4. tornar os workflows de validação mais precisos e úteis.
+
+## `README.md`
+
+### Atualização dos pré-requisitos
+
+O pré-requisito genérico de uma “assinatura paga do GitHub Copilot” foi substituído por uma descrição mais precisa: acesso ao Copilot code review em um plano compatível, incluindo Copilot Pro, Pro+, Max, Business e Enterprise.
+
+A alteração é necessária porque a disponibilidade do code review depende do plano e das políticas configuradas. Além disso, organizações com Copilot Business ou Enterprise podem habilitar o recurso para membros que não tenham uma licença individual, desde que as políticas apropriadas estejam ativadas.
+
+### Inclusão de outros clientes compatíveis
+
+Foi adicionada uma nota informando que o Copilot code review também está disponível em clientes como Visual Studio, JetBrains, Xcode, GitHub Mobile e GitHub CLI.
+
+O exercício continua usando VS Code e GitHub.com, mas a informação ajuda o leitor a entender que o recurso faz parte de uma experiência mais ampla do GitHub Copilot.
+
+## `.github/steps/1-step.md`
+
+### Atualização do fluxo de revisão no VS Code
+
+As instruções antigas orientavam o participante a abrir a paleta de comandos e procurar por `Chat: Review`. Elas foram atualizadas para o fluxo documentado no Source Control:
+
+- abrir o painel **Source Control**;
+- passar o mouse sobre **CHANGES**;
+- selecionar **Copilot Code Review - Uncommitted Changes**.
+
+Isso reduz a ambiguidade sobre qual comando deve ser utilizado e evita que o participante selecione uma funcionalidade diferente do code review.
+
+### Inclusão da revisão de uma seleção de código
+
+Foi adicionada uma alternativa para selecionar um trecho de código e usar **Generate Code > Review**.
+
+Essa opção demonstra que o Copilot também pode revisar uma seleção específica, além de revisar todas as alterações não commitadas.
+
+### Inclusão de arquivos excluídos
+
+O passo passou a mencionar que arquivos como `*.lock`, `*.log`, `*.svg`, arquivos gerados e conteúdo de vendor podem ser excluídos da revisão.
+
+Essa informação explica por que determinados arquivos podem não receber comentários do Copilot e evita que o participante interprete esse comportamento como falha do exercício.
+
+### Melhoria do troubleshooting
+
+A orientação de troubleshooting foi atualizada para mencionar diretamente o botão **Copilot Code Review - Uncommitted Changes**. Isso torna o diagnóstico mais objetivo quando o participante não receber feedback.
+
+## `.github/steps/2-step.md`
+
+### Atualização da terminologia de cobrança
+
+O termo antigo **PRU** foi substituído por **AI credits**, alinhando o conteúdo à terminologia atual do GitHub Copilot.
+
+Também foi documentado que os recursos agentic usados durante a revisão podem consumir **GitHub Actions minutes**. Isso é importante porque a revisão pode envolver coleta de contexto do projeto e uso de ferramentas em um ambiente de execução.
+
+### Explicação dos níveis de esforço
+
+Foi adicionada uma nota sobre os níveis **Low** e **Medium**:
+
+- **Low** é o nível padrão e prioriza uma análise mais rápida;
+- **Medium** realiza uma análise mais profunda e pode consumir mais AI credits e minutos do GitHub Actions.
+
+Essa informação ajuda administradores e participantes a entenderem o equilíbrio entre profundidade, tempo e custo.
+
+### Inclusão de arquivos excluídos
+
+A etapa de revisão em pull requests agora informa que determinados arquivos, como locks, logs, SVGs e arquivos gerados, podem não ser analisados.
+
+Isso mantém a explicação consistente com a etapa de revisão local no VS Code.
+
+### Atualização da solicitação de revisão
+
+A instrução que descrevia o uso de um ícone de configurações foi substituída pelo fluxo atual: localizar **Reviewers** e clicar em **Request** ao lado de **Copilot**.
+
+A alteração torna o passo mais direto e alinhado à interface documentada do GitHub.com.
+
+### Atualização da disponibilidade para membros sem licença
+
+O troubleshooting deixou de afirmar que o recurso não está disponível no plano gratuito de forma genérica. Agora explica que políticas de organizações com Copilot Business ou Enterprise podem habilitar o code review para membros sem licença individual.
+
+Isso evita uma orientação desatualizada e diferencia a disponibilidade por plano das políticas organizacionais.
+
+## `.github/steps/3-step.md`
+
+### Inclusão de instruções de agente
+
+Foi adicionada a categoria de instruções de agente, com referência a `AGENTS.md`.
+
+A alteração explica que esse arquivo pode fornecer contexto compartilhado para agentes e não apenas para o Copilot Chat em um cliente específico.
+
+### Atualização dos exemplos de `applyTo`
+
+Os padrões dos exemplos foram ampliados para usar caminhos recursivos, como:
+
+- `**/*.test.*`;
+- `docs/**/*.md`;
+- `**/*.html`;
+- `**/*.css`;
+- `**/*.js`;
+- `src/backend/**/*.py`.
+
+Isso torna os exemplos mais úteis em repositórios com subdiretórios e faz com que as instruções alcancem os arquivos pretendidos em diferentes níveis da árvore.
+
+### Documentação sobre a matriz de suporte
+
+Foi adicionada uma nota informando que o suporte a cada tipo de instrução pode variar conforme o cliente, como GitHub.com, VS Code, Visual Studio, JetBrains, Xcode e CLI.
+
+A ressalva evita que o participante presuma que todos os arquivos de instrução funcionam exatamente da mesma forma em todos os ambientes.
+
+### Inclusão de `REVIEW.md`, `GEMINI.md` e `CLAUDE.md`
+
+O conteúdo passou a mencionar formatos comuns de instruções mantidos na raiz do repositório.
+
+Isso amplia o contexto apresentado no laboratório e mostra que o code review pode aproveitar diretrizes já existentes em arquivos utilizados por diferentes ferramentas de IA.
+
+### Explicação sobre a head branch
+
+Foi adicionada uma explicação importante: durante a revisão de um pull request, o Copilot lê as instruções, skills e arquivos relevantes a partir da branch de origem, ou **head branch**, e não da branch base.
+
+Essa informação é essencial para o exercício porque permite testar alterações nas instruções dentro do próprio pull request, antes de mesclá-las.
+
+### Atualização do padrão frontend
+
+O padrão de frontend foi alterado para `**/*.html,**/*.css,**/*.js`, garantindo que as instruções sejam aplicadas aos arquivos correspondentes em subdiretórios.
+
+### Atualização do padrão backend
+
+O padrão de backend foi alterado para `src/backend/**/*.py`, refletindo a estrutura real do laboratório e evitando que a instrução seja aplicada de forma excessivamente ampla ou a arquivos fora do backend.
+
+### Inclusão de `excludeAgent`
+
+Foi adicionada uma orientação opcional sobre `excludeAgent`, permitindo explicar como uma instrução pode ser restringida a determinados tipos de agente, como code review ou cloud agent.
+
+Isso apresenta uma capacidade avançada sem torná-la obrigatória para a conclusão do exercício.
+
+### Clareza sobre a branch usada na re-revisão
+
+As instruções agora pedem explicitamente que o participante faça commit e push das regras na branch `add-announcement-banner`, altere ou acrescente uma regra observável e solicite novamente a revisão no mesmo pull request.
+
+A mudança transforma a ideia de “testar instruções” em uma atividade observável e demonstra na prática o uso das instruções presentes na head branch.
+
+### Inclusão opcional de skills e MCP
+
+Foi adicionada uma seção opcional sobre:
+
+- agent skills em `.github/skills/`;
+- servidores MCP configurados no repositório;
+- `AGENTS.md` para regras compartilhadas.
+
+A seção permite ampliar o laboratório para equipes que desejam conectar padrões internos e contexto externo às revisões, sem aumentar os pré-requisitos da atividade principal.
+
+## `.github/steps/4-step.md`
+
+### Correção conceitual sobre a revisão automática
+
+O texto foi alterado de “exigir revisões do Copilot” para “solicitar automaticamente revisões do Copilot”.
+
+Essa distinção é necessária porque o ruleset pode solicitar a revisão automaticamente, mas a revisão do Copilot é publicada como comentário. Ela não substitui uma aprovação humana obrigatória e não bloqueia o merge por si só.
+
+Também foi explicado que um merge pode permanecer bloqueado por outras regras, como:
+
+- exigir pull request;
+- exigir aprovações humanas;
+- exigir resolução de conversas.
+
+### Atualização de cobrança
+
+A etapa agora usa **AI credits** e informa que recursos agentic podem consumir **GitHub Actions minutes**, mantendo consistência com a Etapa 2.
+
+### Inclusão da configuração automática individual
+
+Foi adicionada uma nota informando que usuários em planos compatíveis também podem configurar revisões automáticas para os próprios pull requests nas configurações do Copilot.
+
+Isso diferencia as configurações pessoais das regras aplicadas por repositórios e organizações.
+
+### Inclusão de `Review new pushes`
+
+A opção **Review new pushes** foi documentada como uma forma de solicitar novas revisões quando novos commits forem enviados ao pull request.
+
+Isso esclarece por que um push posterior pode não gerar automaticamente uma nova revisão quando a opção não está habilitada.
+
+### Inclusão de `Review draft pull requests`
+
+A opção **Review draft pull requests** foi documentada para explicar que o Copilot pode revisar pull requests enquanto eles ainda estão em modo draft.
+
+### Ajuste da descrição do botão de merge
+
+A instrução deixou de afirmar que o botão de merge necessariamente ficará desabilitado. Agora informa que isso depende das demais regras habilitadas no ruleset.
+
+Essa alteração evita atribuir ao code review do Copilot um comportamento de bloqueio que ele não possui isoladamente.
+
+### Orientação responsável sobre comentários
+
+O participante agora é instruído a revisar os comentários do Copilot e resolver apenas aqueles que foram tratados ou considerados não aplicáveis com justificativa.
+
+Isso substitui a orientação anterior de resolver todos os comentários sem implementar nada e reforça que o feedback do Copilot deve ser validado por uma pessoa.
+
+### Documentação sobre ambiente de execução
+
+Foi adicionada uma nota sobre `.github/workflows/copilot-code-review.yml`, `copilot-setup-steps.yml`, runners e firewall.
+
+A informação mostra como equipes podem personalizar o ambiente usado pelo code review em cenários que exigem dependências, desempenho ou restrições de rede específicas.
+
+### Atualização da dica sobre modelos
+
+A referência a modelos que usam PRUs foi removida. A nova versão explica que modelos mais avançados tendem a ser mais robustos, mas podem consumir mais AI credits.
+
+## `.github/steps/x-review.md`
+
+### Inclusão de métricas por repositório
+
+Foi adicionada uma seção sobre os relatórios diários de métricas do Copilot em nível de repositório, incluindo os endpoints para organizações e enterprises.
+
+A alteração amplia o resultado do laboratório: além de aprender a configurar revisões, administradores podem analisar adoção, participação e impacto do code review entre diferentes repositórios.
+
+### Esclarecimento de acesso
+
+O texto informa que a consulta depende da permissão **View Copilot Metrics** e que participantes comuns podem não ter acesso aos endpoints.
+
+Isso evita que o hands-on apresente as métricas como disponíveis para qualquer usuário, independentemente das políticas da organização ou enterprise.
+
+## `.github/workflows/2-step.yml`
+
+### Ajuste do nome da validação
+
+O passo foi renomeado de “Check if Copilot is assigned as reviewer” para “Check if Copilot review was requested”.
+
+A nova descrição é mais precisa porque a atividade verifica a solicitação de revisão, não se o Copilot concluiu a análise ou forneceu comentários.
+
+### Ajuste das mensagens e do resultado
+
+As mensagens do shell e a descrição do resultado foram atualizadas para usar “review was requested”.
+
+Isso mantém a validação coerente com o evento `review_requested` usado pelo workflow e evita afirmar que o pull request já foi revisado quando o workflow apenas confirmou a solicitação.
+
+## `.github/workflows/3-step.yml`
+
+### Validação da existência dos arquivos
+
+O workflow continua validando a presença de:
+
+- `.github/copilot-instructions.md`;
+- `.github/instructions/frontend.instructions.md`;
+- `.github/instructions/backend.instructions.md`.
+
+Essas verificações garantem que o participante criou os arquivos exigidos pela atividade.
+
+### Validação do front matter do frontend
+
+Foi adicionada uma verificação que confirma:
+
+- o delimitador inicial `---` na primeira linha;
+- a presença de `applyTo:` dentro do bloco inicial;
+- o delimitador de fechamento `---`.
+
+A validação é executada somente quando o arquivo existe. A expressão `awk` foi ajustada para retornar sucesso corretamente quando o front matter é válido.
+
+### Validação do front matter do backend
+
+A mesma lógica foi aplicada ao arquivo de backend, incluindo a condição que impede a execução da checagem quando o arquivo não existe.
+
+Isso evita falsos positivos causados por ocorrências de `---` ou `applyTo:` no corpo do Markdown e produz um resultado separado para a configuração do backend.
+
+### Atualização do relatório de resultados
+
+O relatório da Etapa 3 agora diferencia:
+
+- criação do arquivo geral;
+- criação do arquivo de frontend;
+- validade do front matter do frontend;
+- criação do arquivo de backend;
+- validade do front matter do backend.
+
+Essa granularidade torna o feedback mais útil para o participante, pois indica exatamente qual parte da configuração precisa ser corrigida.
+
+## `.github/workflows/4-step.yml`
+
+### Remoção da limitação a repositórios públicos
+
+A condição que executava a validação de rulesets apenas em repositórios públicos foi removida.
+
+A consulta passou a ser tentada também em repositórios privados, desde que o token tenha permissões adequadas. Isso torna o workflow compatível com mais cenários de uso.
+
+### Tratamento explícito de erros da API
+
+A checagem agora captura a saída padrão e o erro separadamente. Com isso, é possível diferenciar:
+
+- falha de autenticação;
+- falta de permissão;
+- falha genérica da API;
+- resposta JSON inválida;
+- ausência de rulesets ativos;
+- ausência da regra automática do Copilot.
+
+Essa alteração evita que uma falha de acesso seja apresentada incorretamente como ausência de configuração.
+
+### Validação da resposta JSON
+
+Antes de processar os dados, o workflow confirma que a listagem de rulesets é um array JSON e que cada detalhe de ruleset é um objeto JSON.
+
+Isso evita erros silenciosos ou resultados incorretos quando a API retornar um formato inesperado.
+
+### Verificação de rulesets ativos
+
+A validação filtra apenas rulesets com enforcement ativo, pois o objetivo do exercício é confirmar uma regra realmente aplicada ao repositório.
+
+### Verificação da regra de revisão do Copilot
+
+Em vez de procurar apenas palavras no nome do ruleset, o workflow consulta os detalhes de cada ruleset e procura uma regra do tipo `copilot_code_review`.
+
+Essa abordagem é mais precisa porque valida a regra configurada, não apenas o nome escolhido pelo participante.
+
+### Mensagens acionáveis
+
+Foram adicionadas mensagens específicas para autenticação, permissões, JSON inválido e configuração ausente.
+
+Isso reduz o tempo de diagnóstico e ajuda o participante ou administrador a corrigir o problema correto.
+
+### Atualização do relatório da Etapa 4
+
+A descrição do resultado passou a indicar que o repositório possui um ruleset ativo com solicitação automática de revisão do Copilot.
+
+Essa mensagem corresponde melhor ao que o workflow realmente verifica.
+
+## Conclusão
+
+As alterações tornam o hands-on mais atualizado, preciso e confiável. A documentação agora diferencia solicitação automática de revisão de aprovação obrigatória, explica os custos e níveis de esforço, apresenta os mecanismos de personalização disponíveis e orienta corretamente sobre a origem das instruções.
+
+Os workflows também passaram a validar não apenas a existência dos arquivos, mas a configuração efetiva do front matter e da regra de revisão automática, com mensagens mais úteis para diagnóstico.