我有一个包含部署密钥的存储库。我想要一个工作流作业,它定期检查是否有任何部署密钥在必须轮换之前达到其最大允许年龄。我尝试使用 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 应用程序之外,还有其他解决方案吗?第一种选择不可行;当员工离开 GitHub 组织时,业务逻辑不会中断。我想我可以制作一个 GitHub 应用程序,但如果可以的话,我也宁愿避免这样做。我不是我的 GitHub 组织的管理员。