[Bug 1940907] [NEW] [SRU] Authentication/Authorization broken due to GitHub platform changes

Launchpad Bug Tracker 1940907 at bugs.launchpad.net
Fri Sep 17 08:18:21 UTC 2021


You have been subscribed to a public bug by Valters Jansons (sigv):

[Impact]

 * Gist upload (arguable as the core function of the package) is not
functioning. Package versions prior to 5.1.0 provide user's access token
as a query (URL) parameter, however GitHub changes now require it to be
provided as a HTTP(S) header:
https://developer.github.com/changes/2019-11-05-deprecated-passwords-
and-authorizations-api/#authenticating-using-query-parameters

 * --login is not functioning. Package versions prior to 6.0.0 use an
authentication endpoint that has been shut down since November 2020:
https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-
endpoint/

[Test Plan]

 * rm ~/.gist # stored credentials
 * gist-paste --login

Currently (5.0.0-4 focal) fails; output:
Obtaining OAuth2 access_token from github.
GitHub username: username
GitHub password:
RuntimeError: Got Net::HTTPNotFound from gist: {"message":"Not Found","documentation_url":"https://docs.github.com/rest"}

Expected web-based OAuth; output:
Requesting login parameters...
Please sign in at https://github.com/login/device
  and enter code: DEAD-BEEF
Success! https://github.com/settings/connections/applications/402bac389df41f24c62f

 * echo 'class Test {}' > Test.java
 * gist-paste -f Test.java -t java -p -d 'Fast method tester' -R Test.java

Currently (5.0.0-4 focal) fails; output:
Error: Got Net::HTTPBadRequest from gist: {"message":"Must specify access token via Authorization header. https://developer.github.com/changes/2020-02-10-deprecating-auth-through-query-param","documentation_url":"https://docs.github.com/v3/#oauth2-token-sent-in-a-header"}

Expected randomly-generated Gist link; output:
https://gist.github.com/username/eed178872769488d84378b13de8bb698/raw

[Where problems could occur]

 * The SRU requires a rewrite of authentication workflow, with a new
OAuth (web-based) approach.

   The `--login` invocation previously accepted two inputs over stdin,
however it now waits for user to do carry out manual steps based on
instructions displayed (opening a page in web browser, and entering a
code, as visible in Test Plan above). Although automated scripts should
not be invoking `--login`, as the relevant token is stored persistently
in user's home, if in any case they do so then it could halt further
processing of the script.

[Other Info]

 * These changes have been tested as part of package release on prior Ubuntu versions, as well as landing in Debian stable:
   - Gist 5.1.0-1 was published in Groovy (20.10) with relevant HTTP(S) header change.
   - Gist 6.0.0-1 was published in Hirsute (21.04) with relevant changes for OAuth workflow (--login).

** Affects: gist (Ubuntu)
     Importance: Undecided
         Status: Fix Released

** Affects: gist (Ubuntu Bionic)
     Importance: Undecided
         Status: Confirmed

** Affects: gist (Ubuntu Focal)
     Importance: Undecided
         Status: Confirmed


** Tags: amd64 apport-bug focal
-- 
[SRU] Authentication/Authorization broken due to GitHub platform changes
https://bugs.launchpad.net/bugs/1940907
You received this bug notification because you are a member of Ubuntu Sponsors Team, which is subscribed to the bug report.



More information about the Ubuntu-sponsors mailing list