Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vindarel/cl-gitlab

Common Lisp interface to Gitlab's api - mirror of https://gitlab.com/vindarel/cl-gitlab (staling repository, I don't use it)
https://github.com/vindarel/cl-gitlab

common-lisp

Last synced: about 1 month ago
JSON representation

Common Lisp interface to Gitlab's api - mirror of https://gitlab.com/vindarel/cl-gitlab (staling repository, I don't use it)

Awesome Lists containing this project

README

        

¡ don't look ! it's ugly.

* Minimalistic interface to Gitlab's api

A work in progress.

** Authentication

There is no need to authenticate to query public projects.

Otherwise, you will need to manually set the =*private-token*= (until
we implement a better way).

Create a token on your Gitlab profile:
[[https://docs.gitlab.com/ce/user/profile/personal_access_tokens.html][https://docs.gitlab.com/ce/user/profile/personal_access_tokens.html]]
and then:

: (setf gitlab:access-token "secret")

** Using query params

- Note taken on [2018-01-13 sam. 03:08] \\
room for improvement. It's flexible right now.

You can give query parameters as an alist to any request with the
=:params= keyword argument. For example:

: (project-issues "user/project" :params '(("state" . "opened")))

** Endpoints

*** Base function: request

With =request method "path" :params (alist) :data= you can access all
the api.

: (gitlab:request :GET "/projects")

The other functions are only helpers.

*** Getting a project

: (gitlab:project "username/project")

[[https://docs.gitlab.com/ce/api/projects.html#get-single-project][endpoint documentation]].

*** Getting a project's issues

: (project-issues "user/project" :params '(("state" . "opened")))

See the api documentation for the possible parameters.

Inspired by [[https://gitlab.com/tarsius/glab][glab.el]].

It follows a minimalistic approach so you better read Gitlab's API
documentation: https://docs.gitlab.com/ce/api/ The goal is
that if their API changes, our library doesn't break.