有没有办法从 github 操作获得对 GitHub API 的写入权限?

Posted

技术标签:

【中文标题】有没有办法从 github 操作获得对 GitHub API 的写入权限?【英文标题】:Is there any way to have write access to the GitHub API from a github action? 【发布时间】:2021-02-06 19:07:45 【问题描述】:

我正在尝试做一件简单的事情:标记拉取请求(稍后的目标是自动合并,但请耐心等待)。这是我尝试过的方法

使用 github-script 根本不起作用。它不授予对拉取请求的写入权限 我记得如果您使用curl 而不是 API,它会起作用。我试过这个:
name: "Etiquetador de pull request"
on:
  pull_request:
    paths:
      - 'objetivos/*'

jobs:
  Etiquetador:
    runs-on: ubuntu-latest
    steps:
      - name: Etiqueta el PR con "objetivos"
        env:
          REPO:  $ github.repository 
        run: |
          PR_NUMBER=$(echo $GITHUB_REF | awk 'BEGIN  FS = "/"  ;  print $3 ')
          echo "https://api.github.com/repos/$OWNER/$REPO/issues/$PR_NUMBER/labels"
          curl -X PUT -H "Authorization: Bearer $secrets.GITHUB_TOKEN" \
            -H "Accept: application/vnd.github.v3+json" \
            https://api.github.com/repos/$REPO/issues/$PR_NUMBER/labels \
            -d '"labels":["objetivos"]'

它也不起作用,结果:


  "message": "Resource not accessible by integration",
  "documentation_url": "https://docs.github.com/rest/reference/issues#set-labels-for-an-issue"

作为替代方案,我尝试创建个人访问令牌。但是,这种事情似乎没有scope(实际上并没有专门授权编写标签或拉取请求相关信息的方法)。

或者,您可以创建一个 GitHub 应用程序。不过,简单地给 PR 贴上标签似乎有点过头了。

可以运行计划的操作来执行此类操作。当然,坏事变得更糟,这可能是另一种选择。但是,它会丢失上下文信息,并且需要遍历所有 PR 才能执行操作。

市场上已有的应用程序 like this one 实际上并没有根据我正在寻找的文件路径进行标记。

这里还有什么想法吗?谢谢!

【问题讨论】:

【参考方案1】:

我正在尝试做一件简单的事情:标记拉取请求

您是否尝试过使用专用的actions/labeler

【讨论】:

你看到actions/labeler中的问题了吗? github.com/actions/labeler/issues?q=is%3Aissue+is%3Aclosed

以上是关于有没有办法从 github 操作获得对 GitHub API 的写入权限?的主要内容,如果未能解决你的问题,请参考以下文章

除大数时有没有办法获得更精确的结果?

(自己遇到的坑)使用Github Page搭建个人博客(上)

有没有办法在环境光变化时获得通知?

有没有办法通过 GitHub 操作推送更改?

每次从 github 拉取而无需身份验证

有没有办法使用 Bitbucket 从命令行创建 PR?