Gitalb api
Jump to navigation
Jump to search
Basic API Calls for Gitlab
curl -L "https://gitlab.iwillfearnoevil.com/api/v4/projects" | jq '.'
Partial return:
{
"id": 17,
"description": "Find out all the things when invoked",
"name": "discovery",
"name_with_namespace": "monitoring / discovery",
"path": "discovery",
"path_with_namespace": "monitoring/discovery",
"created_at": "2016-06-18T21:35:07.253Z",
"default_branch": "master",
"tag_list": [],
"topics": [],
"ssh_url_to_repo": "git@gitlab01.iwillfearnoevil.com:monitoring/discovery.git",
"http_url_to_repo": "https://gitlab01.iwillfearnoevil.com/monitoring/discovery.git",
"web_url": "https://gitlab01.iwillfearnoevil.com/monitoring/discovery",
"readme_url": null,
"avatar_url": null,
"forks_count": 0,
"star_count": 0,
"last_activity_at": "2016-06-18T21:57:23.124Z",
"namespace": {
"id": 4,
"name": "monitoring",
"path": "monitoring",
"kind": "group",
"full_path": "monitoring",
"parent_id": null,
"avatar_url": null,
"web_url": "https://gitlab01.iwillfearnoevil.com/groups/monitoring"
}
}
Working Example
This is using an APPLICATION PAT, not a user PAT. Issues seem to arise with user PAT. Likely issue with missed setting int GUI.
curl -s -q --request GET --header "PRIVATE-TOKEN: <TOKEN>" -L "https://gitlab.iwillfearnoevil.com/api/v4/notification_settings" | jq '.'
{
"level": "participating",
"notification_email": "project56_bot@noreply.gitlab01.iwillfearnoevil.com"
}
Pulling Snippets
curl -s -q --request GET --header "PRIVATE-TOKEN: <TOKEN>" -L "https://gitlab.iwillfearnoevil.com/api/v4/snippets/1" | jq '.'
{
"id": 1,
"title": "bash getopts",
"description": null,
"visibility": "public",
"updated_at": "2016-06-19T02:20:53.011Z",
"created_at": "2016-06-19T02:20:53.011Z",
"project_id": null,
"web_url": "https://gitlab01.iwillfearnoevil.com/-/snippets/1",
"raw_url": "https://gitlab01.iwillfearnoevil.com/-/snippets/1/raw",
"ssh_url_to_repo": "git@gitlab01.iwillfearnoevil.com:snippets/1.git",
"http_url_to_repo": "https://gitlab01.iwillfearnoevil.com/snippets/1.git",
"author": {
"id": 2,
"username": "chubbard",
"name": "Chris Hubbard",
"state": "active",
"avatar_url": "https://secure.gravatar.com/avatar/cf780bb1a19cb5dc118c6b3c5a7e8f9c?s=80&d=identicon",
"web_url": "https://gitlab01.iwillfearnoevil.com/chubbard"
},
"file_name": "snippetfile1.txt",
"files": [
{
"path": "snippetfile1.txt",
"raw_url": "https://gitlab01.iwillfearnoevil.com/-/snippets/1/raw/master/snippetfile1.txt"
}
]
}
Gitlab Alerts
- Create a webhook in Project >> Settings >> Monitor >> Alerts
- You will need both the URL, AND the key
- Success returns json: [{"iid":2,"title":"Incident title"}]
- curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer ${KEY}" -L ${URL} --data '@test.json'