Improve Extract and Publish log readability

Aberta
#162 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
45/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
typescript
Domínio
cli

Direção de pesquisa

Comece por tests/integration/all-resource-types/basicv2-test.log e, em seguida, compare os caminhos de saída relevantes em src/cli/extract-command.ts, src/services/publish-service.ts, src/cli/publish-command.ts e src/clients/apim-client.ts. Rastreie como a extração, a publicação e as tentativas de retry registram seu trabalho atualmente. Considera-se concluído quando a saída abranger as melhorias propostas de agrupamento, temporização, resumo e contexto de retry, sem omitir APIs.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Enhancement P2

Summary

Feedback on the integration test logs (tests/integration/all-resource-types/basicv2-test.log) identified several readability and usability improvements for the Extract and Publish command output.

Proposed Improvements

Extract Command (src/cli/extract-command.ts)
  1. Group resources by dependency tier — The "Extracted N Type(s)" lines are a flat list with no visual hierarchy. Group by tier or add blank lines between categories.

  2. List all APIs in the detail section — Currently only APIs with specs/operations are shown (7 of 12). APIs like src-graphql-synthetic and src-a2a-weather-agent are silently omitted. List all APIs even if minimal.

  3. Add elapsed time to the Total lineTotal: 96 resources extracted, 0 errors should include duration (e.g., in 12.3s).

Publish Command (src/services/publish-service.ts, src/cli/publish-command.ts)
  1. Add tier/phase headers — All PUTs are a single flat stream. Since publish executes in dependency tiers, add headers:

    ── Tier 1: Independent resources (16) ──
    PUT namedvalue/src-nv-plain
    ...
    ── Tier 2: Resources with dependencies (2) ──
    PUT backend/src-backend-pool
    
  2. Add elapsed time — No indication of how long publish took or which resources were slow. Add per-tier or total timing.

  3. Enrich the summary41 creates/updates, 0 deletes, 1 skipped could also show total elapsed time and retry count (e.g., "6 retries across 2 resources").

Retry Logging (src/clients/apim-client.ts)
  1. Round retry delay valuesretrying after 1175.1730686888397msretrying in 1.2s

  2. Include resource context in retry warnings — Currently no indication of which resource triggered the retry.

  3. Include attempt number — e.g., (attempt 2/5) so readers know retry progress.

  4. Reduce retry noise in output — Retries interleave with PUT lines and break the flow. Consider grouping retries under their resource or suppressing intermediate retries (show only final outcome with retry count).

Files to Modify

  • src/cli/extract-command.ts — items 1–3
  • src/services/publish-service.ts — items 4–6
  • src/cli/publish-command.ts — items 5–6
  • src/clients/apim-client.ts — items 7–10

Related

Based on review of tests/integration/all-resource-types/basicv2-test.log

Linguagem predominante
TypeScript
Estrelas
29
Forks
10
Merge médio
1d 14h
PRs com merge (30d)
22

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de Azure/apiops-cli

Todas as issues de Azure/apiops-cli

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.