AtlatestRepositoryfjo

fjo / tree / src / woodpeckerpipelines.sgl

1;;; (woodpecker pipelines) - Woodpecker CI pipeline API.
2;;;
3;;; List pipelines, get pipeline details with steps.
4
5(define-library (woodpecker pipelines)
6 (import (sigil core)
7 (sigil string)
8 (woodpecker client))
9
10 (export woodpecker-repo-lookup
11 woodpecker-list-pipelines
12 woodpecker-get-pipeline
13 woodpecker-list-steps
14 woodpecker-get-step-logs)
16 (begin
18 ;;; 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 token
22 (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 token
28 (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 token
33 (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 token
39 (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 token
45 (woodpecker-api-url base-url "repos" (number->string repo-id)
46 "logs" (number->string pipeline-number)
47 (number->string step-id))))
49 ))