Este diretório contém workflows reutilizáveis que podem ser utilizados em múltiplos repositórios para automatizar processos de desenvolvimento.
Sincroniza labels do repositório baseado em arquivo de configuração.
Como usar:
jobs:
sync-labels:
uses: guardiafinance/project-automations/.github/workflows/reusable-label-sync.yml@main
with:
labels_config_path: ".github/labeling/labels.yml" # Opcional
delete_other_labels: true # Opcional
dry_run: false # Opcional
secrets:
token: ${{ secrets.GITHUB_TOKEN }} # Opcional - usa GITHUB_TOKEN por padrãoInputs:
labels_config_path: Caminho para arquivo de configuração de labels (padrão: URL do repositório de referência)delete_other_labels: Remove labels não definidos no config (padrão:true)dry_run: Executa sem fazer alterações (padrão:false)
Secrets opcionais:
token: Token do GitHub ou PAT personalizado (padrão: usaGITHUB_TOKENautomaticamente)
Exemplos de uso:
Uso básico (só GITHUB_TOKEN):
jobs:
sync-labels:
uses: guardiafinance/project-automations/.github/workflows/reusable-label-sync.yml@main
# Usa GITHUB_TOKEN automaticamenteUso com token personalizado:
jobs:
sync-labels:
uses: guardiafinance/project-automations/.github/workflows/reusable-label-sync.yml@main
with:
labels_config_path: ".github/labeling/labels.yml"
secrets:
token: ${{ secrets.MY_CUSTOM_PAT }} # Token com mais permissõesAplica labels automaticamente em issues e pull requests.
Como usar:
jobs:
auto-labeler:
uses: guardiafinance/project-automations/.github/workflows/reusable-labeler.yml@main
with:
issue_labeler_config: ".github/labeling/issue-labeler.yml" # Opcional
pr_labeler_config: ".github/labeling/pr-labeler.yml" # Opcional
pr_reviewers_config: ".github/reviewers/pr-reviewers.yml" # Opcional
enable_size_labeling: true # Opcional
size_config: '{"0": "XS", "10": "S", "30": "M", "100": "L", "500": "XL", "1000": "XXL"}' # OpcionalInputs:
issue_labeler_config: Config para labeling de issuespr_labeler_config: Config para labeling de PRspr_reviewers_config: Config para atribuição de reviewersenable_size_labeling: Habilita labels de tamanho de PRsize_config: Configuração dos tamanhos de PR em JSON
Gerencia automaticamente o movimento de issues e PRs no GitHub Projects.
Como usar:
jobs:
project-automations:
uses: guardiafinance/project-automations/.github/workflows/reusable-project-automations.yml@main
with:
organization: "guardiafinance" # Obrigatório
project_id: "13" # Obrigatório
issue_opened_status: "BACKLOG" # Opcional - Status para issues abertas
issue_reopened_status: "TO REFINEMENT" # Opcional - Status para issues reabertas
issue_closed_status: "DONE" # Opcional - Status para issues fechadas
issue_rejected_status: "REJECTED" # Opcional - Status para issues rejeitadas
pr_opened_status: "CODE REVIEW" # Opcional - Status para PRs abertos
pr_closed_status: "DONE" # Opcional - Status para PRs fechados
rejected_label: "rejected ❌" # Opcional - Label para items rejeitados
move_related_issues: true # Opcional - Mover issues relacionadas
secrets:
gh_project_token: ${{ secrets.GH_PROJECT_TOKEN }} # ObrigatórioInputs obrigatórios:
organization: Nome da organização GitHubproject_id: ID do GitHub Project
Inputs opcionais (com valores padrão):
issue_opened_status: Status quando issues são abertas (padrão:"BACKLOG")issue_reopened_status: Status quando issues são reabertas (padrão:"TO REFINEMENT")issue_closed_status: Status quando issues são fechadas (padrão:"DONE")issue_rejected_status: Status quando issues são rejeitadas (padrão:"REJECTED")pr_opened_status: Status quando PRs são abertos (padrão:"CODE REVIEW")pr_closed_status: Status quando PRs são fechados (padrão:"DONE")rejected_label: Nome do label para items rejeitados (padrão:"rejected ❌")move_related_issues: Se deve mover issues relacionadas (padrão:true)
Secrets obrigatórios:
gh_project_token: Token com permissões de projeto
- Crie os arquivos de trigger:
# .github/workflows/labeler.yml
name: "Labeler"
on:
issues:
types: [opened, reopened, edited]
pull_request_target:
types: [opened, reopened, synchronize]
jobs:
auto-labeler:
uses: guardiafinance/project-automations/.github/workflows/reusable-labeler.yml@main# .github/workflows/project-automations.yml
name: Project automations
on:
issues:
types: [opened, reopened, closed]
pull_request:
types: [opened, reopened, closed]
jobs:
project-automations:
uses: guardiafinance/project-automations/.github/workflows/reusable-project-automations.yml@main
with:
organization: "sua-organizacao"
project_id: "seu-project-id"
# Opcional: customize os status do seu projeto
issue_opened_status: "📋 Backlog"
issue_reopened_status: "🔍 To Refinement"
pr_opened_status: "👁️ Code Review"
pr_closed_status: "🎉 Done"
secrets:
gh_project_token: ${{ secrets.GH_PROJECT_TOKEN }}-
Configure as variáveis necessárias:
ORGANIZATION_NAME(repository variable)GH_PROJECT_ID(repository variable)GH_PROJECT_TOKEN(repository secret)
-
Crie os arquivos de configuração:
.github/labeling/labels.yml.github/labeling/issue-labeler.yml.github/labeling/pr-labeler.yml.github/reviewers/pr-reviewers.yml
jobs:
project-automations:
uses: guardiafinance/project-automations/.github/workflows/reusable-project-automations.yml@main
with:
organization: "guardiafinance"
project_id: "13"
secrets:
gh_project_token: ${{ secrets.GH_PROJECT_TOKEN }}jobs:
project-automations:
uses: guardiafinance/project-automations/.github/workflows/reusable-project-automations.yml@main
with:
organization: "guardiafinance"
project_id: "13"
issue_opened_status: "BACKLOG"
issue_reopened_status: "TO REFINEMENT"
issue_closed_status: "DONE"
issue_rejected_status: "REJECTED"
pr_opened_status: "CODE REVIEW"
pr_closed_status: "DONE"
rejected_label: "rejected ❌"
move_related_issues: true
secrets:
gh_project_token: ${{ secrets.GH_PROJECT_TOKEN }}- 🔄 Reutilização: Use os mesmos workflows em múltiplos repos
- 🛠️ Manutenibilidade: Centralize lógica em um local
- ⚙️ Configurabilidade: Inputs flexíveis para customização
- 🔒 Segurança: Controle centralizado de permissões
- 📊 Consistência: Padronização entre projetos
Veja os arquivos deste repositório como exemplo de implementação:
label-sync.yml- Como usar o reusable para sync de labelslabeler.yml- Como usar o reusable para labelingproject-automations.yml- Como usar o reusable para automações de projeto