Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-26315

Git plugin can't handle property references in repository URLs when polling

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Minor
    • Resolution: Duplicate
    • Component/s: git-plugin
    • Labels:
      None
    • Similar Issues:

      Description

      We use a global property called "RepoRoot" to specify where our Git repositories live, so our repository URL's look similar to:

      ${RepoRoot}/RepoA.git

      ${RepoRoot}/RepoB.git

      This works fine when jobs actually run:

      ...
      Fetching changes from the remote Git repository
       > git.exe config remote.origin.url https://github.com/Foo/RepoA.git # timeout=10
      Cleaning workspace
       > git.exe rev-parse --verify HEAD # timeout=10
      Resetting working tree
       > git.exe reset --hard # timeout=10
       > git.exe clean -fdx # timeout=10
      Fetching upstream changes from https://github.com/Foo/RepoA.git
       > git.exe --version # timeout=10
      using .gitcredentials to set credentials
       > git.exe config --local credential.helper store --file=\"C:\Users\FOO\AppData\Local\Temp\git6742298409525835661.credentials\" # timeout=10
       > git.exe -c core.askpass=true fetch --tags --progress https://github.com/Foo/RepoA.git +refs/heads/*:refs/remotes/origin/*
      ...
      

      But we're seeing errors similar to the following in our polling log:

      Fetching upstream changes from ${RepoRoot}/RepoA.git
       > git.exe --version # timeout=10
       > git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*
      FATAL: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
      hudson.util.IOException2: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
      	at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:518)
      	at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:380)
      	at hudson.scm.SCM.poll(SCM.java:397)
      	at org.jenkinsci.plugins.multiplescms.MultiSCM.compareRemoteRevisionWith(MultiSCM.java:92)
      	at hudson.scm.SCM.poll(SCM.java:397)
      	at hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1462)
      	at hudson.model.AbstractProject._poll(AbstractProject.java:1433)
      	at hudson.model.AbstractProject.poll(AbstractProject.java:1344)
      	at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:515)
      	at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:544)
      	at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      Caused by: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
      	at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:695)
      	at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:598)
      	at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:516)
      	... 16 more
      Caused by: hudson.plugins.git.GitException: Command "git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
      stdout: 
      stderr: fatal: repository 'https://github.com/Foo/RepoA.git/' not found
      
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1457)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1245)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:85)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:280)
      	at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:693)
      	... 18 more
      Done. Took 2.3 sec
      

      If I hard-code the repo root rather than use the global property reference, polling starts working.

      From the polling log, it appears as though the polling code is:

      1. Not resolving global property references in repo URLs when assembling git command lines

      2. Possibly incorrectly appending trailing forward slash characters to repo URLs

      Thanks folks, love your work.

        Attachments

          Issue Links

            Activity

            ronmacneil_ice Ron MacNeil created issue -
            ronmacneil_ice Ron MacNeil made changes -
            Field Original Value New Value
            Summary Git plugin incorrectly adds trailing slash to repository URL when it ends with property reference Git plugin incorrectly adds trailing slash to repository URLs containing property reference(s) when polling
            Description We use global properties to specify:

            Where our Git repositories live, ${RepoRoot}

            Whether or not they have a ".git" suffix, ${RepoSuffix}


            So our repository URL's look similar to:

            ${RepoRoot}/RepoA${RepoSuffix}

            ${RepoRoot}/RepoB${RepoSuffix}


            When ${RepoSuffix} is set to ".git", we're seeing errors similar to the following in our polling log, note the incorrectly-added trailing slash:

            fatal: Authentication failed for 'https://github.com/Foo/RepoA.git/'


            I'm sure auto-adding the trailing slash was well-intentioned, but it's a case of trying to make the software too clever for its own good. At the very least, there needs to be an option to disable this behaviour.

            Thanks folks, love your work.
            We use a global property called "RepoRoot" to specify where our Git repositories live, so our repository URL's look similar to:

            ${RepoRoot}/RepoA.git

            ${RepoRoot}/RepoB.git


            These resolve correctly when the job actually runs, but we're seeing errors similar to the following in our polling log:

            {code}
            Fetching upstream changes from ${RepoRoot}/RepoA.git
             > git.exe --version # timeout=10
             > git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*
            FATAL: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            hudson.util.IOException2: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:518)
            at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:380)
            at hudson.scm.SCM.poll(SCM.java:397)
            at org.jenkinsci.plugins.multiplescms.MultiSCM.compareRemoteRevisionWith(MultiSCM.java:92)
            at hudson.scm.SCM.poll(SCM.java:397)
            at hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1462)
            at hudson.model.AbstractProject._poll(AbstractProject.java:1433)
            at hudson.model.AbstractProject.poll(AbstractProject.java:1344)
            at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:515)
            at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:544)
            at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
            at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
            at java.util.concurrent.FutureTask.run(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
            Caused by: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:695)
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:598)
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:516)
            ... 16 more
            Caused by: hudson.plugins.git.GitException: Command "git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
            stdout:
            stderr: fatal: repository 'https://github.com/Foo/RepoA.git/' not found

            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1457)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1245)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:85)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:280)
            at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:693)
            ... 18 more
            Done. Took 2.3 sec
            {code}


            Thanks folks, love your work.
            ronmacneil_ice Ron MacNeil made changes -
            Description We use a global property called "RepoRoot" to specify where our Git repositories live, so our repository URL's look similar to:

            ${RepoRoot}/RepoA.git

            ${RepoRoot}/RepoB.git


            These resolve correctly when the job actually runs, but we're seeing errors similar to the following in our polling log:

            {code}
            Fetching upstream changes from ${RepoRoot}/RepoA.git
             > git.exe --version # timeout=10
             > git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*
            FATAL: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            hudson.util.IOException2: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:518)
            at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:380)
            at hudson.scm.SCM.poll(SCM.java:397)
            at org.jenkinsci.plugins.multiplescms.MultiSCM.compareRemoteRevisionWith(MultiSCM.java:92)
            at hudson.scm.SCM.poll(SCM.java:397)
            at hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1462)
            at hudson.model.AbstractProject._poll(AbstractProject.java:1433)
            at hudson.model.AbstractProject.poll(AbstractProject.java:1344)
            at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:515)
            at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:544)
            at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
            at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
            at java.util.concurrent.FutureTask.run(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
            Caused by: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:695)
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:598)
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:516)
            ... 16 more
            Caused by: hudson.plugins.git.GitException: Command "git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
            stdout:
            stderr: fatal: repository 'https://github.com/Foo/RepoA.git/' not found

            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1457)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1245)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:85)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:280)
            at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:693)
            ... 18 more
            Done. Took 2.3 sec
            {code}


            Thanks folks, love your work.
            We use a global property called "RepoRoot" to specify where our Git repositories live, so our repository URL's look similar to:

            ${RepoRoot}/RepoA.git

            ${RepoRoot}/RepoB.git


            These resolve correctly when the job actually runs, but we're seeing errors similar to the following in our polling log:

            {code}
            Fetching upstream changes from ${RepoRoot}/RepoA.git
             > git.exe --version # timeout=10
             > git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*
            FATAL: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            hudson.util.IOException2: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:518)
            at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:380)
            at hudson.scm.SCM.poll(SCM.java:397)
            at org.jenkinsci.plugins.multiplescms.MultiSCM.compareRemoteRevisionWith(MultiSCM.java:92)
            at hudson.scm.SCM.poll(SCM.java:397)
            at hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1462)
            at hudson.model.AbstractProject._poll(AbstractProject.java:1433)
            at hudson.model.AbstractProject.poll(AbstractProject.java:1344)
            at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:515)
            at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:544)
            at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
            at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
            at java.util.concurrent.FutureTask.run(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
            Caused by: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:695)
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:598)
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:516)
            ... 16 more
            Caused by: hudson.plugins.git.GitException: Command "git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
            stdout:
            stderr: fatal: repository 'https://github.com/Foo/RepoA.git/' not found

            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1457)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1245)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:85)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:280)
            at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:693)
            ... 18 more
            Done. Took 2.3 sec
            {code}


            If I hard-code the repo root rather than use the global property reference, polling works. So it seems as though there's a difference in the handling of repository URLs between polling for changes and actually pulling changes during job execution.


            Thanks folks, love your work.
            ronmacneil_ice Ron MacNeil made changes -
            Summary Git plugin incorrectly adds trailing slash to repository URLs containing property reference(s) when polling Git plugin can't handle repository URLs containing property reference(s) when polling
            Description We use a global property called "RepoRoot" to specify where our Git repositories live, so our repository URL's look similar to:

            ${RepoRoot}/RepoA.git

            ${RepoRoot}/RepoB.git


            These resolve correctly when the job actually runs, but we're seeing errors similar to the following in our polling log:

            {code}
            Fetching upstream changes from ${RepoRoot}/RepoA.git
             > git.exe --version # timeout=10
             > git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*
            FATAL: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            hudson.util.IOException2: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:518)
            at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:380)
            at hudson.scm.SCM.poll(SCM.java:397)
            at org.jenkinsci.plugins.multiplescms.MultiSCM.compareRemoteRevisionWith(MultiSCM.java:92)
            at hudson.scm.SCM.poll(SCM.java:397)
            at hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1462)
            at hudson.model.AbstractProject._poll(AbstractProject.java:1433)
            at hudson.model.AbstractProject.poll(AbstractProject.java:1344)
            at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:515)
            at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:544)
            at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
            at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
            at java.util.concurrent.FutureTask.run(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
            Caused by: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:695)
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:598)
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:516)
            ... 16 more
            Caused by: hudson.plugins.git.GitException: Command "git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
            stdout:
            stderr: fatal: repository 'https://github.com/Foo/RepoA.git/' not found

            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1457)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1245)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:85)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:280)
            at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:693)
            ... 18 more
            Done. Took 2.3 sec
            {code}


            If I hard-code the repo root rather than use the global property reference, polling works. So it seems as though there's a difference in the handling of repository URLs between polling for changes and actually pulling changes during job execution.


            Thanks folks, love your work.
            We use a global property called "RepoRoot" to specify where our Git repositories live, so our repository URL's look similar to:

            ${RepoRoot}/RepoA.git

            ${RepoRoot}/RepoB.git


            This works fine when jobs actually run:

            {code}
            ...
            Fetching changes from the remote Git repository
             > git.exe config remote.origin.url https://github.com/Foo/RepoA.git # timeout=10
            Cleaning workspace
             > git.exe rev-parse --verify HEAD # timeout=10
            Resetting working tree
             > git.exe reset --hard # timeout=10
             > git.exe clean -fdx # timeout=10
            Fetching upstream changes from https://github.com/Foo/RepoA.git
             > git.exe --version # timeout=10
            using .gitcredentials to set credentials
             > git.exe config --local credential.helper store --file=\"C:\Users\FOO\AppData\Local\Temp\git6742298409525835661.credentials\" # timeout=10
             > git.exe -c core.askpass=true fetch --tags --progress https://github.com/Foo/RepoA.git +refs/heads/*:refs/remotes/origin/*
            ...
            {code}


            But we're seeing errors similar to the following in our polling log:

            {code}
            Fetching upstream changes from ${RepoRoot}/RepoA.git
             > git.exe --version # timeout=10
             > git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*
            FATAL: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            hudson.util.IOException2: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:518)
            at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:380)
            at hudson.scm.SCM.poll(SCM.java:397)
            at org.jenkinsci.plugins.multiplescms.MultiSCM.compareRemoteRevisionWith(MultiSCM.java:92)
            at hudson.scm.SCM.poll(SCM.java:397)
            at hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1462)
            at hudson.model.AbstractProject._poll(AbstractProject.java:1433)
            at hudson.model.AbstractProject.poll(AbstractProject.java:1344)
            at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:515)
            at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:544)
            at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
            at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
            at java.util.concurrent.FutureTask.run(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
            Caused by: hudson.plugins.git.GitException: Failed to fetch from ${RepoRoot}/RepoA.git
            at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:695)
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:598)
            at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:516)
            ... 16 more
            Caused by: hudson.plugins.git.GitException: Command "git.exe -c core.askpass=true fetch --tags --progress ${RepoRoot}/RepoA.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
            stdout:
            stderr: fatal: repository 'https://github.com/Foo/RepoA.git/' not found

            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1457)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1245)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:85)
            at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:280)
            at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:693)
            ... 18 more
            Done. Took 2.3 sec
            {code}


            If I hard-code the repo root rather than use the global property reference, polling starts working.


            From the polling log, it appears as though the polling code is:

            1. Not resolving global property references in repo URLs when assembling git command lines

            2. Possibly incorrectly appending trailing forward slash characters to repo URLs


            Thanks folks, love your work.
            ronmacneil_ice Ron MacNeil made changes -
            Summary Git plugin can't handle repository URLs containing property reference(s) when polling Git plugin can't handle repository URLs containing property references when polling
            ronmacneil_ice Ron MacNeil made changes -
            Summary Git plugin can't handle repository URLs containing property references when polling Git plugin can't handle property references in repository URLs when polling
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 160377 ] JNJira + In-Review [ 180332 ]
            mdkf Michael Fowler made changes -
            Link This issue duplicates JENKINS-21886 [ JENKINS-21886 ]
            mdkf Michael Fowler made changes -
            Status Open [ 1 ] Resolved [ 5 ]
            Resolution Duplicate [ 3 ]

              People

              • Assignee:
                ndeloof Nicolas De Loof
                Reporter:
                ronmacneil_ice Ron MacNeil
              • Votes:
                3 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: