访问 GitHub 秘钥

时间:2021-01-28 06:48:50

标签: github secret-key

我不知道如何处理密钥。

我在 GitHub 上发布了一个带有密钥的存储库(我现在知道了,大不行),然后在设置中发现了 GitHub 密钥并将密钥存储在那里。

那么,两个问题:

  • 清除提交历史以便密钥不再可用的最佳方法是什么?
  • 我实际上如何访问此密钥?在我的 settings.py 中,我现在有 use vCard::AddressBook; my $address_book = vCard::AddressBook->new(); my $vcard = $address_book->add_vcard; $vcard->given_names(['John']); $vcard->family_names(['Doe']); $vcard->categories(['Cat_01']); ## DOES NOT WORK my $file = $address_book->as_file('file.vcf'); ,但会抛出 Can't locate object method "categories" via package "vCard" at tmp2.pl line 6.

感谢任何帮助,谢谢。

更新

好的,所以根据@VonC 提供的链接,我需要在 SECRET_KEY = 'name_of_key_on_github' 目录中创建一个 .yml 文件。

general.yml

NameError: not defined

settings.py

.github/workflows

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

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 }}

我可以运行 SECRET_KEY = "../.github/general.yml",但在推送到远程时出现以下错误:

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

更新 2

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

您需要确保选中复选框。

workflow box needs to be checked

1 个答案:

答案 0 :(得分:1)

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

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

<块引用>

要保留除这些路径之外的所有文件,只需添加 --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 中的 Paul Smits

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