用于管理GitHub机密的简单CLI,用于GitHub操作

githubsecrets的Python项目详细描述


吉图布秘密

testing

GithubSecrets-Website

使用简单的CLI管理您的GitHub Actions机密

GIF演示

Usage-Demo

安装

pip

Python v3.6.7及更高版本

在您的计算机上使用pip安装;该软件包在PyPi上提供

$ pip install githubsecrets

来源

Python v3.6.7及更高版本

  1. 克隆此存储库
  2. 运行githubsecrets模块(目录) ^{pr2}$ 在

Docker

展开/折叠

将本地目录装载到root,映像可在DockerHub获得

Linux和macOS

装入主目录或任何其他目录以保存凭据文件

$ docker run --rm -it -v "${HOME}/:/root" unfor19/githubsecrets secret-list -p unfor19 -r githubsecrets
... # Output below
输出
[{"base_url":"https://api.github.com/repos/unfor19/githubsecrets","body":{"secrets":[{"created_at":"2020-04-11T00:01:12Z","name":"PIP_PASSWORD","updated_at":"2020-04-11T00:17:39Z"},{"created_at":"2020-04-10T23:21:28Z","name":"PIP_USERNAME","updated_at":"2020-04-11T00:17:20Z"},{"created_at":"2020-04-27T20:44:09Z","name":"testing","updated_at":"2020-04-27T20:45:43Z"},{"created_at":"2020-04-27T20:22:37Z","name":"testrepos","updated_at":"2020-04-27T20:22:37Z"},{"created_at":"2020-04-14T14:14:44Z","name":"TEST_GITHUB_TOKEN","updated_at":"2020-04-14T14:14:44Z"}],"total_count":5},"repository":"githubsecrets","status_code":200}]

窗口

挂载临时目录或任何其他目录以保存凭证文件。确保使用/而不是{}

$ docker run --rm -it -v c:/Temp:/root unfor19/githubsecrets secret-delete -p unfor19 -r githubsecrets -s testrepos
... # Output below
输出
[{"base_url":"https://api.github.com/repos/unfor19/githubsecrets","repository":"githubsecrets","secret_name":"testrepos","status_code":204}]

入门

Note:使用Docker时,不需要添加ghs;只需提供命令及其参数

  1. 初始化此应用程序-在~/.githubsecrets/credentials处创建凭据文件

    $ ghs init
    
  2. Generate a GitHub Personal-Access-Token具有以下权限:

    • 回购(全部)
    • 在管理员:公钥>;读:公钥在
  3. 将令牌保存在安全的地方;我们将在下一步中使用它

  4. 创建一个概要文件,使用-p标志并提供一个概要文件名

    $ ghs profile-apply -p willy_wonka
    ...
    SUCCESS: Applied the profile willy_wonka
    

    系统将提示您插入:

    • Github所有者-是您的Github组织或Github帐户名(不是电子邮件地址)
    • 个人访问令牌-您在前面的步骤中创建的
  5. 创建一个GitHub机密,使用-r标志并提供存储库的名称。您可以同时对多个存储库应用相同的机密,例如:-r "githubsecrets, aws-build-badges"

    ghs secret-apply -p willy_wonka -r githubsecrets
    

    系统将提示您插入:

    • 秘密名称
    • 秘密价值
  6. 在你的GitHub Actions Workflows中使用它

    • 代码段
      steps:
       - uses: actions/checkout@v2
       - name: Set up Python
         uses: actions/setup-python@v1
         with:
           python-version: "3.6"
       - name: Install dependencies
         run: |
           ...
       - name: Build and publish
         env:
           TWINE_USERNAME: ${{ secrets.PIP_USERNAME }}
           TWINE_PASSWORD: ${{ secrets.PIP_PASSWORD }}
           ...
         run: |
           ...
      
    • 我正在使用此存储库中的机密,请查看this repository's workflows

状态代码

  • 200-成功
  • 204-成功
  • 404-未找到机密或存储库

可用命令

使用ghs --help查看所有可用命令

Usage: ghs [OPTIONS] COMMAND [ARGS]...

  All commands can run without providing options, and then you'll be
  prompted to insert values.

  Secrets' values and Personal-Access-Tokens are hidden when prompted

Options:
  -ci, --ci  Use this flag to avoid deletion confirmation prompts
  --help     Show this message and exit.

Commands:
  init            Create a credentials file to store your profiles
  profile-apply   Create or modify multiple profiles providing a string...
  profile-delete  Delete multiple profiles providing a string delimited by...
  profile-list    List all profile - truncates personal access tokens
  secret-apply    Apply to multiple repositories providing a string...
  secret-delete   Delete secrets from multiple repositories providing a...
  secret-get      Get secrets from multiple repositories providing a string...
  secret-list     List secrets of multiple repositories providing a string...

故障排除

Ubuntu和Debian

{a8可能需要在这个项目中安装一个^和}软件包

$ sudo apt-get update && sudo apt-get install -y libdbus-glib-1-dev
$ pip install secretstorage dbus-python keyring

贡献

Issues部分报告问题/问题/功能请求。在

欢迎拉请求!理想情况下,为您所做的每一个更改创建一个功能分支和问题。步骤如下:

  1. 进行回购
  2. 从master(git checkout -b my-new-feature)创建特性分支
  3. 从源安装
     $ git clone https://github.com/${GITHUB_OWNER}/githubsecrets.git &&cd githubsecrets
     ...
     $ pip install --upgrade pip
     ...
     $ python -m venv ./ENV
     $ . ./ENV/bin/activate
     ...
     $ (ENV) pip install --editable .
     ...
     # Done! Now when you run 'ghs' it will get automatically updated when you modify the code
  4. 添加新功能的代码
  5. 测试-生成用于测试的个人访问令牌
    $ (ENV) bash test_functionality.sh -p PROFILE_NAME -o GITHUB_OWNER -t TEST_GITHUB_TOKEN -r GITHUB_REPOSITORY
    ... # All good? Move on to the next step
  6. 做出显著的改变(git commit -am 'Added new feature'
  7. 推到分支(git push --set-up-stream origin my-new-feature
  8. 创建新的请求请求并告诉我们您的更改

作者

Meir Gabay创建和维护

facebook.com/KerenOrDesign设计

许可证

这个项目是在麻省理工学院许可下授权的-有关详细信息,请参阅LICENSE文件

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java同时读取输入流   安卓中的java短信监听   java你能帮我弄清楚如何在我的测验程序中组织数据吗?   列表中的java对   Java中的异常重复   通过SSH | Netbeans进行java远程调试   JAVAutil。扫描程序Java扫描程序在循环后读取整数失败?   用于温度转换器的构造函数java基本访问器方法   java如何将地图封装到自定义对象中   java更改布局不透明度,Progressbar除外   在REST中将java对象转换为XML时出错   java Spring引导IllegalArgumentException:找不到类[org.hibernate.cfg.ImprovedNamingStrategy]]   java Spring REST API,响应中的自定义实体字段   java数据库将null返回给布尔变量   mysql如何在java中将“'”转换为“`”