[JIRA] (JENKINS-59830) Support google cloud source repos with git client plugin

7 views
Skip to first unread message

mark.earl.waite@gmail.com (JIRA)

unread,
Oct 17, 2019, 3:40:02 PM10/17/19
to jenkinsc...@googlegroups.com
Mark Waite assigned an issue to Unassigned
 
Jenkins / Improvement JENKINS-59830
Support google cloud source repos with git client plugin
Change By: Mark Waite
Assignee: Mark Waite
Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

mark.earl.waite@gmail.com (JIRA)

unread,
Oct 17, 2019, 3:40:03 PM10/17/19
to jenkinsc...@googlegroups.com
Mark Waite created an issue
Issue Type: Improvement Improvement
Assignee: Mark Waite
Components: git-client-plugin
Created: 2019-10-17 19:39
Environment: Jenkins 2.190.1
Git client plugin 3.0.0-beta11
Priority: Major Major
Reporter: Mark Waite

Google cloud source repositories can host Git repositories (optionally copied from Bitbucket or GitHub) on Google cloud infrastructure.

When I configured a Google cloud source repository with my Google account, it offered an SSH url format that is not supported by the Jenkins git client plugin. The URL format is:

mark.earl.waite@gmail.com (JIRA)

unread,
Oct 17, 2019, 3:43:03 PM10/17/19
to jenkinsc...@googlegroups.com
Mark Waite updated an issue
Change By: Mark Waite
Google cloud source repositories can host Git repositories (optionally copied from Bitbucket or GitHub) on Google cloud infrastructure.

When I configured a Google cloud source repository with my Google account, it offered an SSH url format that is not supported by the Jenkins git client plugin.  The URL format is:

{noformat}
ssh://mark.ea...@gmail.com@source.developers.google.com:2022/p/jenkins-plugins-markewaite/r/github_markewaite_git-client-plugin
{noformat}


Note that there is an extra '@' character embedded in the username portion of that ssh URL.  I've never seen the '@' character as an allowed part of the username or password in a URL, but I assume it must be allowed.

When the git client plugin checks the remote server for branches, it detects the branches correctly using the {{git ls-remote}} command.  However, when it attempts to clone the repository, the message is:

{noformat}
Fetching upstream changes from ssh://mark.earl.waite%40gma...@source.developers.google.com:2022/p/jenkins-plugins-markewaite/r/github_markewaite_git-client-plugin
> git fetch --tags --force --progress --prune -- ssh://mark.earl.waite%40gma...@source.developers.google.com:2022/p/jenkins-plugins-markewaite/r/github_markewaite_git-client-plugin +refs/heads/*:refs/remotes/google-cloud/* # timeout=10
ERROR: Error fetching remote repo 'google-cloud'
hudson.plugins.git.GitException: Failed to fetch from ssh://mark.earl.waite%40gma...@source.developers.google.com:2022/p/jenkins-plugins-markewaite/r/github_markewaite_git-client-plugin
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:897)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1112)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1143)
at hudson.scm.SCM.checkout(SCM.java:504)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
at hudson.model.Run.execute(Run.java:1815)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --force --progress --prune -- ssh://mark.earl.waite%40gma...@source.developers.google.com:2022/p/jenkins-plugins-markewaite/r/github_markewaite_git-client-plugin +refs/heads/*:refs/remotes/google-cloud/*" returned status code 128:
stdout:
stderr: Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2372)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1985)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:80)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:563)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:161)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:154)
at hudson.remoting.UserRequest.perform(UserRequest.java:212)
at hudson.remoting.UserRequest.perform(UserRequest.java:54)
at hudson.remoting.Request$2.run(Request.java:369)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Suppressed: hudson.remoting.Channel$CallSiteStackTrace: Remote call to testing-a-jagent
  at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1743)
  at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:357)
  at hudson.remoting.Channel.call(Channel.java:957)
  at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:146)
  at sun.reflect.GeneratedMethodAccessor284.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:132)
  at com.sun.proxy.$Proxy95.execute(Unknown Source)
  at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:895)
  at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1112)
  at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1143)
  at hudson.scm.SCM.checkout(SCM.java:504)
  at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
  at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
  at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
  at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
  at hudson.model.Run.execute(Run.java:1815)
  at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
  at hudson.model.ResourceController.execute(ResourceController.java:97)
  at hudson.model.Executor.run(Executor.java:429)
ERROR: Error fetching remote repo 'google-cloud'
{noformat}

mark.earl.waite@gmail.com (JIRA)

unread,
Oct 17, 2019, 3:45:03 PM10/17/19
to jenkinsc...@googlegroups.com


The issue may be due to the changes in the git plugin that allowed embedded username and password.  The issue may be that the SSH URL is invalid if it contains an embedded '@' character.  More research is needed.
Reply all
Reply to author
Forward
0 new messages