AtlatestRepositorysigil-forgejo

sigil-forgejo / tree / src / forgejoissues.sgl

1;;; (forgejo issues) - Forgejo issue API.
2;;;
3;;; List, create, get, and comment on issues.
4
5(define-library (forgejo issues)
6 (import (sigil core)
7 (sigil string)
8 (forgejo client))
9
10 (export forgejo-list-issues
11 forgejo-get-issue
12 forgejo-create-issue
13 forgejo-create-issue-comment
14 forgejo-list-issue-comments)
16 (begin
18 ;;; List issues for a repository.
19 (define (forgejo-list-issues base-url token owner repo)
20 (forgejo-get/json token
21 (forgejo-api-url base-url "repos" owner repo "issues")))
23 ;;; Get a single issue by number.
24 (define (forgejo-get-issue base-url token owner repo number)
25 (forgejo-get/json token
26 (forgejo-api-url base-url "repos" owner repo "issues"
27 (number->string number))))
29 ;;; Create a new issue.
30 (define (forgejo-create-issue base-url token owner repo title body)
31 (forgejo-post/json token
32 (forgejo-api-url base-url "repos" owner repo "issues")
33 #{ title: title
34 body: body }))
36 ;;; Add a comment to an issue.
37 (define (forgejo-create-issue-comment base-url token owner repo number body)
38 (forgejo-post/json token
39 (forgejo-api-url base-url "repos" owner repo "issues"
40 (number->string number) "comments")
41 #{ body: body }))
43 ;;; List comments on an issue.
44 (define (forgejo-list-issue-comments base-url token owner repo number)
45 (forgejo-get/json token
46 (forgejo-api-url base-url "repos" owner repo "issues"
47 (number->string number) "comments")))
49 ))