我有一个在TeamCity中设置的CI构建,它将在BitBucket(git)中发出拉取请求时触发.它目前针对pull请求的源分支构建,但如果它可以构建合并的pull请求则更有意义.
我的研究给我留下了以下可能的解决方案:
有没有人在TeamCity之前做过这个或者有关于如何实现它的建议?
更新:(根据John Hoerr回答)
替代解决方案 - 忘记TeamCity进行合并,使用BitBucket Web钩子创建像github这样的合并分支,并遵循John Hoerr的回答.
teamcity merge continuous-integration bitbucket pull-request
在 GitHub 上,其他人可以在您的拉取请求中查看您的更改并发表评论。当 PR 的作者或具有写入权限的评论已被关注时,可以“解决对话”。
我的问题是:这里的正确礼仪是什么?那么谁应该“解决对话”?
由于审阅者已经留下了要更改的评论,因此这个人应该解决对我来说是有意义的,因为如果他/她的评论得到了关注,这个人可以做出最好的判断。
但这是“解决对话”按钮的目的吗?
我想通过github API获取repo上所有pull请求的列表.我已按照http://developer.github.com/v3/pulls/上的说明进行操作,但当我查询'/ repos /:owner /:repo/pulls'时,它始终返回的拉取请求少于网站上显示的拉取请求.
例如,当我查询torvalds/linux repo时,我得到9个开放拉请求(网站上有14个).如果我添加'?state = closed',我会得到一组不同的11个关闭拉取请求(网站显示大约20个).
有没有人知道这种差异出现的地方,以及是否有办法通过API获得回购请求的完整列表?
我们的大部分工作都发生在GitLab.com上(即不是本地GitLab安装).如果上游repo驻留在GitHub上,有没有办法向上游提交拉取请求?(如果以特定方式分配上游回购是解决方案的一部分,那没关系.)
虽然添加fetch = +refs/pull/*/head:refs/remotes/origin/pr/*到.git/config允许获取和结帐,但拉动操作失败:
[remote "origin"]
url = https://github.com/the/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
Run Code Online (Sandbox Code Playgroud)
获取和结帐工作正常:
$ git fetch origin
Run Code Online (Sandbox Code Playgroud)
... 都好
$ git checkout -b "pr-123" origin/pr/123
Branch pr-123 set up to track remote branch pr/123 from origin.
Switched to a new branch 'pr-123'
Run Code Online (Sandbox Code Playgroud)
...成功,得到了代码!
但拉动失败:
$ git pull
Your configuration specifies to merge with the ref 'refs/heads/pr/123'
from the remote, but no such ref was fetched.
Run Code Online (Sandbox Code Playgroud)
......失败了.
我可以手动指定ref:
$ git pull origin refs/pull/123/head …Run Code Online (Sandbox Code Playgroud) 我有一个 PR,我在 GitHub 上的评论中留下了几条评论
一位同事更新了代码以应用我建议的更改,现在我的所有审阅评论都带有过时的标签。
然而,我仍然看到代码处于我评论时的状态。
我想要的是一种简单的方法来查看他编写的新代码,而不是旧代码。有可能吗?
以前,每个git push开放的 Pull 请求都会立即显示。它可能会也可能不会触发 CI,但提交会立即显示在“提交”选项卡中。
现在,每次我将另一个提交推送到拉取请求分支时,它不会立即显示,而是出现“正在处理更新”加载指示器:
这是令人担忧的,因为 GitHub 界面仍然允许合并 Pull 请求,即使某些提交尚未处理。
不过,我没有更改任何配置,无论是在存储库中还是在我的个人资料中。
发生了什么?为什么要改变?
“外部链接”图标指的是间接合并拉取请求或仍在处理更新时提供的更多详细信息页面。该页面包含一段Pushed commits are still beingprocessed,这可能是相关的,但它没有很多信息:
具体来说,它没有解释为什么现在“处理[新提交]并出现在提交列表中需要比平常更长的时间”。
有没有办法(从命令行)列出Git/GitHub中PR中更改的所有文件的名称?这将用于查找需要在该PR的Travis CI构建中运行哪些测试.
CI构建在调用脚本之前运行这些命令:
git clone --depth=50 git://github.com/jekyll/jekyll.git jekyll/jekyll
cd jekyll/jekyll
git fetch origin +refs/pull/2615/merge
git checkout -qf FETCH_HEAD
Run Code Online (Sandbox Code Playgroud) 因此,我从一个提前了几次提交的拉取请求开始develop,我们称这个分支为分支feature。
feature与开发有 1 处合并冲突。所以我决定重新调整它并解决冲突。
git checkout develop git pullgit checkout feature git pullgit rebase developgit rebase --continuegit push(我实际上使用的是“同步更改”)经过这些步骤后,GitHub 上的 PR 从 7 次提交增加到 60 多次提交。
我原本预计它只会从 7 到 8 次提交,因为我修复了一个冲突。
知道发生了什么以及如何(如果需要)修复它吗?
如果需要,我可以发布更多信息。
我有一个用例,其中每次针对开发分支提出拉取请求时,都需要向 slack 通道发送一条通知,其中包含 PR 链接以及可能有关哪个用户打开它的信息。
我很困惑该走哪条路
在浏览完https://github.com/integrations/slack#configuration后,我看到了仅订阅拉取请求的选项/github subscribe org/repo pulls,但这不允许自定义(例如,仅通知 PR 开发,而不是每个 PR)
Github actions 有方法指定仅在为开发提出拉取请求时运行,但由于它是特定于存储库的,我必须将工作流文件推送到 100 多个存储库
当 PR 被提升(未合并)到特定分支并可自定义(例如添加打开 PR 的用户信息)时,是否有更好的解决方案/自动化发布到 slack?