我想创建一个GitHub Actions工作流,该工作流定期检查存储库的部署密钥的使用期限该怎么做?

问题描述

我有一个包含部署密钥的存储库。我想要一个工作流作业,该作业会定期检查是否有任何部署密钥在达到必需的最大使用期限之前必须进行旋转。我尝试使用GITHUB_TOKEN编写这样的工作流,但是它似乎没有必要的特权。我的存储库属于GitHub组织。

name: Check age of repository deploy key

# This workflow is triggered on pushes to the repository.
on:
  push:
  schedule:
    # Runs 06:00 every day
    - cron:  '0 6 */1 * *'

jobs:
  expiry_check:
    env:
      DEPLOY_KEY_MetaDATA_URL: https://api.github.com/repos/my_org/my_repo/keys
      DEPLOY_KEY_MAX_AGE: 3600*24*365   # 1 year
      

      # This job runs on Linux
    runs-on: ubuntu-latest

    steps:
      # GitHub repository checkout
      - name: GitHub repository checkout
        uses: actions/checkout@v1


      - name: Check if any deploy keys are approaching their expiry data
        run: |
          python3 -c "import requests;import sys;url=sys.argv[1];token=sys.argv[2];r=requests.get(url,headers={'Authorization': f'Bearer {token}'});print(r.text)" $DEPLOY_KEY_MetaDATA_URL ${{ secrets.GITHUB_TOKEN }}

对我的API请求的响应出现以下错误{"message":"Resource not accessible by integration","documentation_url":"https://docs.github.com/rest/reference/repos#list-deploy-keys"}

除了个人访问令牌和GitHub Apps之外,还有其他解决方案吗?第一种选择不可行。当员工离开GitHub Organization时,业务逻辑不会中断。我想我可以制作一个GitHub App,但如果可以的话,我也希望避免这样做。我不是GitHub组织的管理员

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)