【问题标题】:Can we add labels to a pull request while creation using rest API?我们可以在使用 REST API 创建时向拉取请求添加标签吗?
【发布时间】:2021-07-21 06:02:33
【问题描述】:

我正在尝试创建一个拉取请求以及创建过程中包含的标签。我知道这可以在 GitHub UI 中完成,但是否可以通过编程方式使用 REST API 来完成?

创建拉取请求的 API 文档没有提到指定标签: https://docs.github.com/en/rest/reference/pulls#create-a-pull-request

我使用以下命令创建了一个 PR:

execute_command_with_output(
    'curl --silent -X POST -H "Authorization: token {}" -H "Accept: application/vnd.github.v3+json" '
    '{}/repos/{}/pulls -d \'{{"head":"{}","base":"{}","title":"{} Cherry-Pick from PR {}","labels":"bug"}}\''.format(
        token, url, repository, t_branch, b_branch, ticket, pr
    ),

【问题讨论】:

  • "labels":"bug"有什么作用?

标签: github-api


【解决方案1】:

在创建拉取请求时使用 Github API 是不可能的(目前)。

但是,您可以在创建拉取请求后调用从 API 中的另一个 Github 服务为拉取请求添加标签。相关服务是Add Label To An Issue

你没看错TO AN ISSUE!

实际上,issue_numberpr_number 在 Github 用户存储库上使用 SAME 序列,并且在被 Github API for all those labels services 使用时似乎引用了同一个对象。

在寻找这个问题的答案之前我不知道这个事实!

这是您需要使用的 cURL(例如添加 @987654329 @标签)

curl --location --request POST 'https://api.github.com/repos/{repo_owner}/{repo_name}/issues/{pr_number}/labels' \
--header 'Accept: application/vnd.github.v3+json' \
--header 'Authorization: Bearer {GITHUB_PAT}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "labels": ["enhancement"]
}'

labels 字段表示要添加到问题/公关的标签名称。

注意1:你也可以传递一个空数组来移除所有标签。

注意 2:您也可以直接将单个标签作为字符串或标签数组传递,但 GitHub 建议使用标签键传递对象。

参考

我在 Github Marketplace 的 addLabels method implementation 上的官方 Labeler action 上观察到这种行为,用于 PR(与 ISSUES 相同)。

然后,尽管this post on the Github Community 提出了与您相同的问题,但我确认了这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    相关资源
    最近更新 更多