Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How would I configure TeamCity to support a GitHub pull-request model for source-code integrations?

We use TeamCity and GitHub Enterprise. We use an open-source-esque workflow with git: there's a mainline repository for each component, and when people want to make changes, they

  • fork mainline to their own account (so there might be many forks)
  • create a branch in their fork
  • implement change
  • bring up to date with mainline/master for changes that have happened in the meantime
  • submit a pull request of fork/feature-branch -> mainline/master

We're very happy with this workflow; it forces a code-review (well, at least a manual step, which hopefully involves actually reading the code and running its tests) before mainline sees any changes, which historically has been a problem. We'd like to use the GH Status API (blog post, API doc) to turn the merge button non-green if the author is the person looking at the pull-request, but that's for later.

We have TeamCity 7.1 set up to watch the mainline repositories and build when changes are seen. However, the way it's currently set up, CI only builds when it sees changes to mainline/master.

How should we configure our VCS roots in TeamCity such that we can have the same workflow, but CI will trigger a build based on branches in forks of the mainline repo? Preferably without our having to register every fork individually?

I've read TeamCity 7.1's feature-branch documentation (blog post, release notes, documentation), but I don't see how to apply it to our model of arbitrary-number-of-forks as opposed to everyone-commits-to-mainline-in-feature-branches.

like image 582
Peter Mounce Avatar asked Sep 19 '12 12:09

Peter Mounce


People also ask

How does GitHub pull request work?

Pull requests let you tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch.

How do I create a pull request on my repository?

Go to your repository on GitHub and you'll see a button “Compare & pull request” and click it. Please provide necessary details on what you've done (You can reference issues using “#”). Now submit the pull request. Congratulations!


1 Answers

You can monitor pull-requests by teamcity: http://blog.jetbrains.com/teamcity/2013/02/automatically-building-pull-requests-from-github-with-teamcity/

like image 129
isqua Avatar answered Nov 13 '22 21:11

isqua