Параметр ветки Jenkins Git: "ssh: команда не найдена" - PullRequest
1 голос
/ 13 марта 2019

Используя https://wiki.jenkins.io/display/JENKINS/Git+Parameter+Plugin, когда пользователь в Jenkins переходит на страницу компоновки «сборка с параметрами», список ветвей заменяется на

Команда "git ls-remote -h git@bitbucket.org: myorg / my_repo.git" вернула код состояния 128: стандартный вывод: stderr: /tmp/ssh4348750905358163987.sh: строка 6: ssh: команда не найдена Неустранимый: Не удалось прочитать из удаленного хранилища.

Когда я запускаю ssh на главном сервере Jenkins (то есть, я догадываюсь, откуда запускается команда git ls-remote), я могу просто запустить sudo -u jenkins -- git ls-remote -h git@bitbucket.org:<myorg>/<my_repo>.git и получить список ветвей. Так почему же Дженкинс возмущается, когда git пытается вызвать ssh?

Когда я просматриваю логи, я вижу следующее исключение стека:

в org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn (CliGitAPIImpl.java:2002) в org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials (CliGitAPIImpl.java:1721) в org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials (CliGitAPIImpl.java:1625) в org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials (CliGitAPIImpl.java:1616) в org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getRemoteReferences (CliGitAPIImpl.java:2837) в net.uaznia.lukanus.hudson.plugins.gitparameter.GitParameterDefinition.getBranch (GitParameterDefinition.java:381) в net.uaznia.lukanus.hudson.plugins.gitparameter.GitParameterDefinition.generateContents (GitParameterDefinition.java:310) в net.uaznia.lukanus.hudson.plugins.gitparameter.GitParameterDefinition $ DescriptorImpl.doFillValueItems (GitParameterDefinition.java:622) в java.lang.invoke.MethodHandle.invokeWithArguments (MethodHandle.java:627) в org.kohsuke.stapler.Function $ MethodFunction.invoke (Function.java:343) в org.kohsuke.stapler.Function.bindAndInvoke (Function.java:184) в org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse (Function.java:117) в org.kohsuke.stapler.MetaClass $ 1.doDispatch (MetaClass.java:129) в org.kohsuke.stapler.NameBasedDispatcher.dispatch (NameBasedDispatcher.java:58) в org.kohsuke.stapler.Stapler.tryInvoke (Stapler.java:715) в org.kohsuke.stapler.Stapler.invoke (Stapler.java:845) в org.kohsuke.stapler.MetaClass $ 5.doDispatch (MetaClass.java:248) в org.kohsuke.stapler.NameBasedDispatcher.dispatch (NameBasedDispatcher.java:58) в org.kohsuke.stapler.Stapler.tryInvoke (Stapler.java:715) в org.kohsuke.stapler.Stapler.invoke (Stapler.java:845) в org.kohsuke.stapler.MetaClass $ 5.doDispatch (MetaClass.java:248) в org.kohsuke.stapler.NameBasedDispatcher.dispatch (NameBasedDispatcher.java:58) в org.kohsuke.stapler.Stapler.tryInvoke (Stapler.java:715) в org.kohsuke.stapler.Stapler.invoke (Stapler.java:845) в org.kohsuke.stapler.Stapler.invoke (Stapler.java:649) в org.kohsuke.stapler.Stapler.service (Stapler.java:238) в javax.servlet.http.HttpServlet.service (HttpServlet.java:790) в org.eclipse.jetty.servlet.ServletHolder.handle (ServletHolder.java:860) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1650) в hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:154) в org.jenkinsci.plugins.ssegateway.Endpoint $ SSEListenChannelFilter.doFilter (Endpoint.java:225) в hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:151) в io.jenkins.blueocean.ResourceCacheControl.doFilter (ResourceCacheControl.java:134) в hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:151) в io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter (JwtAuthenticationFilter.java:61) в hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:151) в jenkins.metrics.impl.MetricsFilter.doFilter (MetricsFilter.java:125) в hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:151) вnet.bull.javamelody.MonitoringFilter.doFilter (MonitoringFilter.java:237) в net.bull.javamelody.MonitoringFilter.doFilter (MonitoringFilter.java:214) в net.bull.javamelody.PluginMonitoringFilter.doFilter (PluginMonitoringFilter.java:88) в org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter (HudsonMonitoringFilter.java:114) в hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:151) в hudson.util.PluginServletFilter.doFilter (PluginServletFilter.java:157) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637) в hudson.security.csrf.CrumbFilter.doFilter (CrumbFilter.java:99) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637) в hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:84) в hudson.security.UnwrapSecurityExceptionFilter.doFilter (UnwrapSecurityExceptionFilter.java:51) в hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87) в jenkins.security.ExceptionTranslationFilter.doFilter (ExceptionTranslationFilter.java:117) в hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87) в org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter (AnonymousProcessingFilter.java:125) в hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87) в org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter (RememberMeProcessingFilter.java:142) в hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87) в org.acegisecurity.ui.AbstractProcessingFilter.doFilter (AbstractProcessingFilter.java:271) в hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87) в jenkins.security.BasicHeaderProcessor.doFilter (BasicHeaderProcessor.java:93) в hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87) в org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter (HttpSessionContextIntegrationFilter.java:249) в hudson.security.HttpSessionContextIntegrationFilter2.doFilter (HttpSessionContextIntegrationFilter2.java:67) в hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87) в hudson.security.ChainedServletFilter.doFilter (ChainedServletFilter.java:90) в hudson.security.HudsonFilter.doFilter (HudsonFilter.java:171) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637) в org.kohsuke.stapler.compression.CompressionFilter.doFilter (CompressionFilter.java:49) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637) в hudson.util.CharacterEncodingFilter.doFilter (CharacterEncodingFilter.java:82) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637) в org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter (DiagnosticThreadNameFilter.java:30) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637) в org.eclipse.jetty.servlet.ServletHandler.doHandle (ServletHandler.java:533) в org.eclipse.jetty.server.handler.ScopedHandler.handle (ScopedHandler.java:143) в org.eclipse.jetty.security.SecurityHandler.handle (SecurityHandler.java:524) в org.eclipse.jetty.server.handler.HandlerWrapper.handle (HandlerWrapper.java:132) в org.eclipse.jetty.server.handler.ScopedHandler.nextHandle (ScopedHandler.java:190) в org.eclipse.jetty.server.session.SessionHandler.doHandle (SessionHandler.java:1595) в org.eclipse.jetty.server.handler.ScopedHandler.nextHandle (ScopedHandler.java:188) в org.eclipse.jetty.server.handler.ContextHandler.doHandle (ContextHandler.java:1253) в org.eclipse.jetty.server.handler.ScopedHandler.nextScope (ScopedHandler.java:168) вorg.eclipse.jetty.servlet.ServletHandler.doScope (ServletHandler.java:473) в org.eclipse.jetty.server.session.SessionHandler.doScope (SessionHandler.java:1564) в org.eclipse.jetty.server.handler.ScopedHandler.nextScope (ScopedHandler.java:166) в org.eclipse.jetty.server.handler.ContextHandler.doScope (ContextHandler.java:1155) в org.eclipse.jetty.server.handler.ScopedHandler.handle (ScopedHandler.java:141) в org.eclipse.jetty.server.handler.HandlerWrapper.handle (HandlerWrapper.java:132) в org.eclipse.jetty.server.Server.handle (Server.java:530) в org.eclipse.jetty.server.HttpChannel.handle (HttpChannel.java:347) в org.eclipse.jetty.server.HttpConnection.onFillable (HttpConnection.java:256) в org.eclipse.jetty.io.AbstractConnection $ ReadCallback.succeeded (AbstractConnection.java:279) в org.eclipse.jetty.io.FillInterest.fillable (FillInterest.java:102) в org.eclipse.jetty.io.ChannelEndPoint $ 2.run (ChannelEndPoint.java:124) в org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce (EatWhatYouKill.java:247) в org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce (EatWhatYouKill.java:140) в org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run (EatWhatYouKill.java:131) в org.eclipse.jetty.util.thread.ReservedThreadExecutor $ ReservedThread.run (ReservedThreadExecutor.java:382) в winstone.BoundedExecutorService $ 1.run (BoundedExecutorService.java:77) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) at java.lang.Thread.run (Thread.java:745)

Редактировать: Если я удаляю параметр ветви и заменяю его на простой параметр строки для ветви, он успешно выбирается, поэтому это похоже на ошибку с плагином параметра git - возможно, при использовании cygwin / ssh с ведомыми устройствами Jenkins в Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...