GitHub 模板存储库中的徽章将引用克隆的构建状态,而不是模板存储库的构建状态

Ale*_*lov 4 github-actions

我是 GitHub 模板存储库的新手。我们为课程的代码实验室创建了一个模板存储库。假设它位于 GitHub 下的myorg/labX. 学生们正在使用 GitHub Classroom,它为每个学生克隆了模板存储库myorg/labX-studentlogin。我们已经采取行动,使用 GitHub 自己的 CI 对他们的代码运行一些测试,我想在存储库的 README.md 中包含徽章,以便一目了然地查看测试结果。所以我知道

![](https://github.com/myorg/labX/workflows/task1/badge.svg)
Run Code Online (Sandbox Code Playgroud)

将包含徽章,但这是模板存储库的状态,而不是学生存储库的状态。有没有一种方法可以自动执行此操作,以便当学生获得克隆时,它将包含一个自述文件,其中的 URL 引用了他们自己的存储库的状态?

Ale*_*lov 6

事实证明有一个简单的解决方案,但仅适用于 GitHub 自己的 Actions 状态徽章。我们已将 README.mds 中的图像 URL 更改为相对的。唯一的小事情是 GitHub/blob/<branch>/在呈现自述文件时会插入相关链接。例如,workflows/task1/badge.svg将变为https://github.com/myorg/labX/blob/master/workflows/task1/badge.svg),它将不会渲染。所以我们必须预先'../../'愚弄它。

TLDR:在 repo 的 README.md 中,使用

![](../../workflows/<workflowname>/badge.svg)
Run Code Online (Sandbox Code Playgroud)

获取此存储库中操作状态的徽章。这样,每个学生都会获得一个引用他自己的存储库的徽章,而不是模板存储库。

然而,仍在寻找一种以相对于存储库的方式使用外部徽章服务(如shields.io)的方法。

  • 自从你写这篇文章以来,也许 GitHub 已经调整了他们的存储库布局,但我必须将其作为 `![](../../actions/workflows/&lt;workflowname&gt;/badge.svg` (在之前添加一个 `actions` 子目录)到“工作流程”)。 (7认同)