Skip to content

Commit 4912756

Browse files
Jeremias Santosclaude
authored andcommitted
docs(PAV-93): adiciona fallback via gh api ao criar PR na skill abrir-pr
Documenta que, quando o gh pr create falha em fork com nome diferente do upstream (erros "No commits between...", "Head sha can't be blank"), o --head pode ter sido corrompido pelo gh. Inclui validação da branch via gh api compare e criação do PR direto pela API REST (gh api .../pulls), que respeita o head sem truncar. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 4b389a3 commit 4912756

1 file changed

Lines changed: 31 additions & 1 deletion

File tree

  • .claude/skills/abrir-pr-jobs-scraper

.claude/skills/abrir-pr-jobs-scraper/skill.md

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,36 @@ Mostrar tudo formatado e perguntar: **"O PR esta correto? Confirma a criacao? (s
168168
--title "PAV-XX: <titulo>" \
169169
--body "<body completo>"
170170
```
171-
4. Confirmar ao usuario com o link do PR criado
171+
4. **Fallback obrigatorio se o `gh pr create` falhar** com erros do tipo
172+
`No commits between ...`, `Head sha can't be blank` ou `Head ref must be a branch`
173+
(mesmo com a branch existindo no fork e com commits a frente de develop):
174+
175+
> **Por que acontece:** em fork cujo nome difere do upstream, o `gh pr create`
176+
> pode corromper o `--head` ao montar a requisicao (ex.: truncar `feature/...`
177+
> para `ature/...`), fazendo o GitHub nao encontrar a branch. Antes de tentar o
178+
> fallback, confirme que a branch esta ok comparando direto na API:
179+
> ```bash
180+
> gh api "repos/Cla-Code-Community/candidate/compare/develop...$FORK_OWNER:$(git branch --show-current)" \
181+
> --jq '{status:.status, ahead_by:.ahead_by}'
182+
> ```
183+
> Se retornar `ahead_by > 0`, a branch esta correta e o problema e o `gh pr create`.
184+
185+
Criar o PR direto pela API REST (que respeita o `head` sem corromper):
186+
```bash
187+
PAYLOAD=$(mktemp)
188+
cat > "$PAYLOAD" <<JSON
189+
{
190+
"title": "PAV-XX: <titulo>",
191+
"head": "$FORK_OWNER:$(git branch --show-current)",
192+
"base": "develop",
193+
"body": <body como string JSON, com \n para quebras de linha>
194+
}
195+
JSON
196+
gh api --method POST repos/Cla-Code-Community/candidate/pulls --input "$PAYLOAD" \
197+
--jq '{number:.number, url:.html_url}'
198+
rm -f "$PAYLOAD"
199+
```
200+
5. Confirmar ao usuario com o link do PR criado
172201
173202
## Erros comuns
174203
@@ -178,3 +207,4 @@ Mostrar tudo formatado e perguntar: **"O PR esta correto? Confirma a criacao? (s
178207
- **Bloquear por causa de testes falhando** — mostrar as falhas, mas deixar o usuario decidir
179208
- **Esquecer de buscar upstream/develop atualizado** — sempre rodar `git fetch upstream develop` antes de comparar
180209
- **Nao usar --head no gh pr create** — como o projeto usa fork, e obrigatorio passar `--head <owner-do-fork>:<branch>` para o PR ser criado corretamente
210+
- **Desistir quando o `gh pr create` falha com "No commits between..."** — em fork com nome diferente do upstream o `gh` pode corromper o `--head`; valide a branch com o `gh api .../compare` e crie o PR pelo fallback via `gh api .../pulls` (Passo 8)

0 commit comments

Comments
 (0)