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

github is deprecating basic authentication using password

    Details

    • Similar Issues:

      Description

      You recently used a password to access an endpoint through the GitHub API using okhttp/2.7.5. We will deprecate basic authentication using password to this endpoint soon:

      https://api.github.com/repositories/155774655

      We recommend using a personal access token (PAT) with the appropriate scope to access this endpoint instead. Visit https://github.com/settings/tokens for more information.

      This might be just something that admins need to deal w/, but it would be helpful if there was a migration page explaining what to do from the jenkins side.

      (it isn't particularly obvious to me)

        Attachments

          Activity

          Hide
          markewaite Mark Waite added a comment -

          Maybe you're using the actual password from another location or through a different credential? I've not received any warnings from GitHub for my https repository access. I'll continue watching my mailbox in case it arrives.

          Show
          markewaite Mark Waite added a comment - Maybe you're using the actual password from another location or through a different credential? I've not received any warnings from GitHub for my https repository access. I'll continue watching my mailbox in case it arrives.
          Hide
          jsoref Josh Soref added a comment - - edited

          Ok, for us, there were apparently two items. I've switched things over to the other one. Hopefully that will make the alert go away.

          But this experience was painful.

          One thing that would help immensely is the ability to search for credentials whose password matches an entered value. Expected results should only include passwords the searching user is allowed to use. Had I been able to do that, I could have quickly identified the problem.

          Fwiw, the best I've managed is:

          admin:org, admin:public_key, admin:repo_hook, read:user, repo 

          We had credentials of:

          repo 
          admin:repo_hook, repo 

          But they weren't sufficient for us.

          Show
          jsoref Josh Soref added a comment - - edited Ok, for us, there were apparently two items. I've switched things over to the other one. Hopefully that will make the alert go away. But this experience was painful. One thing that would help immensely is the ability to search for credentials whose password matches an entered value. Expected results should only include passwords the searching user is allowed to use. Had I been able to do that, I could have quickly identified the problem. Fwiw, the best I've managed is: admin:org, admin:public_key, admin:repo_hook, read:user, repo We had credentials of: repo admin:repo_hook, repo But they weren't sufficient for us.
          Hide
          albertski Albert Jankowski added a comment - - edited

          Mark Waite I did the following:

          • Created personal token in Github
          • Created credentials in Jenkins: username is username and password is the Github token
          • Now I navigate to Manage Jenkins -> Configure System -> Github
          • Under credentials, I don't see the new credentials I created in one of the previous steps (I'm guessing because it was username and password and it only shows items with keys only)

          Also, I did try:

          • Advance -> Manage Additional Github Actions -> Convert login and password to token
          • When I create the token from the credentials I get the following error:
            Can't create GH token - {"message":"This API can only be accessed with username and password Basic Auth","documentation_url":"https://developer.github.com/v3"}
            
          • When I create token from login and password (username = username, password = token) I get:
            Can't create GH token for xenomedia-deploy - {"message":"This API can only be accessed with username and password Basic Auth","documentation_url":"https://developer.github.com/v3"}
            
          • When I create token from login and password (actual username and password)
            Can't create GH token for username - null
            

          Any idea what I am doing wrong? You mentioned that this was working for you.

          Show
          albertski Albert Jankowski added a comment - - edited Mark Waite I did the following: Created personal token in Github Created credentials in Jenkins: username is username and password is the Github token Now I navigate to Manage Jenkins -> Configure System -> Github Under credentials, I don't see the new credentials I created in one of the previous steps (I'm guessing because it was username and password and it only shows items with keys only) Also, I did try: Advance -> Manage Additional Github Actions -> Convert login and password to token When I create the token from the credentials I get the following error: Can't create GH token - { "message" : "This API can only be accessed with username and password Basic Auth" , "documentation_url" : "https: //developer.github.com/v3" } When I create token from login and password (username = username, password = token) I get: Can't create GH token for xenomedia-deploy - { "message" : "This API can only be accessed with username and password Basic Auth" , "documentation_url" : "https: //developer.github.com/v3" } When I create token from login and password (actual username and password) Can't create GH token for username - null Any idea what I am doing wrong? You mentioned that this was working for you.
          Hide
          markewaite Mark Waite added a comment - - edited

          Albert Jankowski the technique that works on my Jenkins server is to use the GitHub personal access token to define a Secret text credential, then use that in the Manage Jenkins -> GitHub section. I was personally surprised when that worked, since I've been conditioned to use one of two types of credentials to interact with GitHub, either private key (for ssh protocol) or username/password (for https). Secret text is a third type and that "Manage Jenkins" field for GitHub is the only place where I've used it as far as I remember.

          Show
          markewaite Mark Waite added a comment - - edited Albert Jankowski the technique that works on my Jenkins server is to use the GitHub personal access token to define a Secret text credential, then use that in the Manage Jenkins -> GitHub section. I was personally surprised when that worked, since I've been conditioned to use one of two types of credentials to interact with GitHub, either private key (for ssh protocol) or username/password (for https). Secret text is a third type and that "Manage Jenkins" field for GitHub is the only place where I've used it as far as I remember.
          Hide
          albertski Albert Jankowski added a comment -

          Thanks Mark Waite. Adding just the personal access token as Secret Text did work. I'll see if I get an alert of deprecated authentication.

          Show
          albertski Albert Jankowski added a comment - Thanks Mark Waite . Adding just the personal access token as Secret Text did work. I'll see if I get an alert of deprecated authentication.

            People

            • Assignee:
              lanwen Kirill Merkushev
              Reporter:
              jsoref Josh Soref
            • Votes:
              2 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated: