6 votes

Comment obtenir un jeton d'accès personnel GitLab en ligne de commande ?

Existe-t-il une possibilité d'obtenir un jeton d'accès personnel pour Gitlab API via la ligne de commande plutôt que via l'interface web ? Je travaille sur des tests d'intégration et j'ai besoin d'une interface web. Gitlab Le déploiement dans l'environnement propre fait partie de la mise en place de la session de test. Après le déploiement, l'utilisateur de test effectue un travail avec Gitlab API. Afin d'accéder à l'API, l'utilisateur test doit fournir un jeton d'accès personnel.

J'ai réussi à vider le trafic, et je vois que le jeton est fourni dans un modèle HTML rendu en réponse à POST demande :

00:06:40.616996 IP6 localhost.amanda > localhost.53808: Flags [P.], seq 1:580, ack 1054, win 497, options [nop,nop,TS val 3133641719 ecr 3133641673], length 579
`..U.c.@................................'`.0...y.eIz.....k.....
........HTTP/1.1 302 Found
Server: nginx
Date: Tue, 21 Nov 2017 21:06:40 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 119
Connection: keep-alive
Cache-Control: no-cache
Location: http://localhost:10080/profile/personal_access_tokens
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 88178813-95ad-419a-b56b-5a5ddb183885
X-Runtime: 0.044209
X-Ua-Compatible: IE=edge
X-Xss-Protection: 1; mode=block
X-Accel-Buffering: no

Réponse intérieure profonde :

<input type="text" name="created-personal-access-token" id="created-personal-access-token" value="j1WZujuaKVVEkh8h8Fej" readonly="readonly" class="form-control js-select-on-focus" aria-describedby="created-personal-access-token-help-block" />

Cependant, il semble qu'il soit difficile de POST HTML Form et d'analyser le HTML résultant afin d'obtenir le jeton. Quelqu'un peut-il partager le secret pour bien faire les choses ?

3voto

Vitaly Isaev Points 426

Solution de contournement basée sur l'analyse syntaxique HTML : https://gist.github.com/vitalyisaev2/215f890e75252cd36794221c2debf365

1voto

Sale aussi mais avec la 10.2 la commande api/v4/session a disparu, donc une connexion via l'authentification de base est impossible. Si vous en avez besoin pour des tests d'intégration et que vous pouvez accéder à l'instance gitlab créée via ssh, vous pouvez insérer le jeton via SQL directement, les jetons ne semblent pas être hachés ou cryptés mais en texte clair.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X