快速解决 Resource not accessible by integration

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

简介

最近好久没有写博客了,今天在写开源项目 python-package-template 的时候,正好遇到一个问题,记录一下吧。本文将介绍 Resource not accessible by integration 的几种解决方案。

也欢迎大家体验一下 python-package-template 这个项目,一个十分标准化的 python project 模板,内置 black 代码格式化、单元测试、github actions 等方便和强大的工具,个人认为认真学完 python-package-template 里面的东西,在工程规范上已经可以媲美一个从业几年的专业的 python 软开工程师了。

问题描述

问题是我在 github actions 执行 Greetings 的这个 workflow 的时候发生了 Resource not accessible by integration 的问题,这个 Greetings 里面用到了 actions/first-interaction , 其是一个筛选初次贡献者的拉取请求和问题的操作。

我遇到的这个问题,简单来说,就是 github actions 没有对应的权限,无法访问相关的资源,在我的项目中,Greetings 的代码需要 bot 在 pr 和 issue 中有写的权限,而这个权限 github repo 默认并不提供,需要手动修改。

在这里插入图片描述

github docs 中对 workflows 的 permissions 有详细的描述,大家可以先了解一下相关的概念。

您可以使用权限来修改授予GITHUB_TOKEN的默认权限,根据需要添加或删除访问权限,以便只允许最低所需的访问权限。有关更多信息,请参阅“自动令牌身份验证”。

您可以将权限作为顶级键使用,应用于工作流中的所有作业,或者在特定作业中使用。当您在特定作业中添加权限键时,使用GITHUB_TOKEN的所有操作和运行命令将获得您指定的访问权限。有关更多信息,请参阅jobs.<job_id>.permissions

对于下表中显示的每个可用范围,您可以分配其中一种权限:读取、写入或无。如果您为其中任何范围指定了访问权限,则所有未指定的范围将被设置为无。
在这里插入图片描述
在这里插入图片描述

上面说了那么多,简单来说就是 workflow 中使用的 GITHUB_TOKEN 是有一些默认权限的,其并不是一个 root,因此如果你的 workflow 中有一些更加复杂的操作,就需要额外进行授权。

Permissions for the GITHUB_TOKEN 中,我们可以看到 GITHUB_TOKEN 的默认权限。

在这里插入图片描述

解决方案

逛了一下 actions/first-interaction 中的 issue,还是有人有遇到相同的问题,https://github.com/actions/first-interaction/issues/10 这个 issue 激烈讨论了这个事情,所以最后我也没看出什么东西来,最后在 https://github.com/orgs/community/discussions/60820 中找到了解决方案。
在这里插入图片描述

上面这个用户虽然和我用的不是一个 action,但是问题如出一辙,解决方案如下:
在这里插入图片描述

在这里插入图片描述
给权限之后就没问题了。