GitLab API - How to get private_token using GET with session parameter?

Amar Gautam picture Amar Gautam · Dec 2, 2013 · Viewed 19.6k times · Source

I am using GitLab API v3 to do some operations on my private installation. Using private_token in GET URL is working fine. e.g.

GET http://git.example.com/api/v3/projects?=private_token=xyz123

But in order to make this possible, you need a private_token. There is one sure way to get it - from your account settings. But I want my users to use their email id/ login id and password to retrieve the private key and use it from there for rest of the operations.

I used following GET url and it is doing nothing for me:

GET http://git.example.com/api/v3/session?login=xyzuser&password=xyzpassword

Ideally as per GitLab documentation, I should get a JSON as follows -

{
  "id": 1,
  "username": "john_smith",
  "email": "[email protected]",
  "name": "John Smith",
  "private_token": "dd34asd13as",
  "blocked": false,
  "created_at": "2012-05-23T08:00:58Z",
  "bio": null,
  "skype": "",
  "linkedin": "",
  "twitter": "",
  "dark_scheme": false,
  "theme_id": 1,
  "is_admin": false,
  "can_create_group" : true,
  "can_create_team" : true,
  "can_create_project" : true
}

If I get this, I can get private_token and work from there.

What am I doing wrong?

Answer

Jacob Struiksma picture Jacob Struiksma · Feb 3, 2014

You need to POST the data as stated in the api (http://api.gitlab.org/session.html).

Be aware that if you do this action on a http port (instead of using https) that the password is send in plain text to the server.