An async GitLab API library
Project description
An asynchronous GitLab API library.
This library is based on gidgethub from Brett Cannon, an async GitHub API library.
I liked the concept with the asynchronous and sans-I/O approach and decided to adapt it to the GitLab’s API. All credit to Brett Cannon for the initial library!
Quick start
Here is a complete example of a server that responds to webhooks which will greet the author and say thanks whenever an issue is opened:
from gidgetlab.aiohttp import GitLabBot bot = GitLabBot("beenje") @bot.router.register("Issue Hook", action="open") async def issue_opened_event(event, gl, *args, **kwargs): """Whenever an issue is opened, greet the author and say thanks.""" url = f"/projects/{event.project_id}/issues/{event.object_attributes['iid']}/notes" message = f"Thanks for the report @{event.data['user']['username']}! I will look into it ASAP! (I'm a bot)." await gl.post(url, data={"body": message}) if __name__ == "__main__": bot.run()
Installation
Gidgetlab is available on PyPI.
python3 -m pip install gidgetlab
To install web server support (e.g. for aiohttp, treq, or tornado), specify it as an extra dependency:
python3 -m pip install gidgetlab[aiohttp]
Note that the library is still in alpha development stage.
Goals
The key goal is the same as gidgethub (but for GitLab): to provide an async base library for the GitLab API which performs no I/O of its own (a sans-I/O library).
Another goal is to easily write GitLab bots: applications that run automation on GitLab, using GitLab WebHooks and API. This was inspired by Mariatta PyCon 2018 workshop: Build-a-GitHub-Bot Workshop.
Alternative libraries
If you think you want a different approach to the GitLab API, GitLab maintains a list of libraries.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for gidgetlab-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20890f5fec518fc26c8d0a05c82a235a65ff937caee6e03366695494ea8b92c1 |
|
MD5 | 099e4fb33da80667aa3c88e635fb1d03 |
|
BLAKE2b-256 | 71dedd1ed4825d1de0724e0f916b71af6f288ce0ca9f8f1d1784298d7a75ac20 |