Azure / Azure/apiops-cli

Improve Extract and Publish log readability

未關閉
#162 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
Enhancement P2
主要語言
TypeScript
星號
26
分支
9
平均合併
1 天 3 小時
30 天內合併 PR
20

描述

## 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 line** — `Total: 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`)

4. **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
```

5. **Add elapsed time** — No indication of how long publish took or which resources were slow. Add per-tier or total timing.

6. **Enrich the summary** — `41 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`)

7. **Round retry delay values** — `retrying after 1175.1730686888397ms` → `retrying in 1.2s`

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

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

10. **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`

貢獻指南

開啟貢獻指南

研究方向

先從 tests/integration/all-resource-types/basicv2-test.log 開始,接著比較 src/cli/extract-command.ts、src/services/publish-service.ts、src/cli/publish-command.ts 和 src/clients/apim-client.ts 中相關的輸出路徑。追蹤擷取、發佈和重試目前如何記錄其工作。完成的標準是:輸出涵蓋所提議的分組、計時、摘要和重試內容改進,且不遺漏 API。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
typescript
領域
cli
Issue 類型
功能
難度
4/5
預估耗時
3-5 天
活躍度
冷清
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。