AtlatestRepositorysigil-forgejo
sigil-forgejo / tree / src / forgejotopics.sgl
1
;;; (forgejo topics) - Forgejo repository topic management.2
;;;3
;;; List, add, and replace topics on repositories.5
(define-library (forgejo topics)6
(import (sigil core)7
(sigil string)8
(sigil array)9
(forgejo client))11
(export forgejo-list-topics12
forgejo-replace-topics13
forgejo-add-topic14
forgejo-delete-topic)16
(begin18
;;; List topics on a repository.19
;;;20
;;; Returns the topic list response.21
(define (forgejo-list-topics base-url token owner repo)22
(forgejo-get/json token23
(forgejo-api-url base-url "repos" owner repo "topics")))25
;;; Replace all topics on a repository.26
;;;27
;;; topics: a list of topic name strings28
(define (forgejo-replace-topics base-url token owner repo topics)29
(forgejo-put/json token30
(forgejo-api-url base-url "repos" owner repo "topics")31
#{ topics: (list->array topics) }))33
;;; Add a single topic to a repository.34
(define (forgejo-add-topic base-url token owner repo topic)35
(forgejo-put/json token36
(forgejo-api-url base-url "repos" owner repo "topics" topic)37
#{}))39
;;; Remove a single topic from a repository.40
(define (forgejo-delete-topic base-url token owner repo topic)41
(forgejo-delete token42
(forgejo-api-url base-url "repos" owner repo "topics" topic)))44
))