git plugin for Jenkins fails to clone a repo from local machine. Error code 128


Failed to connect to repository : Command "/usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEAD" returned status code 128:
stderr: fatal: 'home/myuser/path/to/project' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

I have tried the following:

  • chmod 777 to the repo folder(folder containing .git directory)
  • chowned to jenkins:jenkins on the repo folder
  • tried to clone into another folder from this local repo folder: this works!

When I run the above command: /usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEAD on cmd I get the branches.

My questions are:

  1. why is git ls-remote -h ... command called when it should be git clone ...?
  2. How to configure jenkins git plugin to fetch code from local repo

My environment:

RHEL 5.9

Jenkins 1.519 installed as a service(no Web container)

Git plugin

  • How can I perform HTTP POST requests from within a Jenkins Groovy script?
  • Print out hyperlink in Jenkins console output using Python
  • How to use Git login credentials from Jenkins?
  • Unable to start container from jenkins
  • Jenkins and Office365 email notification settings
  • How to permanently set the Jenkins system property for Git plugin timeout?
  • How to setup Jenkins with HA?
  • Jenkins automatically commit artifacts
  • 5 Solutions collect form web for “git plugin for Jenkins fails to clone a repo from local machine. Error code 128”

    When installing Jenkins as a service, by default, Jenkins does not create a user directory as in: /home/jenkins. Jenkins default home directory is set to /var/lib/jenkins. From my work-around, as you would expect, jenkins has trouble accessing local resources from other users directory.

    I moved my cloned repo under Jenkins default home directory i.e. under /var/lib/jenkins so my Repository URLin Jenkins Project configuration looks like: file:///${JENKINS_HOME}/repo/<myprojectname>

    The above works fine …but I found a better way to do it from this blog

    The steps are outlined here:

    look up /etc/init.d/jenkins script. There are a few $JENKINS variables defined
    . This should lead you to the sysconfig for jenkins i.e. /etc/sysconfig/jenkins.
    Stop your jenkins instance:

    sudo /sbin/service jenkins stop

    Take a backup

    cp /etc/sysconfig/jenkins /etc/sysconfig/jenkins.bak

    In this file, change the following property:

    $JENKINS_USER="<your desired user>"

    Change ownership of all related Jenkins directories:

    chown -R <your desired user>:<your user group> /var/lib/jenkins

    chown -R <your desired user>:<your user group> /var/cache/jenkins

    chown -R <your desired user>:<your user group> /var/log/jenkins

    Restart jenkins and that error should disappear

    sudo /sbin/service jenkins start

    This error should go away now!

    It’s been a while since this question was asked, but I had this problem today and there are very few resources. Most probably, because people tend to connect to git repositories remotely.

    I checked using strace what exactly jenkins was doing and yes, it was a problem with permissions.

    But I solved it in a simpler way than answer #2 – by adding jenkins to the git server group – in my case, git1:

    root# gpasswd -a jenkins git1
    root# service jenkins restart

    I’m running Jenkins on Windows and had the same problem. I was able to solve this by having the Jenkins service log in as my user on my laptop.

    (Windows 7)

    1. Open Task Manager (Ctrl + Shift + Escape)
    2. Go to the Services tab
    3. Click the Services... button
    4. Find “Jenkins” in the list of services
    5. Right-click “Jenkins” and click on Properties
    6. Click the Log On tab in the Jenkins Properties window
    7. Choose This account: under Log on as:
    8. Enter your username and password
    9. Click OK
    10. Restart the Jenkins service
    11. Then Bob’s your uncle.
    1. Jenkins uses git clone command only for the first time when a workspace is configured for a project. Further instances uses the git ls-remote command.

    2. I had the same issue when I configured Jenkins. It was resolved by playing around with the SSH Keys. This looks like a configuration issue as well. Check if SSH Keys are setup for the Jenkins account.

    Also, see the step by step procedure of configuration of SSH in the link provided. This might not give you exact solution, but can point you to the solution.

    I find that the other solutions are a bit “hacky” for me. What I did was move the Jenkins Home folder from /Users/Shared/ to /Users/[myacccount]/. This way, my Jenkins will have access to my repos and to my Android SDK (because that’s where I use Jenkins for). Then change the JENKINS_HOME environment variable. I did this by entering the JENKINS_HOME in my .bash_profile (but there are other ways to do this).

    Note: I use OSX

    Git Baby is a git and github fan, let's start git clone.