DEV Community

loading...

Garantindo padrões de commits em pull requests no GitHub

wandealves profile image Wanderson Alves Rodrigues Updated on ・3 min read

Vamos explorar a funcionalidade Actions do GitHub para automatizar a verificação de padrões de commints.

Para mais detalhes do GitHub Actions segue a documentação: Actions

As definições de padrão de commit é muito importante para organização e futuras consultas nas funcionalidades e bug no decorrer da vida de desenvolvimento do software, caso tenha curiosidade de saber alguns padrões segue um bom luga para consultá-las: Conventional Commits

1 – Criar Action

Para começar acesse seu repositório onde vamos criar a action,na aba Actions clique em set up a workflow yourself como na imagem abaixo:

Alt Text

Seremos redirecionados para um workflow template, porém não vamos usa esse e sim um especifico para rodar action de verificação de título de pull request.

Alt Text

No Edit new file, copie e cole a trecho abaixo:

name: "PR Title Checker"
on:
  pull_request:
    types:
      - opened
      - edited
      - synchronize

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: thehanimo/pr-title-checker@v1.0.0
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  • Nome para identificar nosso workflow foi “PR Title Checker”;
  • Nosso workflow vai executar sempre que for aberto, editado ou sincronizado o pull equest;
  • Vai rodar em cima de uma máquina Ubuntu;
  • Usuário que criou action foi thehanimo para mais detalhes da action [GitHub thehanimo](https://github.com/thehanimo/pr-title-checker;
  • No GITHUB_TOKEN: Passamos o nativo;

Alt Text

Clique Start commit para enviar essas alterações ao master e já temos nosso workflow criado.

2 – Criar Padrões de Commit

Depois de criar nosso workflow vamos definir nossos padrões de commit e caso não atenda mostrar a label.
Acesse .github e clique em Add file para criar um novo arquivo pr-title-styles.json.

Alt Text

Alt Text

No arquivo pr-title-styles.json adicione o trecho:

{
  "LABEL": {
    "name": "titulo está fora do padrão",
    "color": "FF0000"
  },
  "CHECKS": {
    "prefixes": ["fix: ", "feat: "],
    "regexp": "docs\\(v[0-9]\\): "
  }
}

a) Label

  • name: Nome para informar quando o commit não estiver no padrão sera exibida;
  • color: Cor da label;

b) Checks

  • prefixes: Quais padrões vamos adotar no caso tem que começar com fix ou feat;
  • regexp: Regex usado para identificar tal padrão;

Vamos criar um pull request que não siga o padrão definido, ao criar pull request a action vai executar e avaliar a descrição do título informado caso não atenda exibe uma label.
Na imagem nosso título não atendeu ao padrão e mostrou em vermelho “titulo está fora do padrão”.

Alt Text

Lembrando que essa action que criamos não impede que o pull rerquest seja realizado caso não atenda ao nosso padrão só mostrar uma label.

Ao fazer alteração no título do pull request com o fix: a action vai executar e avaliar como agora atende ao padrão a label será removida:

Alt Text

Actions no GitHub é muito interessante e podemos fazer muitas coisas para automatizar rotinas e como vimos até verificar descrições de título de pull request.

GitHub do Projeto

Discussion

pic
Editor guide