访问 GitHub 密钥

Access GitHub Secret Key

我不知道如何处理密钥。

我已经在 GitHub 上发布了一个带有密钥的回购协议(我现在知道了,大不不),然后在设置中找到了 GitHub 密钥并存储了密钥那里。

那么,两个问题:

感谢任何帮助,谢谢。

更新

好的,所以根据@VonC提供的link,我需要在.github/workflows目录下创建一个.yml文件

general.yml

name: key #needed but name can be arbitrary

on: [push, pull_request, deployment]

env:
    runs-on: ubuntu-latest
      - uses: actions/labeler@v2
        with:
          repo-token: ${{ secrets.name_of_my_key }}
      credentials: #these don't work yet, if anyone can tell me why?
        username: ${{ github.actor }}
        password: ${{ secrets.ghcr_token }}

settings.py

SECRET_KEY = "../.github/general.yml"

项目结构如果你想/需要复现:

myrepo
├── app_name
│   ├── settings.py
├── .github
│   ├── workflows
│   │   ├── general.yml

我可以 运行 python manage.py runserver,但是在推送到远程时出现以下错误:

! [remote rejected] master -> master (refusing to allow a Personal Access Token to create or update workflow `.github/workflows/general.yml` without `workflow` scope)

更新 2

没有启用工作流范围(github.com > 配置文件 > 设置 > 开发人员设置 > 个人访问令牌):

您需要确保复选框已选中。

使用 new git filter-repo, which does replace the old git filter-branch or BFG.

它有 many usage examples,包括基于内容的过滤,以便您在过去的提交中远程访问 path/to/secret 文件:

To keep all files except these paths, just add --invert-paths:

git filter-repo --path path/to/secret --invert-paths

您可以添加 --dry-run 以在实际更改存储库之前对其进行测试。

然后 git push --force(这确实会重写您存储库的历史记录,因此请务必通知任何其他协作者)

因为必须在新的克隆上完成:

  1. 不要对您当前的克隆文件夹进行任何操作
  2. 创建存储库的单独克隆,在其中执行过滤器存储库
  3. 在第二个克隆中,现在已清理(历史上不再有大文件),从您的第一个存储库导入您的工作

即对于第3点:

cd /path/to/second/clone
git --work-tree=/path/to/first/original/clone add .
git commit -m "Import work from first clone"
git push --force

关于 git gilter-repo,请参阅“Removing sensitive files from git from Boopathi Rajaa.

中的完整示例

您可以存储加密密钥,但可用于 GitHub Actions only

在 GitHub 操作之外,请参阅 Github, secret keys and other local settings from Paul Smits

为此,您需要一个凭证 (PAT) with workflow scope