Add runner query api
This commit is contained in:
@@ -14,6 +14,43 @@ import (
|
||||
var log = logging.MustGetLogger("cursorius-server")
|
||||
|
||||
func createSchema(db database.Database) (graphql.Schema, error) {
|
||||
runnerType := graphql.NewObject(graphql.ObjectConfig{
|
||||
Name: "Runner",
|
||||
Description: "A runner available for use inside of a pipeline.",
|
||||
Fields: graphql.Fields{
|
||||
"id": &graphql.Field{
|
||||
Type: graphql.NewNonNull(graphql.String),
|
||||
Description: "The id of the runner.",
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
if runner, ok := p.Source.(database.Runner); ok {
|
||||
return runner.Id, nil
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
},
|
||||
"name": &graphql.Field{
|
||||
Type: graphql.NewNonNull(graphql.String),
|
||||
Description: "The name of the runner.",
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
if runner, ok := p.Source.(database.Runner); ok {
|
||||
return runner.Name, nil
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
},
|
||||
"token": &graphql.Field{
|
||||
Type: graphql.NewNonNull(graphql.String),
|
||||
Description: "The token.",
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
if runner, ok := p.Source.(database.Runner); ok {
|
||||
return runner.Token, nil
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
secretType := graphql.NewObject(graphql.ObjectConfig{
|
||||
Name: "Secret",
|
||||
Description: "A secret available for use inside of a pipeline.",
|
||||
@@ -348,6 +385,13 @@ func createSchema(db database.Database) (graphql.Schema, error) {
|
||||
return db.GetSecrets()
|
||||
},
|
||||
},
|
||||
"Runners": &graphql.Field{
|
||||
Type: graphql.NewNonNull(graphql.NewList(runnerType)),
|
||||
Args: graphql.FieldConfigArgument{},
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
return db.GetRunners()
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
@@ -485,6 +529,25 @@ func createSchema(db database.Database) (graphql.Schema, error) {
|
||||
return secret, nil
|
||||
},
|
||||
},
|
||||
"createRunner": &graphql.Field{
|
||||
Type: runnerType,
|
||||
Description: "Create a new runner",
|
||||
Args: graphql.FieldConfigArgument{
|
||||
"name": &graphql.ArgumentConfig{
|
||||
Type: graphql.NewNonNull(graphql.String),
|
||||
},
|
||||
},
|
||||
Resolve: func(params graphql.ResolveParams) (interface{}, error) {
|
||||
|
||||
runner, err := db.CreateRunner(
|
||||
params.Args["name"].(string),
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return runner, nil
|
||||
},
|
||||
},
|
||||
"setPipelineCloneCredential": &graphql.Field{
|
||||
Type: pipelineType,
|
||||
Description: "Set the CloneCredential used by a pipeline to clone the source repo",
|
||||
|
||||
Reference in New Issue
Block a user