Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-52266

Unable to use credentials in groovy class

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Duplicate
    • Component/s: job-dsl-plugin
    • Labels:
      None
    • Environment:
      jobdsl 1.67
    • Similar Issues:

      Description

      We'd like to make use of credentials stored in Jenkins from a groovy class that's part of our job DSL scripts. Unfortunately this seems to be impossible since 1.43 (couldn't actually find a reference to this in the code/changelog, but did find this SO answer https://stackoverflow.com/a/40474755 ) because it's impossible to import the necessary classes.

      This simple example:

      def creds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(    com.cloudbees.plugins.credentials.common.StandardUsernameCredentials.class,    Jenkins.instance,    null,    null);for (c in creds) {     println(c.id + ": " + c.description)}

      from https://wiki.jenkins.io/display/JENKINS/Printing+a+list+of+credentials+and+their+IDs

      works fine in the script console but fails when putting it in a job DSL script.

      This means the only way for us to provide these credentials is as hardcoded strings in our job DSL scripts, which is of course not acceptable.

        Attachments

          Issue Links

            Activity

            Show
            daspilker Daniel Spilker added a comment - See also https://github.com/jenkinsci/job-dsl-plugin/wiki/Handling-Credentials
            Hide
            simonvanderveldt Simon van der Veldt added a comment - - edited

            Daniel Spilker

            I created this issues after reading that page multiple times and trying out different things, none of which work.

            The latter 2 options are insecure, so obviously not an option and the 1st one is the reason I created this issue, credentials() only works in certain places like when defining a git remote, not everywhere/in groovy classes.

            Would the linked issue solve this problem?
            It seems easier to just make credentials() work everywhere?

            Show
            simonvanderveldt Simon van der Veldt added a comment - - edited Daniel Spilker I created this issues after reading that page multiple times and trying out different things, none of which work. The latter 2 options are insecure, so obviously not an option and the 1st one is the reason I created this issue, credentials() only works in certain places like when defining a git remote, not everywhere/in groovy classes. Would the linked issue solve this problem? It seems easier to just make credentials() work everywhere?
            Hide
            zechtitus David Laidlaw added a comment -

            I found I was running into same issue - the groovy script worked fine when testing with the in script editor.
            what made it finally work for me was adding 'import jenkins.model.*' to top of script - viola all my calls with the 

             
            com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials
            were working again

            Show
            zechtitus David Laidlaw added a comment - I found I was running into same issue - the groovy script worked fine when testing with the in script editor. what made it finally work for me was adding 'import jenkins.model.*' to top of script - viola all my calls with the    com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials were working again

              People

              Assignee:
              daspilker Daniel Spilker
              Reporter:
              simonvanderveldt Simon van der Veldt
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: