Ik heb de oauth2-webstroom geïmplementeerd om access_token van gebruikers van mijn app te krijgen. Met het access_token wil ik de volgende acties uitvoeren:
- Gebruikersinformatie ophalen
- Maak een opslagplaats voor deze gebruiker
- Push code naar deze repo (met git push )
Ik heb al met succes de gebruikersinformatie(1) en maak een repo(2)
Het probleem is dat ik code (3) niet kan pushen, ik krijg een “Ongeautoriseerde” fout.
Het commando dat ik uitvoer:
git remote add origin https://gitlab-ci-token<mytoken>@gitlab.com/myuser/myrepo.git
git push origin master
Antwoord 1, autoriteit 100%
Dat zou je moeten doen
git remote add origin https://<access-token-name>:<access-token>@gitlab.com/myuser/myrepo.git
Merk op dat dit het toegangstoken als platte tekst opslaat in het bestand .git\config
. Om dit te voorkomen, kun je het git-referentiesysteem gebruiken, waarbij je de toegangstokennaam voor “gebruikersnaam” en het toegangstoken voor “wachtwoord” geeft. Dit zoude inloggegevens op een veiligere manier in het git-referentiesysteem moeten opslaan.
Antwoord 2, autoriteit 42%
Het is ook mogelijk om direct te pushen zonder een nieuwe externe repository toe te voegen:
git push https://gitlab-ci-token:<access_token>@gitlab.com/myuser/myrepo.git <branch_name>
Dit kan vooral handig zijn als u pull & push naar verschillende opslagplaatsen.
Antwoord 3
Push met gitlab-ci-token
wordt momenteel niet ondersteund door Gitlab. Er is een open functieverzoek.