Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

apiops init: generate a Copilot prompt file to audit artifacts against APIM best practices

未关闭
#202 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
55/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
冷清
技术栈
azure, typescript

调研方向

从 src/templates/copilot/identity-setup-prompt.ts 和 src/services/init-service.ts 开始,按照现有的 prompt 生成模式进行了解。然后检查 src/commands/init-command.ts,查看后续步骤的输出以及 generatedFiles.configs 的处理方式。当 apiops init 能够在 identity prompt 旁生成新的 prompt,并且聚焦的 artifact audit 从查找 policy.xml 中硬编码的 secrets 开始并提供修复方案时,即表示完成。

由索引模型根据 Issue 内容生成。

描述

Feature P2

Problem or use case

After apiops extract, users have no guided way to check their extracted APIM artifacts against APIM best practices. The audit should look for anti-patterns (e.g. named values holding secrets that aren''t marked secret) that otherwise go unnoticed. We want a low-friction, Copilot-assisted audit that also offers to fix the issues it finds.

Proposed solution

Have apiops init generate an additional Copilot prompt file — e.g. .github/prompts/apiops-check-best-practices.prompt.md — following the same generation pattern as the existing identity-setup prompt (src/templates/copilot/identity-setup-prompt.ts, written in src/services/init-service.ts). When opened with GitHub Copilot, the prompt guides the user through auditing the artifacts in the repo against a focused set of APIM best practices.

Scope — only things apiops-cli tracks

Keep the checks centered on apiops-managed artifacts (policies, named values, backends, diagnostics/loggers, subscriptions, products). Explicitly out of scope: infra/SKU/networking/scale guidance from the WAF doc that doesn''t map to apiops artifacts.

Checks (initial set)
  1. Hardcoded secrets in policy.xml (headline check) — detect literal secrets in policy XML (set-header auth/keys, set-query-parameter code/sig, authentication-basic password, validate-jwt keys, connection-string fragments).
  2. Named values holding secrets that aren''t marked secret: true or aren''t Key Vault–backed → flag and offer to mark/migrate.
  3. Backend URLs / keys inlined in policies instead of using named values/backends → suggest parameterizing.

(Start with check #1; #2–#3 can follow.)

Reference

APIM best-practice guidance: https://learn.microsoft.com/en-us/azure/well-architected/service-guides/azure-api-management — used as a source, but the prompt should distill only the artifact-level items above rather than the full large-deployment guidance.

Affected command

apiops init (generates the prompt file); the prompt itself assists with apiops extract output.

Implementation notes

  • New template under src/templates/copilot/ (e.g. best-practices-prompt.ts) + embedded markdown, mirroring identity-setup-prompt.ts.
  • Write the file in init-service.ts alongside the identity prompt (conflict-check + add to generatedFiles.configs), and mention it in the init-command.ts next-steps output.
  • Relates to #198 (the CLI-side redact-and-warn for the same class of issue; this prompt is the interactive remediation counterpart).
主要语言
TypeScript
星标
29
派生
10
平均合并
1 天 13 小时
30 天内合并 PR
23

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Azure/apiops-cli 的其他 Issue

查看 Azure/apiops-cli 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。