虽然可重用的 GitHub 工作流程确实有助于维护 GitHub Actions,减少从一个存储库到另一个存储库的大量复制/粘贴,但它们似乎仍然存在一个大问题:处理机密。
当实现“发布到 Slack”或“发布到矩阵/IRC”之类的操作时,您将需要机器人帐户的一些机密,如果您想在 50 个存储库中重用此操作,您可以想象在管理每个存储库中的机密时无法扩展。
我正在寻找解决此问题的方法,该解决方案不涉及使用操作将秘密部署到所有存储库,或者以某种方式集中它们。
请记住,可重用的工作流程可以跨组织工作,并且我已经在 4 个以上的组织之间共享了其中一些工作流程。因此,配置组织级别的机密也不是解决方案,还有其他原因:它们很容易暴露,因为它们可用于任何工作流程(而不是基于环境的工作流程)。
Von*_*onC 14
检查新的(2022 年 5 月)关键字secrets: inherit是否有帮助:
GitHub Actions:通过可重用工作流程简化机密的使用
GitHub Actions 通过带有
secrets: inherit关键字的可重用工作流程简化了机密的使用。以前,将机密传递给可重用工作流程时,您必须将每个机密作为单独的参数传递。
现在,您可以简单地将 传递
secrets: inherit给可重用工作流程,并且秘密将从调用工作流程继承。
了解有关GitHub Actions和jobs.<job_id>.steps[*].uses.
在可重用工作流程中,引用您在上一步中的 on 键中定义的输入或密钥。
如果使用 继承机密
secrets: inherit,则即使它们未在 on 键中定义,您也可以引用它们。Run Code Online (Sandbox Code Playgroud)jobs: reusable_workflow_job: runs-on: ubuntu-latest environment: production steps: - uses: ./.github/workflows/my-action with: username: ${{ inputs.username }} token: ${{ secrets.envPAT }}在上面的示例中,
envPAT是已添加到生产环境中的环境机密。因此,该环境在作业中被引用。注意:环境机密是存储在您为存储库定义的环境中的加密字符串。
环境机密仅适用于引用适当环境的工作流作业。
有关详细信息,请参阅“使用环境进行部署” 。
再次,请参阅jobs.<job_id>.steps[*].uses参考资料 中的其他示例。
正如wkhaatch在评论中指出的那样:
我不认为此语法对于使用可重用工作流程是正确的,但对于使用可重用操作是正确的。
您不能将可重用工作流作为步骤来调用,但可以通过操作来调用。
| 归档时间: |
|
| 查看次数: |
19839 次 |
| 最近记录: |