Skip to content

board-setup-via-api #60

Description

@eipastel

Objetivo

Refazer a skill pscode-board-setup para configurar o GitHub Project inteiramente via API (gh + GraphQL), removendo a dependência do MCP do Chrome. Ganho principal: velocidade e confiabilidade — sem navegador, sem UI, sem cliques. Já foi comprovado que o setup completo é possível só com API.

Comportamento esperado

1. Pré-requisitos e detecção

  • Exigir gh autenticado com escopo project (gh auth refresh -h github.com -s project).
  • Ler owner, ownerType, project, statusFieldId de pscode/github.yaml.
  • Detectar se o Project é de user ou org para escolher user(login:) vs organization(login:) no GraphQL. Nota: --owner <login> pode retornar unknown owner type; usar --owner "@me" quando o Project pertence ao usuário autenticado.

2. Ler estado atual (GraphQL)

  • Consultar projectV2fields (para pegar o campo Status e suas options { id name color description }) e views (para layout e agrupamento).

3. Configurar as colunas de Status (mutation updateProjectV2Field)

  • Usar singleSelectOptions com as 9 colunas do fluxo: Backlog, In Refinement, Ready to Dev, In Development, In Code Review, In Test, Ready to Deploy, Done, Cancelled.
  • Preservar o que já existe: enviar opções existentes com seus ids; opções novas sem id (o GitHub gera). Não remover/renomear opções extras (ex.: In Progress) sem autorização.
  • Comparar por nome case-insensitive antes de adicionar, para não duplicar.

4. Validar o board (GraphQL)

  • Confirmar via API layout: BOARD_LAYOUT e agrupamento por Status (views.groupByFields / views.verticalGroupByFields).
  • A configuração da view (layout/agrupamento) também deve ser feita via API — sem fallback de UI.

5. Atualizar pscode/github.yaml

  • Reler os IDs (gh project field-list <project> --owner "@me" --format json) e mapear as 9 colunas para o bloco statuses: (backlog, proposed, ready_to_dev, in_progress, review, in_test, ready_to_deploy, done, cancelled).

Detalhes de plataforma (PowerShell / Windows)

  • Gravar o payload JSON da mutation em UTF-8 sem BOM (System.Text.UTF8Encoding($false) + File.WriteAllText) e passar via gh api graphql --input <arquivo>. Com Set-Content -Encoding UTF8 o GitHub responde Problems parsing JSON.

Fora de escopo

  • Nenhum fallback de UI — se algo não for possível por API, é falha a reportar, não a contornar pela UI.
  • Não alterar o fluxo dos comandos /ps:*; a mudança é só na skill de setup do board.

Referência técnica completa (queries/mutations de exemplo): board-setup-via-github-api.md.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions