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!

Description

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.

Changelog

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

25 Comments

  1. Please could you add support for mirrors ?

  2. 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. Thanks! Looking forward to the new release ...

  3. 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. Hi,

    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. 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. I am having the same problem.

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

  7. Hiii

    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
    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.
    21:31:15 
  8. Hi!

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

    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?

    Regards,

    Andreas

  10. 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. It's possible to use ssh-agent with this plugin for builds, but it may not work for polling scm. 

      1. 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. 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. Hi,

            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

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

    1. I've created the commit to add the --repo-branch support. Could you check it and push it if 's OK for you ?
      https://github.com/20100/Jenkins-repo-plugin/commit/6347791825e8b15580e39b568e13d433398519f0

      I really need it. 

      Thanks

      1. Tony Kuo, could you see my commit ? I really need it.

        Thanks

        1. Vincent Guignot I am not a developer nor a maintainer for the plugin. You will have to find someone else.  

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

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

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