Monorepo for Tangled
tangled.org
1// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
2
3package tangled
4
5// schema: sh.tangled.ci.triggerPipeline
6
7import (
8 "context"
9 "encoding/json"
10 "fmt"
11
12 "github.com/bluesky-social/indigo/lex/util"
13)
14
15const (
16 CiTriggerPipelineNSID = "sh.tangled.ci.triggerPipeline"
17)
18
19// CiTriggerPipeline_Input is the input argument to a sh.tangled.ci.triggerPipeline call.
20type CiTriggerPipeline_Input struct {
21 // repo: Target repository DID. Auth is checked against this repo.
22 Repo string `json:"repo" cborgen:"repo"`
23 // trigger: Trigger metadata for this dispatch.
24 Trigger *CiTriggerPipeline_Input_Trigger `json:"trigger" cborgen:"trigger"`
25 // workflows: Workflow names to run. When not provided, every dispatchable workflow is run.
26 Workflows []string `json:"workflows,omitempty" cborgen:"workflows,omitempty"`
27}
28
29// Trigger metadata for this dispatch.
30type CiTriggerPipeline_Input_Trigger struct {
31 CiTrigger_Manual *CiTrigger_Manual
32 CiTrigger_PullRequest *CiTrigger_PullRequest
33}
34
35func (t *CiTriggerPipeline_Input_Trigger) MarshalJSON() ([]byte, error) {
36 if t.CiTrigger_Manual != nil {
37 t.CiTrigger_Manual.LexiconTypeID = "sh.tangled.ci.trigger#manual"
38 return json.Marshal(t.CiTrigger_Manual)
39 }
40 if t.CiTrigger_PullRequest != nil {
41 t.CiTrigger_PullRequest.LexiconTypeID = "sh.tangled.ci.trigger#pullRequest"
42 return json.Marshal(t.CiTrigger_PullRequest)
43 }
44 return nil, fmt.Errorf("cannot marshal empty enum")
45}
46func (t *CiTriggerPipeline_Input_Trigger) UnmarshalJSON(b []byte) error {
47 typ, err := util.TypeExtract(b)
48 if err != nil {
49 return err
50 }
51
52 switch typ {
53 case "sh.tangled.ci.trigger#manual":
54 t.CiTrigger_Manual = new(CiTrigger_Manual)
55 return json.Unmarshal(b, t.CiTrigger_Manual)
56 case "sh.tangled.ci.trigger#pullRequest":
57 t.CiTrigger_PullRequest = new(CiTrigger_PullRequest)
58 return json.Unmarshal(b, t.CiTrigger_PullRequest)
59
60 default:
61 return nil
62 }
63}
64
65// CiTriggerPipeline_Output is the output of a sh.tangled.ci.triggerPipeline call.
66type CiTriggerPipeline_Output struct {
67 // pipeline: AT-URI of the created pipeline
68 Pipeline string `json:"pipeline" cborgen:"pipeline"`
69}
70
71// CiTriggerPipeline calls the XRPC method "sh.tangled.ci.triggerPipeline".
72func CiTriggerPipeline(ctx context.Context, c util.LexClient, input *CiTriggerPipeline_Input) (*CiTriggerPipeline_Output, error) {
73 var out CiTriggerPipeline_Output
74 if err := c.LexDo(ctx, util.Procedure, "application/json", "sh.tangled.ci.triggerPipeline", nil, input, &out); err != nil {
75 return nil, err
76 }
77
78 return &out, nil
79}