如何用 check_urls 提交信息触发 free-programming-books 的 awesome_bot 链接校验并查看报告? 如何用 check_urls 提交信息触发 free-programming-books 的 awesome_bot 链接校验并查看报告【免费下载链接】free-programming-books:books: Freely available programming books项目地址: https://gitcode.com/GitHub_Trending/fr/free-programming-booksfree-programming-books 用 GitHub Actions 对列表文件里的链接做可用性校验校验工具是 awesome_bot。作为贡献者你在 PR 里新增或修改链接后需要在合并前确认这些链接全部可达。docs/CONTRIBUTING.md 的 Automation 一节说明推送一条提交信息中包含check_urlsfile_to_check的提交即可触发 URL 校验推送之后.github/workflows/check-urls.yml 会对变更文件逐个运行 awesome_bot产出ab-results-*.json结果文件并由 reporter 作业把 Markdown 报告写入 GitHub Actions 的 job summary。本文按“写提交信息 → 触发校验 → 查看报告”的顺序走一遍。前提条件按 docs/CONTRIBUTING.md 的说明会 Git 的贡献者应 Fork 仓库并通过 Pull Request 提交列表修改check_urls流程就是挂在这种 PR/推送上运行的。本地不需要预装 awesome_bot工作流在 runner 上自行完成 Ruby 2.6 环境安装ruby/setup-rubyv1ruby-version: 2.6并执行gem install awesome_bot你只负责提交带特定信息的 commit。写包含 check_urls 的提交信息CONTRIBUTING.md 给出的触发方式是push 一个提交信息中包含check_urlsfile_to_check的提交。文档中的示例是check_urlsfree-programming-books.md free-programming-books-en.md规则如下file_to_check换成你要校验的文件的实际路径一次可以指定多个文件各文件之间用单个空格分隔报告生成动作awesomebot-gh-summary-action的separator输入默认值也是 两边保持一致。文档没有直接给出 git 命令只要求提交信息包含上述内容。下面是一种产生这种提交的示例写法消息体即文档示例git commit -m check_urlsfree-programming-books-en.md git push如果你修改的是目录下的列表文件把路径写成仓库内相对路径即可例如books/free-programming-books-en.md。推送后工作流做了什么对照 .github/workflows/check-urls.yml流程分三段get-changed-files 作业以fetch-depth: 0检出代码用tj-actions/changed-filesv46收集本次变更的文件列表输出files空格分隔、files-len和逐文件 matrix。check-urls 作业对每个变更文件跑一个 matrix 实例max-parallel: 10、fail-fast: false。只有以.md或.yml结尾的文件才会检出代码、安装 Ruby 和 awesome_bot然后执行工作流中的原始命令awesome_bot ${{ matrix.file }} --allow-redirect --allow-dupe --allow-ssl || true${{ matrix.file }}是 GitHub Actions 表达式运行时替换为正在校验的那个变更文件路径--allow-redirect --allow-dupe --allow-ssl是工作流固定带的参数行尾的|| true保证即使发现坏链接这一步也不会把作业标记为失败。结果上传每个文件跑完后actions/upload-artifactv7把ab-results-*.json上传为 artifact。artifact 名是文件路径把所有/替换成-之后的结果README.md会被特殊改名为BASE_README.md工作流注释说明这是为了绕开actions/download-artifact的一个 bug。紧接着reporter 作业显示名 “GitHub report”下载全部 artifact调用本地 composite action .github/actions/awesomebot-gh-summary-action输入为ab-root: ${{ github.workspace }}、files:变更文件列表、separator: 、append-heading: true。该 action 逐个读取ab-results-文件名斜杠换横杠-markdown-table.json拼出报告文本后追加写入GITHUB_STEP_SUMMARY。查看校验报告报告有三个查看位置CONTRIBUTING.md 对工作流文件都作了说明GitHub Actions 的 job summary。打开 check-urls 运行的 reporter 作业summary 区开头是报告标题### Report of Checked URLs!随后每个文件一行无问题 File: \文件后跟 ✅ **No issues**action.yml 中的原文是File与No issues有问题 File: \文件 后跟 ⚠️ 加 issue 标题issue 数量在标题中被加粗并附上结果文件里的 message 详情。这些是 action 按 action.yml 中模板生成的格式具体文件行内容以你的实际运行为准。构建日志。CONTRIBUTING.md 特别提醒一次指定多个文件时构建结果以最后一个被检查的文件为准可能因此出现“假绿”的通过状态。文档明确要求你在 PR 末尾点击 “Show all checks” → “Details” 检查构建日志逐文件确认结果。artifact。每个文件的ab-results-*.json原始结果都可以从运行页面下载用于核对 awesome_bot 的完整输出。如果某个文件的-markdown-table.json缺失或无法解析action 会输出::error注解并跳过该文件不会中断整个报告生成。可选在本地先跑同一条命令工作流里的校验命令可以照搬到本地预先执行。需要本地有 Ruby 环境命令为gem install awesome_bot awesome_bot books/free-programming-books-en.md --allow-redirect --allow-dupe --allow-ssl工作流中的|| true只用于让 Actions 步骤不因坏链接而失败本地执行时可以去掉直接观察命令输出与退出状态文件名换成你要校验的仓库内文件。限制与两个文件之间的不一致工作流只对变更的.md和.yml文件做校验各步骤的if条件其他类型的文件会被跳过。--allow-redirect --allow-dupe --allow-ssl意味着重定向、重复链接和 SSL 类问题会被放行报告里不出现这些类别的失败。一处需要注意的文档差异CONTRIBUTING.md 把触发方式描述为“提交信息包含check_urls...”但 check-urls.yml 的触发条件是任意push或pull_request事件正文中没有解析提交信息的逻辑实际校验范围由tj-actions/changed-files给出的变更文件列表决定。也就是说即使提交信息里没写check_urls工作流仍会对本次变更的.md/.yml文件跑校验反过来按文档写法带上check_urls提交信息时触发同样成立。两处描述以各自文件为准。完成判断校验是否通过以报告为准而不是构建的绿色状态reporter 的 summary 中你提交的每个文件都应显示 “No issues”出现 ⚠️ 的文件其 issue 数量与详情直接列在 summary 中也可以下载对应的ab-results-*.json查看原始结果。由于多文件时构建结果只取决于最后一个文件合并前务必按 “Show all checks” → “Details” 逐文件过一遍日志。【免费下载链接】free-programming-books:books: Freely available programming books项目地址: https://gitcode.com/GitHub_Trending/fr/free-programming-books创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考