Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

This plugin adds Repo as an SCM provider in Jenkins.

Plugin Information

View REPO on the plugin site for more information.

This plugin is up for adoption. Want to help improve this plugin? Click here to learn more!


This plugin adds Repo (http://code.google.com/p/git-repo/) as an SCM provider for Jenkins. Projects can use this plugin to only run builds when changes are detected in any of the git repositories in the repo manifest, to list the changes between builds, and to re-create the project state across all repositories for any previous build using a static manifest.


Version 1.10.7 - Mar 3, 2017

  • Update URLs to valid locations in help html. (pull #43)
  • Support for evaluating ${param} in destination dir. (pull #44)
  • Fix --force-sync help description. (pull #45)

Version 1.10.6 - Jan 10, 2017

  • Use local_manifests/local.xml rather than local_manifest.xml. (pull #42)

Version 1.10.5 - Nov 30, 2016

Version 1.10.4 - Nov 29, 2016

Version 1.10.3 - Aug 18, 2016

Version 1.10.2 - Jul 13, 2016

Version 1.10.1 - Jul 11, 2016

Version 1.10.0 - Feb 22, 2015

  • Adding an option to ignore specific projects on scm poll. (pull #31)

Version 1.9.0 - Jan 21, 2015

Version 1.8.0 - Sept 25th, 2015

Version 1.7.1 - May 6th, 2015

  • Fix some options can't be shown properly in configuration page (pull #25)

Version 1.7 - Apr 23rd, 2015

Version 1.6 - Nov 19th, 2013

  • Allow parameters in repo branch name (issue #20)
  • Fixed a bug where a poll compared the current workspace and polled branch incorrectly.
  • Improved git log

Version 1.5 - April 23th, 2013

  • Support for repo init -g
  • Support for repo init --repo-url
  • Parent pom updated to jenkins 1.424

Version 1.3 - November 19th, 2012

  • Lowered memory footprint in case of projects with a large build history.
  • Support repo options '-c' and '-q'.
  • Fix: Repo does not implement getAffectedFiles() (issue #14926).
  • Allow localManifest to be specified either literally or as an URL.

Version 1.2.1 - April 23rd, 2012

  • Fix : Jobs using repo plugin do not persist (JENKINS-12466)
  • Fix : Fixed NPE in RevisionState.hashCode()

Version 1.2

If build scripts modify the workspace, which cause problems during repo sync, try running git reset --hard on the repository and re-running repo sync. Thanks to tgover.

Don't show all the changes brought in from a merge commit in the change log, just show the merge commit (see git log --first-parent). This fixes a problem of a merge commit breaking the build and all authors of changes brought in with that merge commit getting emailed about it. Thanks to tgover.

Version 1.1

Add support for syncing from local mirrors, specify the number of projects to sync simultaneously, use a local manifest, and sync to a subdirectory of the workspace. Thanks to tgover.

Add support to specify the name of the manifest file to use. Thanks to farshidce.

Version 1.0

Initial Release


  1. Unknown User (tgover)

    Please could you add support for mirrors ?

  2. Unknown User (ling_kasim)

    Thanks for your great work! Could you please add support for extra parameters passing to "repo init", e.g. --repo-url or --no-repo-verify?

    1. Unknown User (tgover)

      1. Unknown User (ling_kasim)

        Thanks! Looking forward to the new release ...

  3. Unknown User (baekseonguk)

    I'm using gerrit trigger and repo plug in to run build. but I can't get new commit that newly registered in gerrit when build run. so, I added repo download command in Execute shell like below pic.

    is it correct method?

  4. Unknown User (baztheman)


    I am using repo plugin version 1.2 and Hudson version 1.395. For some reasons, not all changes are displayed. So, there are builds being triggered but no changes displayed. Anyone know why? Any fixes? Here are two cases, one with some xml error, another one is being triggered by actual changes...

    Case 1:

    This page captures the polling log that triggered this build.Started on Mar 20, 2012 1:01:34 PM
    Apollo $ repo init -u git:/repos/product/manifest.git -b edp-gingerbread

    repo initialized in /var/hudson/workspace/Apollo
    Apollo $ repo sync -d

    Apollo $ repo manifest -o - -r
    org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.
    Done. Took 17 sec
    Changes foundCase 2:Started on Mar 20, 2012 1:11:34 PM
    Apollo $ repo init -u git:/repos/product/manifest.git -b edp-gingerbread

    repo initialized in /var/hudson/workspace/Apollo
    Apollo $ repo sync -d

    Apollo $ repo manifest -o - -r
    Added a project: device/common at revision: c491cd697e4bc16a52e3b1d254e4151ee3aad8bf
    — cut —
    Added a project: bootable/bootloader/u-boot at revision: 95a6281b9e9c5824fc34bd774a205206b8955488
    Added a project: bootable/bootloader/x-loader at revision: 1e9849055a2de8c0f0f316866b37d58f5ec93c91
    Done. Took 16 sec
    Changes found

  5. Unknown User (andenthal)

    Are there specific proxy related settings I need to set for this? I can not get past my firewall when using the plugin, but can do it just fine otherwise.

    When trying to get https://android.googlesource.com/platform/manifest via the plugin returns an error 101

    When I do a "repo init -u https://android.googlesource.com/platform/manifest" in the 'shell executable' area of the jenkins job it works just fine. It doesn't appear to be an issue with the environment as a whole.

    1. Unknown User (mmlegra)

      I am having the same problem.

  6. Unknown User (vladisld)

    Any plans to support integration with gerrit trigger plugin  (repo download command) ? 

  7. Unknown User (vprasad79)


    We use jenkins[1.565.3], repo plugin [1.6] and repo utility [v1.12.16].

    We facing below index lock error on Ubuntu 14.04.1 LTS. Any help appreciated!

    21:31:14 If no other git process is currently running, this probably means a
    21:31:14 git process crashed in this repository earlier. Make sure no other git
    21:31:14 process is running and remove the file manually to continue.
    21:31:15 fatal: Unable to create '/opt/jenkins/workspace/Androidl_release/applibs_sources_for_check/external/libogg/.git/index.lock': File exists.
  8. Unknown User (osama)


    First of all thanks for  making this plugin. I have a question.

    Does this plugin works with gerrit trigger? Or we have to poll for the gerrit changes? What is the most efficient trigger method whenever a change is uploaded to gerrit's aosp repo.

    Thanks for your time

  9. Unknown User (anaumann)


    so far I'm successfully using this plugin for multi repository CI. However, a problem comes up with project-repositories with lots of commit-traffic, but where I'm only interested in changes in a certain subfolder. Are there plans to add an option for restricting the build trigger to listen only to a specific subfolder?

    Also a post-step with the possibility to commit/tag the snapshot manifest would be very helpful. Or is everybody tagging manually?



  10. Unknown User (minghon_lai)

    Good plugin.

  11. Unknown User (20100v)

    Maybe I'm wrong, but why this plugin doesn't allow to use credentials to clone git repositories ? I found a way but I need to inject and write the password in a file in a shell command. It 'll be very useful to be able to use jenkins credentials with repo.

    1. Unknown User (tony_teknique)

      It's possible to use ssh-agent with this plugin for builds, but it may not work for polling scm. 

      1. Unknown User (jsacp)

        Could you please elaborate on how? I am struggling with the same situation as Vincent at the moment, and would greatly appreciate any updates on this (smile)

        Thanks in advance.

        1. Unknown User (tony_teknique)

          In build configuration, under build environment, select to enable ssh-agent and pick the ssh-credential that you like to use. 

          ssh-agent is loaded before any repo is checked out so that should allow you to run the job and build your code. 

          Although the job will run when you trigger it (or schedule by time), Poll SCM won't work because ssh-agent is not loaded in the environment where Jenkins checks out the code and scans for changes

          1. Unknown User (perviberg)


            when selecting a pipeline job, the Build Environment tab is not available. So the SSH Agent plugin doesn't help here.

            I currently see no possibility to use pipeline, Repo and credentials plugin together.

            Our workaround is to store the ssh credentials in a jenkins user that runs the jenkins server, unfortunately this grants these ssh credentials to all build jobs.

            Is there no possible way to get the Repo scm plugin to use credentials in the same way as the git scm plugin?.

            my setup:

            Jenkins ver. 2.150.1

            Credentials Plugin: 2.1.18

            Pipeline: 2.6

            REPO plugin: 1.10.8

            1. Unknown User (spinus1)


              it could be very useful also on my side, but I think it couldn't be easy to implement: passing credential to manifest repository should be fine, but, then you have also to pass credentials to all the repository listed in the manifest that needs a user/password to access to it.

              Maybe it could be possible to add an initial step that set up git credentials (e.g. git config --global credential.helper 'cache --timeout=28800'), then executes git ls-remotes to cache username and password: every following invocation of git will have the user and password cached...



              1. Unknown User (perviberg)


                you mean that different credentials might be needed for different git repos inside the manifest?.

                Yes, I guess that could make it more difficult to implement. But, that problem must exist for sub modules in git as well?.

                I would be fully content with a solution that is restricted to having support for the simple case of having the same credentials for the manifest repo as for the repos inside the manifest.

                Best regards


                1. Unknown User (spinus1)

                  Yes, if you have different credentials it'll complicate the use case.

                  However, for the moment I'm using this workaround:

                  1. I've set credential timeout on git config file
                  2. In my pipeline I've added an explicit checkout of the manifest repository before executing RepoScm checkout:
                    1. in this way:
                      1. git credentials are not public: in the pipeline I use the "credentialsId" parameter, not the complete credentials
                      2. when the pipeline fetches the manifest repository git will store the credential in cache
                      3. when repo is executed, git will use the cached credentials to access all the repositories listed in the manifest

                  Maybe something like this could be implemented directly in the repo plugin...



  12. Unknown User (20100v)

    Is it possible to add the support of --repo-branch parameter ?

    1. Unknown User (20100v)

      I've created the commit to add the --repo-branch support. Could you check it and push it if 's OK for you ?

      I really need it. 


      1. Unknown User (20100v)

        Unknown User (tony_teknique), could you see my commit ? I really need it.


        1. Unknown User (tony_teknique)

          Unknown User (20100v) I am not a developer nor a maintainer for the plugin. You will have to find someone else.  

      2. Unknown User (annetheagile)

        It seems Repo is now on jenkinsci; please make a Pull request to https://github.com/jenkinsci/repo-plugin/pulls?q=is%3Aopen+is%3Apr

  13. Unknown User (isarkisov)

    Does anybody know if there is a way to make REPO plugin to show author's email address instead of name in the list of changes?  In our case it's inconsistent, in some cases it's showing author name in other cases it shows author's email address, whereas git log shows both name and email.

  14. Unknown User (linjinze999)

    I got a bug: Plugin will not save changelog.xml when there is no change, bug only print "No logs found". Then open the special build page, we got info "fail". But we want to show "No changes". Because "fail" may make us puzzle. Can you fix this bug?uzzpuzzled