diff --git a/genqlient.graphql b/genqlient.graphql index 12e2b80..5bf5e9a 100644 --- a/genqlient.graphql +++ b/genqlient.graphql @@ -22,6 +22,31 @@ query GetCloneCredentials { } }  +query GetPipeline( + $id: String!, +) { + Pipeline( + id: $id, + ) { + id, + name, + url, + pollInterval, + cloneCredential { + id, + name, + type, + }, + runs { + id, + inProgress, + result, + buildOutput, + stdout, + stderr, + } + } +}  mutation CreatePipeline( $name: String!, diff --git a/go.mod b/go.mod index a29c87c..4584f76 100644 --- a/go.mod +++ b/go.mod @@ -3,16 +3,13 @@ module git.ohea.xyz/cursorius/tui go 1.20  require ( + github.com/Khan/genqlient v0.5.0 github.com/charmbracelet/bubbles v0.15.0 github.com/charmbracelet/bubbletea v0.23.2 github.com/charmbracelet/lipgloss v0.6.0 )  require ( - github.com/Khan/genqlient v0.5.0 // indirect - github.com/agnivade/levenshtein v1.1.1 // indirect - github.com/alexflint/go-arg v1.4.2 // indirect - github.com/alexflint/go-scalar v1.0.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect github.com/aymanbagabas/go-osc52 v1.2.1 // indirect github.com/containerd/console v1.0.3 // indirect @@ -27,12 +24,8 @@ require ( github.com/rivo/uniseg v0.2.0 // indirect github.com/sahilm/fuzzy v0.1.0 // indirect github.com/vektah/gqlparser/v2 v2.4.5 // indirect - golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab // indirect golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect golang.org/x/text v0.3.7 // indirect - golang.org/x/tools v0.1.10 // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/go.sum b/go.sum index 5c4ba8d..3c5c5da 100644 --- a/go.sum +++ b/go.sum @@ -4,12 +4,10 @@ github.com/Khan/genqlient v0.5.0 h1:TMZJ+tl/BpbmGyIBiXzKzUftDhw4ZWxQZ+1ydn0gyII= github.com/Khan/genqlient v0.5.0/go.mod h1:EpIvDVXYm01GP6AXzjA7dKriPTH6GmtpmvTAwUUqIX8= github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/agnivade/levenshtein v1.1.0/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo= -github.com/agnivade/levenshtein v1.1.1 h1:QY8M92nrzkmr798gCo3kmMyqXFzdQVpxLlGPRBij0P8= github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo= -github.com/alexflint/go-arg v1.4.2 h1:lDWZAXxpAnZUq4qwb86p/3rIJJ2Li81EoMbTMujhVa0= github.com/alexflint/go-arg v1.4.2/go.mod h1:9iRbDxne7LcR/GSvEr7ma++GLpdIU1zrghf2y2768kM= -github.com/alexflint/go-scalar v1.0.0 h1:NGupf1XV/Xb04wXskDFzS0KWOLH632W/EO4fAFi+A70= github.com/alexflint/go-scalar v1.0.0/go.mod h1:GpHzbCOZXEKMEcygYQ5n/aa4Aq84zbxjy3MxYW0gjYw= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= @@ -31,6 +29,7 @@ github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkX github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -71,6 +70,7 @@ github.com/muesli/termenv v0.11.1-0.20220204035834-5ac8409525e0/go.mod h1:Bd5NYQ github.com/muesli/termenv v0.13.0/go.mod h1:sP1+uffeLaEYpyOTb8pLCUctGcGLnoFjSn4YJK5e2bc= github.com/muesli/termenv v0.14.0 h1:8x9NFfOe8lmIWK4pgy3IfVEy47f+ppe3tUqdPZG2Uy0= github.com/muesli/termenv v0.14.0/go.mod h1:kG/pF1E7fh949Xhe156crRUrHNyK221IuGO7Ez60Uc8= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= @@ -79,6 +79,7 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= +github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -86,6 +87,7 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/vektah/gqlparser/v2 v2.4.0/go.mod h1:flJWIR04IMQPGz+BXLrORkrARBxv/rtyIAFvd/MceW0= @@ -99,7 +101,6 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -138,12 +139,10 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200815165600-90abf76919f3/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= -golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -151,6 +150,6 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/queries/generated.go b/queries/generated.go index 31eb59c..8f2ad79 100644 --- a/queries/generated.go +++ b/queries/generated.go @@ -240,6 +240,112 @@ func (v *GetCloneCredentialsResponse) GetCloneCredentials() []*GetCloneCredentia return v.CloneCredentials }  +// GetPipelinePipeline includes the requested fields of the GraphQL type Pipeline. +// The GraphQL type's documentation follows. +// +// A pipeline for running ci jobs +type GetPipelinePipeline struct { + // The id of the pipeline. + Id string `json:"id"` + // The name of the pipeline. + Name string `json:"name"` + // The url of the pipeline. + Url string `json:"url"` + // The polling interval for the pipeline. + PollInterval int `json:"pollInterval"` + // The configured credential for cloning the pipeline source. + CloneCredential *GetPipelinePipelineCloneCredential `json:"cloneCredential"` + // The list of runs for the pipeline. + Runs []GetPipelinePipelineRunsRun `json:"runs"` +} + +// GetId returns GetPipelinePipeline.Id, and is useful for accessing the field via an interface. +func (v *GetPipelinePipeline) GetId() string { return v.Id } + +// GetName returns GetPipelinePipeline.Name, and is useful for accessing the field via an interface. +func (v *GetPipelinePipeline) GetName() string { return v.Name } + +// GetUrl returns GetPipelinePipeline.Url, and is useful for accessing the field via an interface. +func (v *GetPipelinePipeline) GetUrl() string { return v.Url } + +// GetPollInterval returns GetPipelinePipeline.PollInterval, and is useful for accessing the field via an interface. +func (v *GetPipelinePipeline) GetPollInterval() int { return v.PollInterval } + +// GetCloneCredential returns GetPipelinePipeline.CloneCredential, and is useful for accessing the field via an interface. +func (v *GetPipelinePipeline) GetCloneCredential() *GetPipelinePipelineCloneCredential { + return v.CloneCredential +} + +// GetRuns returns GetPipelinePipeline.Runs, and is useful for accessing the field via an interface. +func (v *GetPipelinePipeline) GetRuns() []GetPipelinePipelineRunsRun { return v.Runs } + +// GetPipelinePipelineCloneCredential includes the requested fields of the GraphQL type CloneCredential. +// The GraphQL type's documentation follows. +// +// A credential for authenticating with the pipeline source host. +type GetPipelinePipelineCloneCredential struct { + // The id of the credential. + Id string `json:"id"` + // The name of the credential. + Name string `json:"name"` + // The credential type. + Type string `json:"type"` +} + +// GetId returns GetPipelinePipelineCloneCredential.Id, and is useful for accessing the field via an interface. +func (v *GetPipelinePipelineCloneCredential) GetId() string { return v.Id } + +// GetName returns GetPipelinePipelineCloneCredential.Name, and is useful for accessing the field via an interface. +func (v *GetPipelinePipelineCloneCredential) GetName() string { return v.Name } + +// GetType returns GetPipelinePipelineCloneCredential.Type, and is useful for accessing the field via an interface. +func (v *GetPipelinePipelineCloneCredential) GetType() string { return v.Type } + +// GetPipelinePipelineRunsRun includes the requested fields of the GraphQL type Run. +// The GraphQL type's documentation follows. +// +// A pipeline run +type GetPipelinePipelineRunsRun struct { + // The id of the run. + Id string `json:"id"` + // The progress status of the run. + InProgress *bool `json:"inProgress"` + // The result of the run. + Result *float64 `json:"result"` + // Logs of the top level container build for the run. + BuildOutput *string `json:"buildOutput"` + // The stdout used to validate the run. + Stdout *string `json:"stdout"` + // The stderr used to validate the run. + Stderr *string `json:"stderr"` +} + +// GetId returns GetPipelinePipelineRunsRun.Id, and is useful for accessing the field via an interface. +func (v *GetPipelinePipelineRunsRun) GetId() string { return v.Id } + +// GetInProgress returns GetPipelinePipelineRunsRun.InProgress, and is useful for accessing the field via an interface. +func (v *GetPipelinePipelineRunsRun) GetInProgress() *bool { return v.InProgress } + +// GetResult returns GetPipelinePipelineRunsRun.Result, and is useful for accessing the field via an interface. +func (v *GetPipelinePipelineRunsRun) GetResult() *float64 { return v.Result } + +// GetBuildOutput returns GetPipelinePipelineRunsRun.BuildOutput, and is useful for accessing the field via an interface. +func (v *GetPipelinePipelineRunsRun) GetBuildOutput() *string { return v.BuildOutput } + +// GetStdout returns GetPipelinePipelineRunsRun.Stdout, and is useful for accessing the field via an interface. +func (v *GetPipelinePipelineRunsRun) GetStdout() *string { return v.Stdout } + +// GetStderr returns GetPipelinePipelineRunsRun.Stderr, and is useful for accessing the field via an interface. +func (v *GetPipelinePipelineRunsRun) GetStderr() *string { return v.Stderr } + +// GetPipelineResponse is returned by GetPipeline on success. +type GetPipelineResponse struct { + Pipeline *GetPipelinePipeline `json:"Pipeline"` +} + +// GetPipeline returns GetPipelineResponse.Pipeline, and is useful for accessing the field via an interface. +func (v *GetPipelineResponse) GetPipeline() *GetPipelinePipeline { return v.Pipeline } + // GetPipelinesPipelinesPipeline includes the requested fields of the GraphQL type Pipeline. // The GraphQL type's documentation follows. // @@ -387,6 +493,14 @@ func (v *__CreateWebhookInput) GetWebhookType() string { return v.WebhookType } // GetPipelineId returns __CreateWebhookInput.PipelineId, and is useful for accessing the field via an interface. func (v *__CreateWebhookInput) GetPipelineId() string { return v.PipelineId }  +// __GetPipelineInput is used internally by genqlient +type __GetPipelineInput struct { + Id string `json:"id"` +} + +// GetId returns __GetPipelineInput.Id, and is useful for accessing the field via an interface. +func (v *__GetPipelineInput) GetId() string { return v.Id } + func CreateCloneCredential( ctx context.Context, client graphql.Client, @@ -610,6 +724,54 @@ query GetCloneCredentials { return &data, err }  +func GetPipeline( + ctx context.Context, + client graphql.Client, + id string, +) (*GetPipelineResponse, error) { + req := &graphql.Request{ + OpName: "GetPipeline", + Query: ` +query GetPipeline ($id: String!) { + Pipeline(id: $id) { + id + name + url + pollInterval + cloneCredential { + id + name + type + } + runs { + id + inProgress + result + buildOutput + stdout + stderr + } + } +} +`, + Variables: &__GetPipelineInput{ + Id: id, + }, + } + var err error + + var data GetPipelineResponse + resp := &graphql.Response{Data: &data} + + err = client.MakeRequest( + ctx, + req, + resp, + ) + + return &data, err +} + func GetPipelines( ctx context.Context, client graphql.Client, diff --git a/schema.graphql b/schema.graphql index 493b8a8..3e53e4c 100644 --- a/schema.graphql +++ b/schema.graphql @@ -2,27 +2,63 @@ schema { query: Query mutation: Mutation } -"A credential for authenticating with the pipeline source host." -type CloneCredential { - "The id of the credential." +"A secret available for use inside of a pipeline." +type Secret { + "The id of the secret." id: String! - "The name of the credential." + "The name of the secret." name: String! - "The secret for the credential." + "The secret." secret: String! - "The credential type." - type: String! - "The username to user with the credential." - username: String! } -"A webhook for triggering pipelines" -type Webhook { - "The id of the webhook." +"A runner available for use inside of a pipeline." +type Runner { + "The id of the runner." id: String! - "The secret used to validate the webhook." - secret: String! - "The format of the webhook." - serverType: String! + "The name of the runner." + name: String! + "The token." + token: String! +} +"" +type Query { + "" + CloneCredential( + "The id of the requested credential." + id: String! + ): CloneCredential + "" + CloneCredentials: [CloneCredential]! + "" + Pipeline( + "The id of the requested pipeline." + id: String! + ): Pipeline + "" + Pipelines: [Pipeline]! + "" + Runners: [Runner]! + "" + Secrets: [Secret]! +} +"A pipeline for running ci jobs" +type Pipeline { + "The configured credential for cloning the pipeline source." + cloneCredential: CloneCredential + "The id of the pipeline." + id: String! + "The name of the pipeline." + name: String! + "The polling interval for the pipeline." + pollInterval: Int! + "The list of runs for the pipeline." + runs: [Run!]! + "The list of secrets for the pipeline." + secrets: [Secret!]! + "The url of the pipeline." + url: String! + "The list of webhooks for the pipeline." + webhooks: [Webhook!]! } "" type Mutation { @@ -89,66 +125,32 @@ type Mutation { pipelineId: String! ): Pipeline } -"A runner available for use inside of a pipeline." -type Runner { - "The id of the runner." - id: String! - "The name of the runner." - name: String! - "The token." - token: String! -} -"A pipeline for running ci jobs" -type Pipeline { - "The configured credential for cloning the pipeline source." - cloneCredential: CloneCredential - "The id of the pipeline." +"A webhook for triggering pipelines" +type Webhook { + "The id of the webhook." id: String! - "The name of the pipeline." - name: String! - "The polling interval for the pipeline." - pollInterval: Int! - "The list of runs for the pipeline." - runs: [Run!]! - "The list of secrets for the pipeline." - secrets: [Secret!]! - "The url of the pipeline." - url: String! - "The list of webhooks for the pipeline." - webhooks: [Webhook!]! + "The secret used to validate the webhook." + secret: String! + "The format of the webhook." + serverType: String! } -"A secret available for use inside of a pipeline." -type Secret { - "The id of the secret." +"A credential for authenticating with the pipeline source host." +type CloneCredential { + "The id of the credential." id: String! - "The name of the secret." + "The name of the credential." name: String! - "The secret." + "The secret for the credential." secret: String! -} -"" -type Query { - "" - CloneCredential( - "The id of the requested credential." - id: String! - ): CloneCredential - "" - CloneCredentials: [CloneCredential]! - "" - Pipeline( - "The id of the requested pipeline." - id: String! - ): Pipeline - "" - Pipelines: [Pipeline]! - "" - Runners: [Runner]! - "" - Secrets: [Secret]! + "The credential type." + type: String! + "The username to user with the credential." + username: String! } "A pipeline run" type Run { + "Logs of the top level container build for the run." + buildOutput: String "The id of the run." id: String! "The progress status of the run." diff --git a/widget/pipelineList.go b/widget/pipelineList.go index f38a92f..cd7aabf 100644 --- a/widget/pipelineList.go +++ b/widget/pipelineList.go @@ -42,16 +42,16 @@ func (m pipelineWidgetList) Update(msg tea.Msg) (tea.Model, tea.Cmd) {  case "enter": if m.list.Index() < len(m.list.Items())-1 { - //item := m.list.SelectedItem() - //if item, ok := item.(pipelineListItem); ok { - // return m, func() tea.Cmd { - // view, err := createPipelineEditForm(client, item.id) - // if err != nil { - // return err - // } - // return pipelineWidgetScreenSwitch(view) - // } - //} + item := m.list.SelectedItem() + if item, ok := item.(pipelineListItem); ok { + return m, func() tea.Msg { + view, err := createPipelineWidgetView(m.client, item.id) + if err != nil { + return err + } + return pipelineWidgetScreenSwitch(view) + } + } } else { return m, func() tea.Msg { view, err := createPipelineCreateForm(m.client, m.list.Width(), m.list.Height())