Vincent's Blog

Git en Oauth

Gepubliceerd op

Categorie: misc

Tags: git oauth

Ik gebruik al een hele tijd mijn eigen Forgejo instance, maar omdat ik deze sinds kort niet meer op een VPS host maar op een van mijn raspberrypi's thuis zat ik met een probleem: Ik kan met een cloudflare tunnel enkel HTTP forwarden (technisch gezien kan je ook andere poorten doen, maar dan heb je ook een tunnel nodig op je PC). Hierdoor kan ik geen SSH meer gebruiken voor git, wat geen probleem bleek te zijn.

De klassieke manier om HTTP authenticatie op te slaan is met de git credential store. Deze heeft echter als groot nadeel dat je access token hiermee in plain tekst word opgeslagen.

Gelukkig ondersteunt forgejo (en de meeste andere git-servers/providers) ook OAuth voor authenticatie. Met git-credential-oauth kunnen we zonder problemen met OAuth onze git acties uitvoeren.

De configuratie die ze zelf aanraden / gebruiken in de readme slaat je tokes op in de cache voor 6 uur, wat wilt zeggen dat je eens per 6 uur (of sneller als je een reboot doet bijvoorbeeld) bij een git clone, pull, push etc even automatisch een webbrowser te zien krijgt om je aan te melden.

Helaas moet ik op servers wel nog steeds de credential store gebruiken, aangezien forgejo nog niet de Oauth -device flow ondersteund.