Python用os.environ.get 无法获取 GitHub Actions 的 secrets
如果你在使用 os.environ.get 无法获取 GitHub Actions 的 secrets,可能是以下原因之一导致的:
1. Secrets 未正确配置
确保你已经在 GitHub 仓库的 Settings > Secrets and variables > Actions 中正确添加了所需的 secrets。
确保你在工作流文件(.yml)中正确引用了这些 secrets,例如:
env:
MY_SECRET: ${{ secrets.MY_SECRET }}2. 环境变量未传递到脚本
如果你在脚本中使用 os.environ.get,需要确保工作流中将 secrets 映射为环境变量。例如:
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Run script
env:
MY_SECRET: ${{ secrets.MY_SECRET }}
run: python script.py在脚本中,你可以通过以下方式获取:
import os
my_secret = os.environ.get("MY_SECRET")
print(my_secret)3. Secrets 名称拼写错误
检查 secrets 的名称是否拼写正确,名称区分大小写。例如,MY_SECRET 和 my_secret 是不同的。
4. 权限问题
如果你在 Fork 仓库中运行工作流,默认情况下 secrets 不会传递到 Fork 仓库的 Actions 中。需要在工作流触发时手动启用 secrets。
5. Secrets 不会暴露给 PR
如果工作流是由外部 Pull Request 触发的,GitHub 出于安全考虑不会将 secrets 暴露给工作流。
解决方法
调试环境变量:在工作流中打印所有环境变量,检查是否正确传递:
复制代码
- name: Debug environment variables
run: env确保正确使用 os.environ.get:如果环境变量未设置,os.environ.get 会返回 None,可以添加默认值以便调试:
复制代码
my_secret = os.environ.get("MY_SECRET", "default_value")
print(my_secret)如果问题仍未解决,可以提供更多上下文,我会尽力帮你进一步排查!
搜索越来越智能了,直接给出了答案。