【问题标题】:A badge in GitHub template repository that will refer to clones' build status, not the template repo's build statusGitHub 模板存储库中的徽章,将引用克隆的构建状态,而不是模板存储库的构建状态
【发布时间】:2022-01-31 09:49:45
【问题描述】:

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

![](https://github.com/myorg/labX/workflows/task1/badge.svg)

将包括徽章,但这是模板存储库的状态,而不是学生存储库的状态。有没有办法自动化这个,当学生得到他们的克隆时,它会包含一个自述文件,其中包含引用他们自己的 repo 状态的 URL?

【问题讨论】:

    标签: github-actions


    【解决方案1】:

    原来有一个简单的解决方案,但仅适用于 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)
    

    在此 repo 中获取操作状态的徽章。这样,每个学生都会获得一个徽章,该徽章指的是他自己的 repo,而不是模板 repo。

    但是,仍在寻找一种相对于 repo 使用外部徽章服务(如 shields.io)的方法。

    【讨论】:

    • 也许自从你写这篇文章以来 GitHub 已经调整了他们的存储库布局,但我不得不以![](../../actions/workflows/&lt;workflowname&gt;/badge.svg 的形式进行调整(在workflows 之前添加一个actions 子目录)。
    【解决方案2】:

    我同意这将是一个很棒的功能。

    目前看来,GitHub 模板存储库不支持变量替换,而这正是使其成为可能的原因。

    我看到这里有简短的讨论:
    Variable substitution for GitHub Template Repository Usage

    也许你应该加入讨论和/或投你的 Kudo。

    【讨论】:

    • 是的,与任何模板解决方案一样,替换是模板真正有用的原因!留下一个荣誉,但可能会更好地打开一个问题或其他东西。虽然不太可能在 repo 中到处都有替换,但我想将它添加到 README 中应该很容易。
    猜你喜欢
    • 1970-01-01
    • 2012-12-25
    • 2021-06-19
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2019-02-23
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多