Uploaded image for project: 'Maven SCM'
  1. Maven SCM
  2. SCM-826

Allow multiple identities on same SCM host

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Not A Problem
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: maven-plugin
    • Labels:
      None

      Description

      It is no longer uncommon for a developer to have several identities on a single SCM host (just think of sites such as GitHub and BitBucket).

      The current scheme for centralizing credentials is to put them in settings.xml and then Maven SCM Plugin will match the host name in <scm> section of the POM with the <id> section from <server> in settings.xml.

      As far as I know (pretty much undocumented) this scheme will currently only work for a single identity at the VCS host.

      My proposal is to expand on the current scheme so that it will allow some form of longest match which would include a potential prefixed username in the SCM URL (e.g. john@github.com) or matching on the URL path (github.com/apache rather than just matching on the hostname itself).

      Here's an example of how I envisage it:

      <settings>
        <servers>
          <!-- Would match any GitHub URL with user1 prefixed in URL -->
          <server>
            <id>user1@github.com</id>
            <username>user1</username>
            <password>mysecret</password>
          </server>
      
          <!-- Would match any GitHub URL with user2 prefixed in URL -->
          <server>
            <id>user2@github.com</id>
            <username>user2</username>
            <password>mysecret</password>
          </server>
      
          <!-- Would match URLs from host github.com where path 
                 is 'apache' and also user2 is prefixed in URL -->
          <server>
            <id>user2@github.com/apache</id>
            <username>user2</username>
            <password>mysecret</password>
          </server>
      
          <!-- default -->
          <server>
            <id>github.com</id>
            <username>user1</username>
            <password>mysecret</password>
          </server>
      

      This enhancement would be completely backwards compatible, is simple to implement and will solve a lot of use cases in one go.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                phansson phansson
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: