2 pontos por a1eng0 2025-08-23 | 2 comentários | Compartilhar no WhatsApp
  • Ferramenta de extensão do GitHub CLI que faz rebase automático de stacked PRs no GitHub
  • Existem ferramentas excelentes como Graphite e stacked-pr, mas a barreira de entrada delas é alta demais
    • Como ter que abrir Stacked PRs usando apenas essas ferramentas, e não o git
    • Há opções demais nos arquivos de configuração locais
  • Era necessária uma ferramenta de rebase muito simples, com zero configuração e usando apenas os recursos de PR do GitHub, então ela foi desenvolvida diretamente

Exemplo

Situação em que existem os seguintes Stacked PRs:

  • #102 (main <- stack-1)
  • #103 (stack-1 <- stack-2)
  • #104 (stack-2 <- stack-3)

Depois de fazer merge do PR #102 em main, é preciso fazer rebase dos PRs #103 e #104.

  • Mesmo a tarefa de fazer rebase de apenas dois PRs já é bastante incômoda,
  • Na prática, quando o grafo fica complexo por motivos como commits adicionais entrando em #102, lembrar os comandos git para encontrar o pai comum vira algo bem trabalhoso
  • Além disso, stacked PRs não são usados com tanta frequência; normalmente são necessários só de vez em quando, então é ainda mais fácil esquecer

Com o comando abaixo, é possível executar o rebase automático de forma simples:

gh domino --dry-run  
gh domino [--auto]  

Exemplos mais detalhados podem ser vistos no README.md.

2 comentários

 
lamanus 2025-08-25

Ué, eu achei que o GitHub fazia isso automaticamente, não faz?!

 
a1eng0 2025-08-25

Se você usar o recurso safe delete branch oferecido pelo GitHub, a base branch é alterada automaticamente, mas no caso de squash merge, como não há relação no histórico do git, acaba entrando em estado de conflito!

Além disso, se você não usar o safe delete e apagar a branch manualmente pelo git, também existe o incômodo de ter que mudar a base branch por conta própria!