API Gitlab: comment générer le jeton privé
C'est ce que j'ai essayé:
curl http://git.ep.petrobras.com.br/api/v3/session --data-urlencode 'login=myUser&password=myPass'
Réponse:
{"message":"401 Unauthorized"}
source d'informationauteur rodvlopes
Vous devez vous connecter pour publier un commentaire.
Le problème est le
data-urlencode
CURL option. Puisque c'est un HTTP POST, vous n'avez pas besoin de les encoder les données, et est en fait l'encodage de la&
en&
et la cause de votre problème. Au lieu d'utiliser l'--data
option.Aussi, veillez à envoyer des informations d'authentification sur HTTP normal. Il pourrait être facilement interceptées.
C'est de cette façon:
La solution souligné par Steven ne fonctionne pas si votre nom d'utilisateur ou le mot de passe contient des caractères qui doivent être urleencoded. Le
name=content
format urlencode lacontent
partie (laname
partie doit être urlencoded maislogin
etpassword
sont bien).De récupérer la
private_token
vous pouvez rediriger la sortie de curl en jq comme ceci:De cette façon, vous pouvez facilement l'utiliser dans un script shell.
Aussi, comme Steven souligné déjà, veuillez utiliser https au lieu de cela, de sorte que votre mot de passe n'est pas transmis en texte clair sur le réseau.
Remarque: cette procédure ne fonctionne plus comme de GitLab 8.6.0 que le mot de passe par défaut a été supprimé.
Changelog: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG#L205
Je viens de remarquer que cela et a soulevé la question. En laissant cette note ici l'espoir de sauver quelqu'un d'autre peu de temps. Espérons-le, c'est une décision qui sera revu et est revenue.
Discussion/numéro: https://gitlab.com/gitlab-org/gitlab-ce/issues/1980