有什么方法可以通过github操作对GitHub API进行写访问?

时间:2020-10-23 17:27:52

标签: github-api github-actions building-github-actions

我正在尝试做一个简单的事情:标记一个拉取请求(后来的目标是自动合并,但是请在这里忍受)。这是我尝试过的

  • 使用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似乎有些矫seems过正。

  • 可以运行计划的操作来执行此类操作。当然,情况越来越糟,这可能是另一种选择。但是,它会丢失上下文信息,并且需要在所有PR上运行才能执行操作。

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

这里还有其他想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

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

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