powershell - 如何将 GitHub secret 作为参数传递给 powershell 脚本

标签 powershell github github-actions

尝试将 GitHub secret 作为参数传递给 powershell 脚本,但在执行工作流程时获取 *** 并且失败:

- name: Connecting to shared drive
  env:
    username: ${{secrets.TEST_USERNAME }}
    password: ${{secrets.TEST_PASSWORD }}
  run: ${{ github.workspace }}\Connect-Drive.ps1 ${{ env.username }} ${{ env.password }}

执行时出现此错误:

The term '***' is not recognized as a name of a cmdlet, function, script file, or executable

最佳答案

关于那些星号*** ,根据Accessing your secrets :

Warning: GitHub automatically redacts secrets printed to the log ...

因此,这些 secret 会自动在日志中进行编辑。

使用 env 将 secret 设置为环境变量后,您可以直接使用 $Env:<variable> syntax而不是使用${{ env.variable }} :

- name: Connecting to shared drive
  env:
    username: ${{ secrets.TEST_USERNAME }}
    password: ${{ secrets.TEST_PASSWORD }}
  run: |
    "$Env:GITHUB_WORKSPACE\Connect-Drive.ps1" "$Env:username" "$Env:password"

需要double quotes左右$Env:<variable>可扩展。

请参阅Default environment variables对于 GITHUB_WORKSPACE .

如果您确实使用 env context ,请确保使用引号。在这种情况下,最好使用单引号,因为这些值可能包含可由 shell 扩展的文字。请参阅Quoting Rules for Powershell 7.2了解更多详细信息,GHA 托管的 Windows 运行者有 Powershell 7.2.10 preinstalled .

关于powershell - 如何将 GitHub secret 作为参数传递给 powershell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76008500/

相关文章:

powershell - 为什么远程 PowerShell session 的 TFS 身份验证失败?

powershell - 将文本添加到列表输出

xml - powershell xml 排序节点和 replacechild

git - 为什么我在 github 上的一个 ssh key 变成灰色(它是绿色的)并且不再起作用了?

r - 如何通过 GitHub Actions 向 CRAN 提交 R 包?

json - 使用 Powershell 从 JSON 获取值

github - Heroku Review 应用程序根本没有部署

node.js - 如何使用多个嵌套的私有(private) Node 模块?

github 操作失败? tar 空存档,docker run 失败,退出代码为 1

github - 如何显示当前运行分支的 GitHub 操作徽章?