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

Credential icon names should be extracted as string constants

    Details

    • Similar Issues:

      Description

      I would like my credential provider's implementations of the standard credential types to use the same icons as the built-in disk credentials provider, since this follows user expectations. (Indeed a user of my provider has filed a bug because they differ.)

      But although the credential icons seem to be provided centrally, the icon class name strings are not available centrally (as static constants). Instead they are returned inline in the disk credentials provider descriptors. For example:

      public class UsernamePasswordCredentialsImpl 
          extends BaseStandardCredentials
          implements StandardUsernamePasswordCredentials {
      
          // ...
      
          @Extension(ordinal = 1)
          public static class DescriptorImpl extends BaseStandardCredentialsDescriptor {
      
              @Override
              public String getIconClassName() {
                  // We can't access this from downstream providers
                  return "icon-credentials-userpass";
              }
          }
      

      This means the only way to use those strings in downstream credential providers is to copy and paste them. Icon rendering will break if the name strings change in future.

      Solution: The icon class names should be available as public static string constants somewhere in the credentials plugin.

        Attachments

          Issue Links

            Activity

            Hide
            chriskilding Chris Kilding added a comment -

            I suppose the same also applies to the credential display names (which are also inlined in the credential descriptor methods), if we want downstream credential providers to be able to share them as well. The i18n makes that a bit trickier.

            Show
            chriskilding Chris Kilding added a comment - I suppose the same also applies to the credential display names (which are also inlined in the credential descriptor methods), if we want downstream credential providers to be able to share them as well. The i18n makes that a bit trickier.

              People

              • Assignee:
                Unassigned
                Reporter:
                chriskilding Chris Kilding
              • Votes:
                2 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated: