This page describes how to configure Bamboo to use a Git source repository.
You need to have previously defined a Git capability before you can configure a Git source repository – see Defining a new version control capability.
Note that Bamboo comes with its own built-in Git implementation. However, you need to use native Git to be able to use symbolic links, submodules, automatic branch detection and automatic merging - these are not supported by the built-in Git.
You can download Git from the following locations:
- Windows: http://code.google.com/p/msysgit/downloads/list?can=3&q=official+Git
- Linux and Mac: http://git-scm.com/download
Bamboo OnDemand
Note that SSH authentication is not available in Bamboo OnDemand
Configuring a Git source repository
To add a new Git repository, navigate to the source repository settings for a plan or job, as described on Specifying the source repository.
- Either click Add Repository to add a new repository, or edit an existing repository configuration.
- Choose Git from the Source Repository list.
- Enter a Display Name to help identify the repository in Bamboo.
- You can configure the following settings for a Git source repository for your plan:
| Repository URL | The full path to your Git repository (eg: https://bitbucket.org/atlassian/bamboo-git-plugin.git) Valid URLs are of the form:
| |
| Branch | Type the name of the relevant branch (or tag) you want to work on. Leave empty to work on the master branch. | |
| Authentication Type | None – choose none if you want to access the repository anonymously. | |
| Username/password – authenticate with a username and password. | ||
| SSH private key – upload an SSH Key and provide the corresponding SSH Passphrase. | ||
| Use shallow clones | Allows Bamboo to perform shallow clones (i.e. history truncated to a specified number of revisions). This should increase the speed of the initial code checkouts, however if your build depends on the full repository history, we recommend that you do not use this option. Shallow clones are enabled by default. | |
| Location of POM file | The path to your project's (Only available when importing a Maven 2 project) | |
Advanced Options
| Use submodules | Select to enable submodules support if these are defined for the repository. If native Git capability is not defined for agent submodules support will be disabled. |
|---|---|
| Command timeout | This is useful to stop hung Bitbucket processes. On slower networks, you may consider increasing the default timeout to allow Bamboo time to make an initial clone of the Git repository. |
| Verbose logs | Turns on more verbose logs from Git commands. Use this option if you encounter problems with Git in Bamboo. |
| Enable Quiet Period | Specifies a delay after a single commit is detected before the build is started. This allows multiple commits to be aggregated into a single build. |
| Include/Exclude Files | Allows you to specify the files that Bamboo should, or should not, use to detect changes. When you configure the Include option, it means that you want Bamboo to use only the mentioned files for change detection because by default Bamboo checks all the files. The same way, if you configure the Exclude option, Bamboo will not consider the excluded files for detecting changes. Enter into File Pattern a regular expression to match the files that Bamboo includes or excludes. The regex pattern must match the file path in the repository. See sub page for examples. |
| Exclude Changesets | Enter a regular expression to match the commit messages for changesets that should not start a build. |
| Web Repository | If your repository can be viewed in a web browser, select the repository type. This allows links to relevant files to be displayed in the 'Code Changes' section of a build result. |
Stash – specify the following details for the repository:
| |
FishEye – specify the URL and other details for the repository:
How do I determine my Repository Path? If you have previously run builds with changes from your repository, the easiest way of determining your repository path is to view the code changes and copy the path from the start of the path of one of the changed files, up to (but not including) the appropriate root directory. The root directories for repositories are the ones shown by FishEye when browsing a repository (e.g. |
21 Comments
Piotr Piątkowski
Apr 07, 2011What about triggers for git? Didn't find anything in documentation - table with "Build strategies" looks like copied from documentation for Subversion, not a word regarding git there.
PiotrA
Apr 08, 2011Er, what do you mean by 'triggers for git'? What kind of information you need which the above documentation lacks?
Piotr Piątkowski
Apr 08, 2011I need information how to configure git, to automatically trigger bamboo build after each push. Second option in "build strategies" table - there's a link to this page: http://confluence.atlassian.com/display/BAMBOO/Repository+Triggers+the+Build+when+Changes+are+Committed, but nothing about git can be found there.
PiotrA
Apr 08, 2011I'd say you need to:
.git/hooks/post-receivelooks like:http://localhost:8085/bamboois my Bamboo basedir, andHOOK-HOOKis the project-plan key for the plan using Git Repository)And that should do the trick. Does it help?
Piotr Piątkowski
Apr 09, 2011Yes, Piotr, I see that you added info to the page about Git configuration too, and that's exactly what I was asking for - thank you.
David Kowis
Jun 14, 2013Does this still work since the remote API is gone, and now we've got a REST api?
I couldn't find stuff in the REST API about triggering a build.
Thanks, David
PiotrA
Jun 14, 2013I believe this still work - the above mechanism is not depending on "remote API" nor on the REST api. For the full reference - one can use REST "queue" endpoint to trigger the builds manually, but I don't see a reason why one would favourite REST instead of the plain "updateAndBuild.action".
Why do you ask? Any particular problem you're experiencing? Maybe we can help somehow?
David Kowis
Jun 14, 2013Yeah I'm having trouble with it, it doesn't seem to be triggering my Plan. I've got a support request open: https://support.atlassian.com/browse/BSP-10330
Thanks
PiotrA
Jun 14, 2013Just a question: do you want to trigger the build and run it no-matter-if-there-are-any-new-changes-in-the-repo, or do you want to trigger only the change detection on the repository?
If you need to trigger the build (I assume that is the case, am I right?), then the following REST endpoint should help in your situation: https://docs.atlassian.com/bamboo/REST/4.0/#idp263696 - "POST" on the "/queue" resource. Can you make it on your own with that information how to call that endpoint, or do you need further help?
David Kowis
Jun 14, 2013I think that solves my problem. Change detection is fine, since it should only be pushed via git on a push, but I don't mind if it runs "unnecessarily"
I executed this:
I get a 401 unauthorized, I guess it requires me to set up a username and password explicitly for the automated builds? That's a bit trickier to make work with github.
PiotrA
Jun 14, 2013Hm... In that case the "updateAndBuild.action" should be preferable. I do wonder why does it not work on your machine. But I think diagnosing this won't be easy and it is good idea that you've raised that BSP-10330 - I've added myself to its watchers. I hope that with a help from Support Engineer you'll get to the root of the problem soon.
I'll pass here, as I reckon the issue is too big to be discussed via Bamboo Documentation comments, and I am unable to help you further right now. Is that OK to you?
good night!
David Kowis
Jun 14, 2013Totally OK with me, thanks for your help.
Daniel Nugent
May 15, 2012Is there a specific version of git that shallow clones have been tested with? I've noticed that on some repos (very small ones, I think, 556K with the one I consistently reproduce the problem with), enabling shallow clones causes the clone command to hang indefinitely. Switching to full clones works fine.
I am using git 1.7.10.1 with my build agent.
Anonymous
Dec 05, 2012Is there any support for having the output of 'git describe' passed to a Bamboo environment variable during a build?
Anonymous
Jan 16, 2013Committing to a branch still causes master to compile and my branch does not get compiled when using manual branches. Is this a known issue with bamboo integration or have I neglected something in my branch trigger. I do specify master for master. Using GitHub services hooks which trigger on commit to bamboo. It looks like I can specify the main project-plan which is how I trigger the build.
PiotrA
Jan 21, 2013I think you should use "polling" strategy in Bamboo instead of relying on GitHub services to "ping" the Bamboo. I'm guessing GitHub services aren't aware of plan-branches created in Bamboo, so they always trigger the master-plan...
Thomas Verhülsdonk
Feb 22, 2013I just wanted to point out that the SSH-authentication for a git repository won't work if the private-key is in putty format.
When I converted it to the openssh format, it worked fine.
Malte Hübner
Jul 09, 2013Checking out a tag does not seem to work. I have to checkout the tag manually with a script task.
The documentation shoult mention this:
Andrew Morin
Jul 18, 2013Not critical but is there any way to clone or copy a shared repository?
Dang it I have done the captcha 15+ times...what the heck????
Rick Steckles
Nov 08, 2013Is it possible to store an SSH public key in Bamboo, rather than having to upload it via a webform for each new plan? Ideally we want to create a 'bamboo' user in Stash so we don't have to use a random individual's authentication details in a build plan. However, we'd still have to manually upload an SSH key. Does Bamboo provide a key store?
ArmenA
Nov 11, 2013Hi Rick,
I am sorry for the confusion; Bamboo 5.2 has this feature as it's mentioned here - https://answers.atlassian.com/questions/231064/store-stash-ssh-key-on-the-bamboo-server?page=1#231271. You need navigate to the Administration -> Shared credentials page.
Armen