我使用谷歌云构建用于CI/CD目的,其中我需要授予特定存储库的访问权限(不能使用"所有存储库"选项(。有没有任何方法可以通过python代码提供存储库访问。如果不可能通过python实现,那么有什么替代方案可以满足这一要求。
谢谢,
拉古纳特。
当我检查GitHub支持时,他们分享了我的以下链接。
要获取存储库id--https://developer.github.com/v3/repos/#get-a存储库
要获取安装详细信息--https://developer.github.com/v3/orgs/#list-组织的安装
要将存储库添加到安装中--https://developer.github.com/v3/apps/installations/#add-存储库到安装
我使用这些链接创建了下面提到的代码,它帮助我实现了所需的需求。
# Header to use in request
header = dict()
header['Authorization'] = 'token %s' % personal_token
header['Accept'] = 'application/vnd.github.machine-man-preview+json'
# Fetching repository id
url = f'https://api.github.com/repos/{organization_name}/{repo_name}'
output = requests.get(url, headers=header)
repo_id = output.json()['id']
# Adding repository to Google Cloud build installation
url = f'https://api.github.com/user/installations/{gcb_installation_id}/repositories/{repo_id}'
output = requests.put(url, headers=header)