AtlatestRepositoryfjo
fjo / tree / src / woodpeckerpipelines.sgl
1
;;; (woodpecker pipelines) - Woodpecker CI pipeline API.2
;;;3
;;; List pipelines, get pipeline details with steps.5
(define-library (woodpecker pipelines)6
(import (sigil core)7
(sigil string)8
(woodpecker client))10
(export woodpecker-repo-lookup11
woodpecker-list-pipelines12
woodpecker-get-pipeline13
woodpecker-list-steps14
woodpecker-get-step-logs)16
(begin18
;;; Look up a Woodpecker repo by its full name (e.g. "owner/repo").19
;;; Returns the repo object including its numeric id.20
(define (woodpecker-repo-lookup base-url token full-name)21
(woodpecker-get/json token22
(woodpecker-api-url base-url "repos" "lookup" full-name)))24
;;; List recent pipelines for a repo.25
;;; repo-id is the numeric Woodpecker repo ID.26
(define (woodpecker-list-pipelines base-url token repo-id)27
(woodpecker-get/json token28
(woodpecker-api-url base-url "repos" (number->string repo-id) "pipelines")))30
;;; Get a specific pipeline by number.31
(define (woodpecker-get-pipeline base-url token repo-id number)32
(woodpecker-get/json token33
(woodpecker-api-url base-url "repos" (number->string repo-id)34
"pipelines" (number->string number))))36
;;; List steps for a pipeline.37
(define (woodpecker-list-steps base-url token repo-id number)38
(woodpecker-get/json token39
(woodpecker-api-url base-url "repos" (number->string repo-id)40
"pipelines" (number->string number) "steps")))42
;;; Get logs for a specific step.43
(define (woodpecker-get-step-logs base-url token repo-id pipeline-number step-id)44
(woodpecker-get/json token45
(woodpecker-api-url base-url "repos" (number->string repo-id)46
"logs" (number->string pipeline-number)47
(number->string step-id))))49
))