Reputation: 7686
I've created project and repo on my gitlab.com account, generated private key, now I'm trying to do API call to get list of commits.
Now I want to get list of projects via API, from documentation https://docs.gitlab.com/ce/api/projects.html#list-projects
GET /projects
So I'm doing:
curl --header "PRIVATE-TOKEN: XXXXXXX -c" "https://gitlab.com/projects"
And getting 404. I've tried several combinations and can't find correct base URL.
Same for repository commits, documentation https://docs.gitlab.com/ce/api/commits.html says
https://gitlab.example.com/api/v3/projects/5/repository/commits
fine, I'm trying (with myusername/projectname as project id)
https://gitlab.com/api/v3/projects/myusername/projectname/repository/commits
And got 404 as well
Upvotes: 47
Views: 60762
Reputation: 7879
The correct base url for the hosted GitLab is https://gitlab.com/api/v4/
so your request to
GET /projects
would be
curl --header "PRIVATE-TOKEN: XXXXXX" "https://gitlab.com/api/v4/projects"
That would return all projects that are visible to you, including other user's public projects.
If you wish to view just your projects, then you should use the GET /users/:user_id/projects
endpoint, where :user_id
is your user ID that can be found on your GitLab profile page or in the response to your request to GET /user
if you're authenticated.
# Get :user_id from this request
curl --header "PRIVATE-TOKEN: XXXXXX" "https://gitlab.com/api/v4/user"
# See your projects by replacing :user_id with id value from previous request
curl --header "PRIVATE-TOKEN: XXXXXX" "https://gitlab.com/api/v4/users/:user_id/projects"
Also, the project ID is not the same as the project name. You can retrieve the project ID from the response of your request to GET /users/:user_id/projects
, or from the project's settings page.
Upvotes: 64
Reputation: 4328
For me the following request worked:
curl --header "PRIVATE-TOKEN: YOUR_TOKEN" "https://gitlab.com/api/v4/users/YOUR_USER_ID/projects"
Don't know why the request :curl --header "PRIVATE-TOKEN: PRIVATE_TOKEN" "https://gitlab.com/api/v4/projects/"
returned a list with some other public projects.
Another useful request for user info: curl --header "PRIVATE-TOKEN: PRIVATE_TOKEN" "https://gitlab.com/api/v4/user/"
Upvotes: 10
Reputation: 35
https://docs.gitlab.com/ee/api/#basic-usage
try this command : curl "https://gitlab.example.com/api/v4/projects" as given in the document
If you are using version3 of Gitlab then use curl --header "Authorization: Bearer OAUTH-TOKEN" https://gitlab.example.com/api/v3/projects
There is also "python-gitlab" module which will help you get Id from Project-name easily https://python-gitlab.readthedocs.io/en/stable/
Upvotes: 0