在我的GitHub操作中,我想在尝试使用秘密之前测试其是否存在,以便向用户提供更详细的错误消息。我目前的策略是在操作开始时添加以下步骤:
- name: check if MY_SECRET exists
run: if [ `echo ${{secrets.MY_SECRET}} | wc -c` -lt 2 ]; then echo the secret \"MY_SECRET\" has not been made; echo please go to \"settings \> secrets \> actions\" to create it; exit 1; fi
这种错误处理方式比没有任何错误处理要好一些,因为它会停止操作并给用户提供一些有用的建议。但是我想知道是否有更好的解决方案。特别是,GitHub是否推荐如何处理这种情况?例如,是否可以调用市场上的其他操作?(我已经检查了市场,但找不到任何可行的解决方案,但可能我错过了什么。)
在我看来,这似乎是一个我可能经常需要重用的功能,因此假设没有市场或内置的解决方案,我打算制作自己的操作,以便我可以调用来完成这项工作。我注意到市场上的许多操作都是使用 Node 实现的。这是否被认为比 Bash 更可取?是否有任何理由不应该在 Bash 中实现这个功能?
最后,由于我正在处理机密信息,请考虑安全性。请在提出任何解决方案时牢记这一点。同时,请对我的当前解决方案进行安全性评估。
if env
条件的消息。 - VonCenv.super_secret
。此外,你建议将这段代码重构为可以调用的动作,还是保持原样? - Mathewenv.MY_SECRET
时它没有正确工作,但是当我使用env.super_secret
像我建议的那样时它可以工作。对我来说这很有道理,因为super_secret
在env
中,而MY_SECRET
在secrets
中。不过也许我犯了一个错误。无论如何,非常感谢你的时间,我非常感激。 - Mathew