如果你在使用 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)

如果问题仍未解决,可以提供更多上下文,我会尽力帮你进一步排查!
搜索越来越智能了,直接给出了答案。
Bing给的答案