Documentation for Bamboo 4.0.x. Documentation for earlier versions of Bamboo is available too.

The instructions on this page describe how to configure Bamboo to use a Git source repository.

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.

  1. Either click Add Repository to add a new repository, or edit an existing repository configuration.
  2. Choose Git from the Source Repository list.
  3. Enter a Display Name to help identify the repository in Bamboo.
  4. You can configure the following settings for a Git source repository for your plan:
Repository URL

The full path to your Git repository (eg: git://github.org/atlassian/bamboo-git-plugin.git)

Valid URLs are of the form:

  • git://host.xz[:port]/path/to/repo.git
  • ssh://[user@]host.xz[:port]/path/to/repo.git
  • [user@]host.xz:path/to/repo.git
  • http[s]://host.xz[:port]/path/to/repo.git
  • /path/to/repo.git
  • file:///path/to/repo.git 
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 pom.xml file, relative to the root of your Git Repository URL (defined above).

(Only available when importing a Maven 2 project) 

Advanced Options

Use submodulesSelect 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 --verbose and --debug options in hg commands and passes the output to build logs. Use this option if you encounter problems with Git in Bamboo.
Enable Quiet PeriodSpecifies 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.

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 ChangesetsEnter 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.

FishEye – specify the URL and other details for the repository:

    • FishEye URL — the URL of your FishEye repository (e.g. ' https://atlaseye.atlassian.com/ ').
    • Repository Name — the name of your FishEye repository (e.g. 'Bamboo'). This is effectively the alias for your repository path.
    • Repository Path — the path for your FishEye repository (e.g. '/atlassian/bamboo/').

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. trunk)). For example, if a code change listed /atlassian/bamboo/trunk/bamboo-acceptance-test/pom.xml, the path would be /atlassian/bamboo/.
If you have not previously run builds with changes from your repository, you will need to ask your FishEye administrator for the repository path indexed by FishEye.

  • No labels

6 Comments

  1. Piotr Piątkowski

    What 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.

    1. PiotrA

      Er, what do you mean by 'triggers for git'? What kind of information you need which the above documentation lacks?

      1. Piotr Piątkowski

        I 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.

        1. PiotrA

          I'd say you need to:

          • add post-receive script to your git repository. For example my .git/hooks/post-receive looks like:
            #!/bin/sh
            wget --bind-address=127.0.0.1 http://localhost:8085/bamboo/updateAndBuild.action?buildKey=HOOK-HOOK -O /dev/null
            
            (where http://localhost:8085/bamboo is my Bamboo basedir, and HOOK-HOOK is the project-plan key for the plan using Git Repository)
          • you might need to tweak Trigger IP Address (Bamboo->Plan->Repository Configuration page). For example I had to change it to:
            127.0.0.1
            

          And that should do the trick. Does it help?

          1. Piotr Piątkowski

            Yes, 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.

  2. Daniel Nugent

    Is 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.