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.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2df10a59036ba18f024979c809f9e7b7e28c5bad9a86d35fa15e2a6d81363bd |
|
MD5 | ae80363515112e4146f7b42784f5cd2f |
|
BLAKE2b-256 | 2eeb1d69d85d7b0a200011ace1f0396868914265b2e12a734cec7d47366c885d |