从命令行获取Pull Request的标题

时间:2016-01-04 22:20:38

标签: git github jenkins terminal ghprb

我正在编写一个持续集成步骤,在允许它们合并之前检查我们的拉取请求的标题以获取正确的标签和格式。

为此,我需要在给出PR编号时回显Pull Request的标题。有没有办法在命令行中执行此操作?

4 个答案:

答案 0 :(得分:3)

建立@ Simon-Warta的答案,你可以做到以下几点:

git clone https://github.com/user_org/project.git
pushd project
for pr in $(git log --pretty="%s" --merges | grep pull | sed -e "s/.*#\([0-9]\+\).*/\1/g" | sort -rn | uniq); do
  curl https://api.github.com/repos/user_org/project/pulls/${pr} 2>/dev/null | jq '.title';
done
popd

您的计算机上需要curljq,但如果您有合理的Linux发行版,这不应该很难。

答案 1 :(得分:1)

如果您使用的是github:

.git/config文件中找到github遥控器的部分。它看起来像这样:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:a.git

现在将行fetch = +refs/pull/*/head:refs/remotes/origin/pr/*添加到此部分。显然,更改github url以匹配项目的URL。最终看起来像这样:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:a.git
    fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

现在获取所有拉取请求:

$ git fetch origin
From github.com:ja
* [new ref]         refs/pull/1000/head -> origin/pr/1000
* [new ref]         refs/pull/1002/head -> origin/pr/1002
* [new ref]         refs/pull/1004/head -> origin/pr/1004
* [new ref]         refs/pull/1009/head -> origin/pr/1009

检查特定的提款请求:

$ git checkout pr/999
Branch pr/999 set up to track remote branch pr/999 from origin.
Switched to a new branch 'pr/999'

答案 2 :(得分:1)

对于拉取请求,请使用

https://api.github.com/repos/randombit/botan/pulls/359

对于拉取请求中的修补程序,请在Subject:网址中搜索.patch

https://github.com/randombit/botan/pull/359.patch

请注意,您只能在Github API上执行60 request per hour and IP

答案 3 :(得分:1)

使用Github的新官方CLI(命令行界面):

gh pr view 3 --repo OWNER/REPO | head -n 1

其中:

  • 3是PR号
  • gh pr view [options]显示标题(第一行),正文和有关PR的其他信息
  • head -n 1仅保留gh pr view输出的第一行,以便仅获取标题

另见details and optionsinstallation instructions