Git change log plugin error RevisionSyntaxException in pipeline
Closed this issue · 10 comments
-
Plugin version - 2.6
-
Jenkins version - 2.117
-
Configuration:
def changelogString = gitChangelog from: [type: 'COMMIT', value: "${last}"], returnType: 'CONTEXT', template: '''
<h1> Git Changelog changelog </h1>
Changelog of Git Changelog.
{{#tags}}
{{name}}
{{#commits}}
{{hash}} {{authorName}} {{commitTime}}
{{{messageTitle}}}
{{#messageBodyItems}}
<li> {{.}}</li>
{{/messageBodyItems}}
{{/commits}}
{{/tags}}''', to: [type: 'COMMIT', value: "${previous}"]
currentBuild.description = changelogString -
Expected result: successful job with changelog in the description.
-
Actual result: failed job and no changelog in the description.
-
Build Logs:
last: a8b43357b4bad35cf5f43315b087a00a8551ae5e # debug string
Previous: a8b43357b4bad35cf5f43315b087a00a8551ae5e # debug string
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (gather_changelog)
[Pipeline] gitChangelog
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
org.eclipse.jgit.errors.RevisionSyntaxException:a8b43357b4bad35cf5f43315b087a00a8551ae5e
at org.eclipse.jgit.lib.Repository.resolve(Repository.java:755)
at org.eclipse.jgit.lib.Repository.resolve(Repository.java:435)
at se.bjurr.gitchangelog.internal.git.GitRepo.getCommit(GitRepo.java:99)
Caused: se.bjurr.gitchangelog.api.exceptions.GitChangelogRepositoryException:
at se.bjurr.gitchangelog.internal.git.GitRepo.getCommit(GitRepo.java:101)
at se.bjurr.gitchangelog.api.GitChangelogApi.getId(GitChangelogApi.java:480)
at se.bjurr.gitchangelog.api.GitChangelogApi.getChangelog(GitChangelogApi.java:429)
at se.bjurr.gitchangelog.api.GitChangelogApi.getChangelog(GitChangelogApi.java:77)
at org.jenkinsci.plugins.gitchangelog.steps.GitChangelogStep.perform(GitChangelogStep.java:401)
at org.jenkinsci.plugins.gitchangelog.steps.GitChangelogStep.access$000(GitChangelogStep.java:47)
at org.jenkinsci.plugins.gitchangelog.steps.GitChangelogStep$1$1.call(GitChangelogStep.java:325)
at hudson.FilePath.act(FilePath.java:1096)
at org.jenkinsci.plugins.gitchangelog.steps.GitChangelogStep$1.run(GitChangelogStep.java:329)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1$1.call(SynchronousNonBlockingStepExecution.java:49)
at hudson.security.ACL.impersonate(ACL.java:290)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1.run(SynchronousNonBlockingStepExecution.java:46)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
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)
Finished: FAILURE
What happens if you change:
def changelogString = gitChangelog from: [type: 'COMMIT', value: "${last}"], returnType: 'CONTEXT',
To:
def changelogString = gitChangelog from: [type: 'COMMIT', value: last.trim()], returnType: 'CONTEXT',
?
@tomasbjerre
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified field org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper description
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.unclassifiedField(SandboxInterceptor.java:397)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onSetProperty(SandboxInterceptor.java:235)
at org.kohsuke.groovy.sandbox.impl.Checker$7.call(Checker.java:344)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedSetProperty(Checker.java:351)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.setProperty(SandboxInvoker.java:33)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawSet(PropertyAccessBlock.java:24)
at WorkflowScript.run(WorkflowScript:30)
at cps.transform(Native Method)
at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.set(PropertyishBlock.java:88)
at com.cloudbees.groovy.cps.impl.AssignmentBlock$ContinuationImpl.assignAndDone(AssignmentBlock.java:70)
at sun.reflect.GeneratedMethodAccessor446.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
at com.cloudbees.groovy.cps.impl.LocalVariableBlock$LocalVariable.get(LocalVariableBlock.java:39)
at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
at com.cloudbees.groovy.cps.impl.LocalVariableBlock.evalLValue(LocalVariableBlock.java:28)
at com.cloudbees.groovy.cps.LValueBlock$BlockImpl.eval(LValueBlock.java:55)
at com.cloudbees.groovy.cps.LValueBlock.eval(LValueBlock.java:16)
at com.cloudbees.groovy.cps.Next.step(Next.java:83)
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122)
at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261)
at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:19)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:35)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:32)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:32)
at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:331)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:82)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:243)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:231)
at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
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)
But there is not pending approval scripts in scriptApproval
Also "last" variable creates like this.
sh 'git rev-parse HEAD > lastBuild'
last = readFile "./lastBuild"
You must make sure the RejectedAccessException
is not caught in your pipeline. Just throw it or else Jenkins will not create anything to approve.
How do you refer to description
? Do you use currentBuild.description = ...
?
yes
def changelogString = gitChangelog from: [type: 'COMMIT', value: last.trim()], returnType: 'CONTEXT', template: ''' ''' currentBuild.description = changelogString
https://issues.jenkins-ci.org/browse/JENKINS-45308
Jess writes:
unclassified errors do not indicate that some signature is being rejected. They indicate that Jenkins cannot figure out what signature you were even trying to call.
Job now green, but in the description i see weird output.
se.bjurr.gitchangelog.api.model.Changelog@41e41fab
change:
returnType: 'CONTEXT'
to:
returnType: 'STRING'
Thanks now everything is working fine, greatly appreciate it.