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

[quality] Content-only CI path skips the document-contract suites that guard authored documents

已关闭
#2,002 4 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

已经有一个关联 PR 被合并了。

  • #2010 来自 @mrbobbytables —— 已合并

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
停滞
技术栈
github-actions, javascript
领域
ci-cd, testing

调研方向

Read .github/workflows/ci.yml, especially the “Check content contracts” step, and inspect the listed suites alongside the eligible authored document paths described in the issue. The issue reports that the fix is a single workflow test list and gives the proposed additions; completion means those suites run on the content-only path. An open linked pull request (#2010) already covers the issue.

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

描述

agent/quality stage/010-actionable testing

Finding

ADR 0011 keeps "the applicable document-contract checks" on the focused path.
The implementation keeps three: tests/docs-contract.test.mjs,
tests/markdown-references.test.mjs and
tests/community-group-coverage.test.mjs
(.github/workflows/ci.yml, step "Check content contracts"). Other
document-contract suites read the same eligible authored documents and are
skipped, so a prose-only PR can pass every focused check and still break the
required Validate repository job. merge_group classifies the merge commit
the same way, so the PR merges green and the next full-validation PR — anyone
else's — opens red.

Two instances verified at c686990 on a clean npm ci tree:

  1. Unindexed ADR. Adding adr/0012-example-decision.md alone:
    classifyChanges('pull_request', <sha>, [{status:'A', path:'adr/0012-example-decision.md'}])
    returns {"documentOnly":true,...}; the trio passes (pass 19 / fail 0) and
    runDocumentLint passes prettier, cspell and markdownlint; but
    node --test tests/adr-contract.test.mjs fails
    "every number-prefixed ADR file is listed in the index". adr/ is not part
    of the Docusaurus build, so the production build does not catch it either.
  2. Broken relative link in a root document. Appending
    [missing page](docs/nope-not-here.md) to README.md:
    tests/markdown-references.test.mjs reports fail 0,
    tests/root-docs-links.test.mjs reports fail 1. A broken link in
    README.md is also visible to anyone reading the repository on GitHub.

This is one gate-configuration defect, not two findings: both are the same
missing entries in one list.

Recommendation

Extend the node --test list in the "Check content contracts" step with the
document-contract suites whose inputs are classifier-eligible documents
(adr/**, blog/**, docs/** except the data-backed and architecture-generated
pages, and the ROOT_DOCUMENTS set). Suites that only read ineligible inputs
(tests/events-page.test.mjs — docs/events/index.md is data-backed;
tests/mdx-active-content.test.mjs — docs/architectures/_security-regression.md
is not eligible) are deliberately left out.

Replace, in .github/workflows/ci.yml:

      - name: Check content contracts
        if: ${{ !cancelled() && env.CONTENT_ONLY == 'true' }}
        run: >-
          node --test tests/docs-contract.test.mjs
          tests/markdown-references.test.mjs
          tests/community-group-coverage.test.mjs

with:

      - name: Check content contracts
        if: ${{ !cancelled() && env.CONTENT_ONLY == 'true' }}
        run: >-
          node --test tests/docs-contract.test.mjs
          tests/markdown-references.test.mjs
          tests/community-group-coverage.test.mjs
          tests/adr-contract.test.mjs
          tests/architecture-submission-contract.test.mjs
          tests/architectures-sidebar-contract.test.mjs
          tests/blog-frontmatter.test.mjs
          tests/content-security-contract.test.mjs
          tests/contributing-e2e-setup.test.mjs
          tests/contributing-just-build-parity.test.mjs
          tests/docs-threshold-parity.test.mjs
          tests/e2e-docs-threshold-parity.test.mjs
          tests/enduser-directory-copy.test.mjs
          tests/governance-hygiene-parity.test.mjs
          tests/root-docs-links.test.mjs
          tests/skills-manifest.test.mjs

The full list runs 134 tests, fail 0, in 1.2s locally at c686990, so the
focused path stays fast. tests/content-only-ci-workflow.test.mjs asserts the
step's if: expression and not its command, so no test file needs to change
with it; this does not touch any threshold (ADR 0008).

This change needs a human or an ISSUES_PRS_MERGE agent to land. The fix is
confined to .github/workflows/ci.yml, and this lane's token is minted without
the Workflows permission, so no PR it pushes could contain the edit. Nothing
here lives outside .github/workflows/, so there is no partial PR to open.

Priority

  • Impact: high — a prose-only merge turns a required check red for every other
    contributor until someone bisects it.
  • Effort: low — one list in one workflow step.

Filed by quality agent (hold-gated mode)


🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5n31 | SHA: c686990

— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88

主要语言
JavaScript
星标
0
派生
3
平均合并
6 小时 49 分钟
30 天内合并 PR
563

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

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

cncf/endusers 的其他 Issue

查看 cncf/endusers 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

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