Skip to content

Commit

Permalink
Update gocd sdk to use the internal API for fetching material informa…
Browse files Browse the repository at this point in the history
…tion
  • Loading branch information
nikhilsbhat committed Sep 10, 2023
1 parent 6679769 commit 9876c28
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 16 deletions.
6 changes: 5 additions & 1 deletion cmd/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,12 @@ func registerRawFlags(cmd *cobra.Command) {
}

func registerMaterialFlags(cmd *cobra.Command) {
cmd.PersistentFlags().StringSliceVarP(&materialFilter, "filter", "", nil,
cmd.PersistentFlags().StringSliceVarP(&materialFilters, "filter", "", nil,
"filter to be applied on all available materials in GoCD, filter can be applied as key=value (ex: --filter type=git)")
cmd.PersistentFlags().StringSliceVarP(&materialName, "names", "", nil,
"name of the material to filter from the available material in GoCD")
cmd.PersistentFlags().BoolVarP(&materialFailed, "failed", "", false,
"if enabled, only the failed material would be retrieved")
}

func registerPipelineHistoryFlags(cmd *cobra.Command) {
Expand Down
52 changes: 49 additions & 3 deletions cmd/materials.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
package cmd

import (
"strconv"
"strings"

"github.com/nikhilsbhat/gocd-cli/pkg/render"
"github.com/nikhilsbhat/gocd-sdk-go"
"github.com/spf13/cobra"
"github.com/thoas/go-funk"
)

var materialFilter []string
var (
materialName []string
materialFilters []string
materialFailed bool
)

func registerMaterialsCommand() *cobra.Command {
registerAgentProfilesCmd := &cobra.Command{
Expand Down Expand Up @@ -49,12 +56,51 @@ func getMaterialsCommand() *cobra.Command {
return err
}

if len(materialFilter) != 0 {
if materialFailed {
response = funk.Filter(response, func(material gocd.Material) bool {
return len(material.Messages) != 0
}).([]gocd.Material)
}

if len(materialName) != 0 {
response = funk.Filter(response, func(material gocd.Material) bool {
return funk.Contains(materialFilter, material.Attributes.Name)
return funk.Contains(materialName, material.Config.Attributes.URL)
}).([]gocd.Material)
}

if len(materialFilters) != 0 {
for _, materialFilter := range materialFilters {
filter := strings.Split(materialFilter, "=")

response = funk.Filter(response, func(material gocd.Material) bool {
switch strings.ToLower(filter[0]) {
case "url":
if funk.Contains(material.Config.Attributes.URL, filter[1]) {
return true
}

return false
case "type":
if funk.Contains(material.Config.Type, filter[1]) {
return true
}

return false
case "can_update":
boolValue, _ := strconv.ParseBool(strings.ToLower(filter[1]))

return material.CanTriggerUpdate == boolValue
case "auto_update":
boolValue, _ := strconv.ParseBool(strings.ToLower(filter[1]))

return material.Config.Attributes.AutoUpdate == boolValue
}

return false
}).([]gocd.Material)
}
}

if len(jsonQuery) != 0 {
cliLogger.Debugf(queryEnabledMessage, jsonQuery)

Expand Down
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ go 1.19

require (
github.com/ghodss/yaml v1.0.0
github.com/nikhilsbhat/gocd-sdk-go v0.1.8-0.20230810120458-385cbf32bfe1
github.com/nikhilsbhat/gocd-sdk-go v0.1.8-0.20230910045853-22e6b48abf5e
github.com/sirupsen/logrus v1.9.3
github.com/spf13/cobra v1.6.1
github.com/stretchr/testify v1.8.2
Expand All @@ -18,13 +18,13 @@ require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/go-resty/resty/v2 v2.7.0 // indirect
github.com/inconshreveable/mousetrap v1.0.1 // indirect
github.com/jinzhu/copier v0.3.5 // indirect
github.com/jinzhu/copier v0.4.0 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/rogpeppe/go-internal v1.9.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
golang.org/x/net v0.14.0 // indirect
golang.org/x/sys v0.11.0 // indirect
golang.org/x/net v0.15.0 // indirect
golang.org/x/sys v0.12.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
)
16 changes: 8 additions & 8 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSM
github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc=
github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg=
github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg=
github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8=
github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/nikhilsbhat/gocd-sdk-go v0.1.8-0.20230810120458-385cbf32bfe1 h1:74wWSQC5aAq1XYoCYUxBX5NJlPyu0NTVGF7uSkvmu0o=
github.com/nikhilsbhat/gocd-sdk-go v0.1.8-0.20230810120458-385cbf32bfe1/go.mod h1:bIE3Xr7rRzOo0xSX/oa13kXNdFTgCR3JtCh/SontbwM=
github.com/nikhilsbhat/gocd-sdk-go v0.1.8-0.20230910045853-22e6b48abf5e h1:svRozwq8SuPpoR8K9h4rxImXRhJ9iLBpk9S+ilT6LEM=
github.com/nikhilsbhat/gocd-sdk-go v0.1.8-0.20230910045853-22e6b48abf5e/go.mod h1:bIE3Xr7rRzOo0xSX/oa13kXNdFTgCR3JtCh/SontbwM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
Expand Down Expand Up @@ -45,13 +45,13 @@ github.com/thedevsaddam/gojsonq/v2 v2.5.2/go.mod h1:bv6Xa7kWy82uT0LnXPE2SzGqTj33
github.com/thoas/go-funk v0.9.3 h1:7+nAEx3kn5ZJcnDm2Bh23N2yOtweO14bi//dvRtgLpw=
github.com/thoas/go-funk v0.9.3/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q=
golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
Expand Down

0 comments on commit 9876c28

Please sign in to comment.