Jenkins Git分支参数:“ ssh:找不到命令”

时间:2019-03-13 16:33:20

标签: linux git jenkins ssh

使用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时,为什么詹金斯会f倒?

查看日志时,看到以下堆栈异常:

  在

  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)     在java.lang.Thread.run(Thread.java:745)

编辑:如果我删除了branch参数,并用一个简单的用于分支的字符串参数替换它,它会成功获取,因此它似乎是git参数插件的一个错误-也许是在Windows Jenkins从站使用cygwin / ssh时。

0 个答案:

没有答案