-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Job DSL: 1.76
GitHub Branch Source: 2.5.9-SNAPSHOT (commit: 7179854f068f0012b3d1222f6924e8de5d437513)
GitHub Branch Source plugin has introduced unique symbols (not released yet), so finally we are able to configure traits by using Job DSL dynamic API instead of configure block. Unfortunately, ForkPullRequestDiscoveryTrait (gitHubForkDiscovery) is unavailable. For now the only possible option is to still use configure block:
branchSources { branchSource { source { github { apiUri(config.scm.apiUrl) id(config.name) repoOwner(config.scm.organisation) repository(config.scm.repository) repositoryUrl(config.scm.url) configuredByUrl(false) credentialsId(config.scm.credentialsId) traits { gitHubBranchDiscovery { strategyId(3) } gitHubPullRequestDiscovery { strategyId(1) } } } } buildStrategies { skipInitialBuildOnFirstBranchIndexing() } } } configure { def traits = it / 'sources' / 'data' / 'jenkins.branch.BranchSource' / 'source' / 'traits' traits << 'org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait' { strategyId(1) trust(class: 'org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustPermission') } }
List of available traits in Job DSL Dynamic API Vievwer:
- gitHubAgedRefsTrait
- gitHubBranchDiscovery
- gitHubPullRequestDiscovery
- gitHubSshCheckout
- gitHubTagDiscovery
Missing:
- gitHubForkDiscovery ← missing, but possible to execute
I tried:
1)
gitHubForkDiscovery {
strategyId(1)
trust('trustPermission')
}
ERROR: (unknown source) No signature of method: javaposse.jobdsl.plugin.structs.DescribableContext.trust() is applicable for argument types: (java.lang.String) values: [trustPermission] Possible solutions: getAt(java.lang.String), print(java.io.PrintWriter), use([Ljava.lang.Object;), print(java.lang.Object), wait(), dump()
2)
gitHubForkDiscovery { strategyId(1) trust(gitHubTrustPermissions) }
ERROR: (MultibranchJobFactory.groovy, line 89) No such property: gitHubTrustPermissions for class: javaposse.jobdsl.plugin.structs.DescribableContext
3)
gitHubForkDiscovery { strategyId(1) trust(gitHubTrustPermissions()) }
ERROR: (unknown source) No signature of method: javaposse.jobdsl.plugin.structs.DescribableContext.gitHubTrustPermissions() is applicable for argument types: () values: []
4)
gitHubForkDiscovery { strategyId(1) trust { gitHubTrustPermissions() } }
ERROR: (unknown source) No signature of method: javaposse.jobdsl.plugin.structs.DescribableContext.gitHubTrustPermissions() is applicable for argument types: () values: []
5)
gitHubForkDiscovery { strategyId(1) trust(Class.forName('org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustPermission', true, Jenkins.get().pluginManager.uberClassLoader).getDeclaredConstructor().newInstance()) }
ERROR: (unknown source) No signature of method: javaposse.jobdsl.plugin.structs.DescribableContext.trust() is applicable for argument types: (org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustPermission) values: [org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustPermission@3a41ed6e] Possible solutions: print(java.io.PrintWriter), use([Ljava.lang.Object;), print(java.lang.Object), wait(), dump(), grep()
- is blocked by
-
JENKINS-26535 DescribableHelper does not handle wildcards well
-
- Open
-
- is related to
-
JENKINS-61119 Cannot configure Bitbucket ForkPullRequestDiscoveryTrait by using Job DSL dynamic API
-
- Open
-
-
JENKINS-45504 Add @Symbol annotations to traits
-
- Closed
-
- links to
[JENKINS-60874] Cannot configure ForkPullRequestDiscoveryTrait by using Job DSL dynamic API
Issue Type | Original: Task [ 3 ] | New: Bug [ 1 ] |
Environment |
New:
Job DSL: 1.76 GitHub Branch Source: 2.5.9-SNAPSHOT (commit: 7179854f068f0012b3d1222f6924e8de5d437513) |
Link |
New:
This issue relates to |
Link |
Original:
This issue relates to |
Link |
New:
This issue is related to |
Description |
Original:
GitHub Branch Source plugin has introduced unique symbols (not released yet), so finally we are able to configure traits by using Job DSL dynamic API instead of {{configure block}}. Unfortunately, ForkPullRequestDiscoveryTrait ({{gitHubForkDiscovery}}) is unavailable. For now the only possible option is to still use {{configure}} block: {code} branchSources { branchSource { source { github { apiUri(config.scm.apiUrl) id(config.name) repoOwner(config.scm.organisation) repository(config.scm.repository) repositoryUrl(config.scm.url) configuredByUrl(false) credentialsId(config.scm.credentialsId) traits { gitHubBranchDiscovery { strategyId(3) } gitHubPullRequestDiscovery { strategyId(1) } } } } buildStrategies { skipInitialBuildOnFirstBranchIndexing() } } } configure { def traits = it / 'sources' / 'data' / 'jenkins.branch.BranchSource' / 'source' / 'traits' traits << 'org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait' { strategyId(1) trust(class: 'org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustPermission') } } {code} |
New:
GitHub Branch Source plugin has introduced unique symbols (not released yet), so finally we are able to configure traits by using Job DSL dynamic API instead of {{configure block}}. Unfortunately, ForkPullRequestDiscoveryTrait ({{gitHubForkDiscovery}}) is unavailable. For now the only possible option is to still use {{configure}} block: {code} branchSources { branchSource { source { github { apiUri(config.scm.apiUrl) id(config.name) repoOwner(config.scm.organisation) repository(config.scm.repository) repositoryUrl(config.scm.url) configuredByUrl(false) credentialsId(config.scm.credentialsId) traits { gitHubBranchDiscovery { strategyId(3) } gitHubPullRequestDiscovery { strategyId(1) } } } } buildStrategies { skipInitialBuildOnFirstBranchIndexing() } } } configure { def traits = it / 'sources' / 'data' / 'jenkins.branch.BranchSource' / 'source' / 'traits' traits << 'org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait' { strategyId(1) trust(class: 'org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustPermission') } } {code} List of available traits: * gitHubAgedRefsTrait * gitHubBranchDiscovery * gitHubSshCheckout * gitHubTagDiscovery Missing: * gitHubForkDiscovery * gitHubPullRequestDiscovery |
Summary | Original: Cannot configure ForkPullRequestDiscoveryTrait by using Job DSL dynamic API | New: Cannot configure ForkPullRequestDiscoveryTrait and OriginPullRequestDiscoveryTrait by using Job DSL dynamic API |
Remote Link | New: This issue links to "github-branch-source-plugin #183 add Symbol to ForkPullRequestDiscoveryTrait (Web Link)" [ 24339 ] |
Remote Link | New: This issue links to "github-branch-source-plugin #258 add Symbol to OriginPullRequestDiscoveryTrait (Web Link)" [ 24340 ] |