elenakrittik / gdtk

A versatile Godot toolkit with aim on speed, extensibility and friendliness.
5 stars 2 forks source link

Solve the GitHub authentication problem. #137

Open elenakrittik opened 1 month ago

elenakrittik commented 1 month ago

GitHub's GraphQL API has draconian limits when unauthorized. Adding a separate fetch method for unauthenticated users is highly undesirable, so we need to either find a way to reduce "point cost" of our requests (possibly by not fetching versions beyond 3.x or even 3.4?) or provide a method to set the authentication token manually (also highly undesirable because of maintenance costs, security questions and inconvenience for the user, but viable as a last resort).

(Currently, gdtk expects the user to have gh installed and set up)

elenakrittik commented 1 month ago

As per this discussion (thanks to \<at> shiftinv for the answer), the graphql api does not allow unauthenticated requests at all. This means that our best hope is to make REST api requests and only deserialize stuff that we actually need.

elenakrittik commented 1 month ago

On one hand, we will use excessive bandwidth. On the other, it's really nothing compared to the final download size. This will also drop dependency on cynic, which should reduce dependency count by a great number. (It also uses logos for parsing, which is worrying because our patches are not exactly stable and it can break at any time)