Thanks for creating a patch for this 🥰

/Joseph

On Monday, August 19, 2019 at 9:17:45 PM UTC+2, Daniel Spilker wrote:
>
> Hi Parichay,
>
> I meant changing the constructor to
>
> public ForkMergeRequestDiscoveryTrait(int strategyId, SCMHeadAuthority 
> trust) {
>
> until Structs plugin supports parameters with parameterized type. 
>
> I opened a pull request to add some support for parameterized types to 
> Structs plugin:
> https://github.com/jenkinsci/structs-plugin/pull/52
>
> I tested the fix with Job DSL. It will enable the DSL syntax from my 
> previous post.
>
> Regards,
> Daniel
>
>
> On Mon, Aug 19, 2019 at 5:39 PM Parichay Barpanda <[email protected] 
> <javascript:>> wrote:
>
>> Thanks Daniel. But I didn't understand by what you meant "remove the type 
>> parameters". I was able to configure the trait using `configure` block. 
>> https://gist.github.com/baymac/f1a2249a0ec7b999c057056937e752a6 
>>
>> On Saturday, August 17, 2019 at 5:09:03 PM UTC+5:30, Daniel Spilker wrote:
>>>
>>> Hi Parichay,
>>>
>>> the Job DSL script would be this:
>>>
>>> organizationFolder('example') {
>>>   organizations {
>>>     gitLabSCMNavigator {
>>>       projectOwner('test')
>>>       traits {
>>>         gitLabForkDiscovery {
>>>           strategyId(42)
>>>           trust {
>>>             gitLabTrustNobody()
>>>           }
>>>         }
>>>       }
>>>     }
>>>   }
>>> }
>>>
>>> But the script will fail. The problem is caused by the "trust" 
>>> constructor parameter of ForkMergeRequestDiscoveryTrait. Job DSL uses 
>>> the Structs plugin for introspection of Describables. Unfortunately Structs 
>>> does not handle parameter types with generics except for sub classes of 
>>> java.util.Collection. So the trait will not be shown in the API viewer.
>>>
>>> To check if a class is supported by Structs (and Job DSL), run the 
>>> following in the Jenkins script console:
>>>
>>> org.jenkinsci.plugins.structs.describable.DescribableModel.of(io.jenkins.plugins.gitlabbranchsource.ForkMergeRequestDiscoveryTrait)
>>>
>>> The result will be
>>>
>>> ForkMergeRequestDiscoveryTrait(strategyId: int, trust: 
>>> java.lang.UnsupportedOperationException: do not know how to categorize 
>>> attributes of type jenkins.scm.api.trait.SCMHeadAuthority<? super 
>>> io.jenkins.plugins.gitlabbranchsource.GitLabSCMSourceRequest, ? extends 
>>> jenkins.scm.api.mixin.ChangeRequestSCMHead2, ? extends 
>>> jenkins.scm.api.SCMRevision>)
>>>
>>> As a workaround, you can remove the type parameters from the "trust" 
>>> constructor parameter. 
>>>
>>> @Jesse: would it be feasible to fallback to the raw type when a 
>>> parameterized type is detected?
>>>
>>> https://github.com/jenkinsci/structs-plugin/blob/structs-parent-1.20/plugin/src/main/java/org/jenkinsci/plugins/structs/describable/ParameterType.java#L104
>>>
>>> Regards,
>>> Daniel
>>>
>>>
>>> On Fri, Aug 16, 2019 at 3:11 PM Parichay Barpanda <[email protected]> 
>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> I am trying to configure GitLab Branch Source Plugin organizational 
>>>> folder using Job DSL. But unfortunately job dsl api viewer doesn't detect 
>>>> Fork 
>>>> Merge Request Trait 
>>>> <https://github.com/jenkinsci/gitlab-branch-source-plugin/blob/develop/src/main/java/io/jenkins/plugins/gitlabbranchsource/ForkMergeRequestDiscoveryTrait.java>.
>>>>  
>>>> All the detected traits in Job dsl api viewer takes either 
>>>> int/boolean/string values. But in Fork Merge Request Trait the trust field 
>>>> takes an SCMHeadAuthority object. How does one configure Job DSL with fork 
>>>> `change request` trait for any of the branch source plugin?
>>>>
>>>> Can someone help me with figuring out what is wrong here. I have the 
>>>> following cases:
>>>>
>>>> 1. Job DSL doesn't support Fork Merge Request Trait.
>>>>
>>>> 2. There is something wrong with the impl of Fork Merge Request Trait.
>>>>
>>>> 3. Our Job DSL configuration is incorrect (note unable to configure 
>>>> fork merge request in this configuration):
>>>>
>>>> organizationFolder(name) {
>>>>       organizations {
>>>>         displayName(config.displayName)
>>>>         description(orgDescription)
>>>>         gitLabSCMNavigator {
>>>>           projectOwner(config.group)
>>>>           credentialsId('gitlab_ssh_key')
>>>>           serverName('git.3shape.local')
>>>>           traits {
>>>>             subGroupProjectDiscoveryTrait() // discover projects 
>>>> inside subgroups
>>>>             gitLabBranchDiscovery {
>>>>               strategyId(3) // discover all branches
>>>>             }
>>>>             originMergeRequestDiscoveryTrait {
>>>>               strategyId(1) // discover MRs and merge them with target 
>>>> branch
>>>>             }
>>>>             gitLabTagDiscovery() // discover tags
>>>>             gitLFSPullTrait()
>>>>           }
>>>>         }
>>>>       }
>>>>       orphanedItemStrategy {
>>>>         discardOldItems {
>>>>           daysToKeep(7)
>>>>           numToKeep(10)
>>>>         }
>>>>       }
>>>>       if (!isSandbox()) {
>>>>         triggers {
>>>>           periodicFolderTrigger {
>>>>             interval('1d')
>>>>           }
>>>>         }
>>>>       }
>>>>       projectFactories {
>>>>         workflowMultiBranchProjectFactory {
>>>>           scriptPath('Jenkinsfile')
>>>>         }
>>>>       }
>>>>     }
>>>>
>>>> 4. or something else?
>>>>
>>>> Thanks and Regards,
>>>> Parichay
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Jenkins Developers" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/jenkinsci-dev/ba6639f7-a735-4e2f-9e69-61f58762d7fa%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/jenkinsci-dev/ba6639f7-a735-4e2f-9e69-61f58762d7fa%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Jenkins Developers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jenkinsci-dev/331dfda5-1c82-45bb-b508-1c3658236444%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/jenkinsci-dev/331dfda5-1c82-45bb-b508-1c3658236444%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/ca4ce035-38e9-43d6-b53e-734c9e92aeca%40googlegroups.com.

Reply via email to