netlify / git-gateway

A Gateway to Git APIs
MIT License
400 stars 89 forks source link

Automatically revalidate gitlab Oauth tokens since they expire every 2 hours now. #75

Open fool opened 1 year ago

fool commented 1 year ago

- Do you want to request a feature or report a bug?

While Git Gateway is technically working as intended, changes at GitLab have made that "intended" workflow tedious at best, with access tokens expiring every 2 hours and impacting all users until an administrator re-creates one, after which things work for another 2 hours.

- What is the current behavior?

Currently, as designed, we create a token upon user request and no other time, so for sites using gitlab.com behind git gateway, they need a netlify and gitlab admin to log in every 2 hours to repair this setting. Not really the composable web, if you need a 24x7 ops team to click a button...

(cf https://docs.gitlab.com/ee/integration/oauth_provider.html#access-token-expiration where this is explained)

- If the current behavior is a bug, please provide the steps to reproduce.

Set up git_gateway targeting a gitlab.com repo. Use that successfully for 2 hours, then see it stop working.

- What is the expected behavior?

For other git providers, and gitlab.com last month, the token lasts until revoked. @mraerino suggested that we could choose to build a feature that rotated creds for our users every 2 hours if we wanted to.

Reported by enterprise customer in this helpdesk ticket: https://netlify.zendesk.com/agent/tickets/121251