调用GitHub仓库Action时触发AttributeError问题求助
问题解决:AttributeError: 'Repository' object has no attribute 'get_actions'
错误原因
你使用的PyGithub库中,Repository对象并没有get_actions()这个方法,这是导致报错的直接原因。
解决方案
- 替换错误方法:要获取仓库的GitHub Actions权限配置,使用PyGithub提供的
get_actions_permissions()方法,该方法会返回包含权限信息的ActionsPermissions对象。 - 更新PyGithub版本:确保你安装的是最新版PyGithub,旧版本可能缺少相关API支持,执行命令更新:
pip install --upgrade pygithub - 推荐使用个人访问令牌认证:GitHub已逐步限制密码认证,建议使用带有
repo权限的个人访问令牌(PAT)替代密码登录。
修正后的完整代码
from github import Github # 用个人访问令牌认证(推荐) g = Github("your_personal_access_token") # 获取仓库 repo = g.get_repo('toughjay318/los-lobos') # 检查GitHub Actions权限配置 actions_perms = repo.get_actions_permissions() if not actions_perms.enabled: print('仓库未启用GitHub Actions') else: print('GitHub Actions已启用') print(f'允许的Actions类型: {actions_perms.allowed_actions}') # 检查已配置的工作流(流水线) pipelines = repo.get_workflows() if not pipelines.totalCount: print('未配置任何提交流水线') else: print(f'已配置 {pipelines.totalCount} 条提交流水线') # 检查分支保护规则(针对main分支) try: branch_protection = repo.get_branch_protection('main') if not branch_protection.restrictions: print('main分支未配置提交相关的Actions限制规则') else: print('main分支已配置提交相关的Actions限制规则') except github.GithubException: print('main分支未设置分支保护规则')
补充说明
get_actions_permissions()返回的对象主要属性:enabled: 布尔值,标识仓库是否启用Actionsallowed_actions: 可选值"all"、"local_only"、"selected",表示允许使用的Actions范围
- 分支保护部分增加了异常捕获,避免分支未设置保护规则时抛出错误。
内容的提问来源于stack exchange,提问作者Jayy Griff
相关产品推荐
相关产品推荐

