From 683c3d8681d563ddea257695bba20f89d4b94a9b Mon Sep 17 00:00:00 2001 From: elad-codefresh Date: Tue, 12 Oct 2021 12:40:49 +0300 Subject: [PATCH 1/6] releases api --- pkg/codefresh/cli_releases.go | 55 +++++++++++++++++++++++++++++++++++ pkg/codefresh/codefresh.go | 6 ++++ 2 files changed, 61 insertions(+) create mode 100644 pkg/codefresh/cli_releases.go diff --git a/pkg/codefresh/cli_releases.go b/pkg/codefresh/cli_releases.go new file mode 100644 index 0000000..39366ee --- /dev/null +++ b/pkg/codefresh/cli_releases.go @@ -0,0 +1,55 @@ +package codefresh + +import ( + "context" + "fmt" + + "github.com/codefresh-io/go-sdk/pkg/codefresh/model" +) + +type ( + ICliReleasesAPI interface { + GetLatest(ctx context.Context) (*model.Release, error) + } + + CliReleases struct { + codefresh *codefresh + } + + graphQlGetReleasesResponse struct { + Data struct { + LatestCliRelease model.Release + } + Errors []graphqlError + } +) + +func newCliReleaseAPI(codefresh *codefresh) ICliReleasesAPI { + return &CliReleases{codefresh: codefresh} +} + +func (releases *CliReleases) GetLatest(ctx context.Context) (*model.Release, error) { + jsonData := map[string]interface{}{ + "query": `{ + latestCliRelease { + version + } + }`, + } + + res := graphQlGetReleasesResponse{} + err := releases.codefresh.graphqlAPI(ctx, jsonData, &res) + if err != nil { + return nil, fmt.Errorf("failed making a graphql API call to runtime: %w", err) + } + + if len(res.Errors) > 0 { + return nil, graphqlErrorResponse{errors: res.Errors} + } + + if &res.Data.LatestCliRelease == (*model.Release)(nil) { + return nil, fmt.Errorf("failed finding latest release") + } + + return &res.Data.LatestCliRelease, nil +} diff --git a/pkg/codefresh/codefresh.go b/pkg/codefresh/codefresh.go index 516fddf..aac3928 100644 --- a/pkg/codefresh/codefresh.go +++ b/pkg/codefresh/codefresh.go @@ -38,6 +38,8 @@ type ( Component() IComponentAPI Workflow() IWorkflowV2API Pipeline() IPipelineV2API + CliReleases() ICliReleasesAPI + } ) @@ -118,6 +120,10 @@ func (c *codefresh) Pipeline() IPipelineV2API { return newPipelineV2API(c) } +func (c *codefresh) CliReleases() ICliReleasesAPI { + return newCliReleaseAPI(c) +} + func (c *codefresh) requestAPI(opt *requestOptions) (*http.Response, error) { return c.requestAPIWithContext(context.Background(), opt) } From 362c35f6b434e9c644123e2fc1f3e9ae46555071 Mon Sep 17 00:00:00 2001 From: elad-codefresh Date: Tue, 12 Oct 2021 12:44:32 +0300 Subject: [PATCH 2/6] touchup --- pkg/codefresh/cli_releases.go | 6 +++--- pkg/codefresh/codefresh.go | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pkg/codefresh/cli_releases.go b/pkg/codefresh/cli_releases.go index 39366ee..76629b4 100644 --- a/pkg/codefresh/cli_releases.go +++ b/pkg/codefresh/cli_releases.go @@ -16,7 +16,7 @@ type ( codefresh *codefresh } - graphQlGetReleasesResponse struct { + graphQlGetLatestReleaseResponse struct { Data struct { LatestCliRelease model.Release } @@ -24,7 +24,7 @@ type ( } ) -func newCliReleaseAPI(codefresh *codefresh) ICliReleasesAPI { +func newCliReleasesAPI(codefresh *codefresh) ICliReleasesAPI { return &CliReleases{codefresh: codefresh} } @@ -37,7 +37,7 @@ func (releases *CliReleases) GetLatest(ctx context.Context) (*model.Release, err }`, } - res := graphQlGetReleasesResponse{} + res := graphQlGetLatestReleaseResponse{} err := releases.codefresh.graphqlAPI(ctx, jsonData, &res) if err != nil { return nil, fmt.Errorf("failed making a graphql API call to runtime: %w", err) diff --git a/pkg/codefresh/codefresh.go b/pkg/codefresh/codefresh.go index aac3928..cc2a468 100644 --- a/pkg/codefresh/codefresh.go +++ b/pkg/codefresh/codefresh.go @@ -39,7 +39,6 @@ type ( Workflow() IWorkflowV2API Pipeline() IPipelineV2API CliReleases() ICliReleasesAPI - } ) @@ -121,7 +120,7 @@ func (c *codefresh) Pipeline() IPipelineV2API { } func (c *codefresh) CliReleases() ICliReleasesAPI { - return newCliReleaseAPI(c) + return newCliReleasesAPI(c) } func (c *codefresh) requestAPI(opt *requestOptions) (*http.Response, error) { From bbf50a319a7b29ae1085ac17dcef9b97d39197de Mon Sep 17 00:00:00 2001 From: elad-codefresh Date: Tue, 12 Oct 2021 12:44:53 +0300 Subject: [PATCH 3/6] bump --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index fe679b0..7b52f5e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.34.12 +0.35.0 From 89e75959ea3f24d10a6d1c7be330f884c1636946 Mon Sep 17 00:00:00 2001 From: elad-codefresh Date: Tue, 12 Oct 2021 13:27:56 +0300 Subject: [PATCH 4/6] getting string instead of release model --- pkg/codefresh/cli_releases.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/pkg/codefresh/cli_releases.go b/pkg/codefresh/cli_releases.go index 76629b4..b2b9056 100644 --- a/pkg/codefresh/cli_releases.go +++ b/pkg/codefresh/cli_releases.go @@ -3,13 +3,11 @@ package codefresh import ( "context" "fmt" - - "github.com/codefresh-io/go-sdk/pkg/codefresh/model" ) type ( ICliReleasesAPI interface { - GetLatest(ctx context.Context) (*model.Release, error) + GetLatest(ctx context.Context) (string, error) } CliReleases struct { @@ -18,7 +16,7 @@ type ( graphQlGetLatestReleaseResponse struct { Data struct { - LatestCliRelease model.Release + LatestCliRelease string } Errors []graphqlError } @@ -28,7 +26,7 @@ func newCliReleasesAPI(codefresh *codefresh) ICliReleasesAPI { return &CliReleases{codefresh: codefresh} } -func (releases *CliReleases) GetLatest(ctx context.Context) (*model.Release, error) { +func (releases *CliReleases) GetLatest(ctx context.Context) (string, error) { jsonData := map[string]interface{}{ "query": `{ latestCliRelease { @@ -40,16 +38,16 @@ func (releases *CliReleases) GetLatest(ctx context.Context) (*model.Release, err res := graphQlGetLatestReleaseResponse{} err := releases.codefresh.graphqlAPI(ctx, jsonData, &res) if err != nil { - return nil, fmt.Errorf("failed making a graphql API call to runtime: %w", err) + return "", fmt.Errorf("failed making a graphql API call to runtime: %w", err) } if len(res.Errors) > 0 { - return nil, graphqlErrorResponse{errors: res.Errors} + return "", graphqlErrorResponse{errors: res.Errors} } - if &res.Data.LatestCliRelease == (*model.Release)(nil) { - return nil, fmt.Errorf("failed finding latest release") + if res.Data.LatestCliRelease == "" { + return "", fmt.Errorf("failed finding latest release") } - return &res.Data.LatestCliRelease, nil + return res.Data.LatestCliRelease, nil } From 44741b2db15e888a080b04e54c6bbce1f8cfd4cf Mon Sep 17 00:00:00 2001 From: elad-codefresh Date: Tue, 12 Oct 2021 13:45:47 +0300 Subject: [PATCH 5/6] log --- pkg/codefresh/cli_releases.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/codefresh/cli_releases.go b/pkg/codefresh/cli_releases.go index b2b9056..398ec2f 100644 --- a/pkg/codefresh/cli_releases.go +++ b/pkg/codefresh/cli_releases.go @@ -46,7 +46,7 @@ func (releases *CliReleases) GetLatest(ctx context.Context) (string, error) { } if res.Data.LatestCliRelease == "" { - return "", fmt.Errorf("failed finding latest release") + return "", fmt.Errorf("failed getting latest release") } return res.Data.LatestCliRelease, nil From a0fef5c19ae31041556f9e84e55dd7b143a9e1d0 Mon Sep 17 00:00:00 2001 From: elad-codefresh Date: Tue, 12 Oct 2021 13:52:46 +0300 Subject: [PATCH 6/6] updated query --- pkg/codefresh/cli_releases.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/codefresh/cli_releases.go b/pkg/codefresh/cli_releases.go index 398ec2f..ee7406f 100644 --- a/pkg/codefresh/cli_releases.go +++ b/pkg/codefresh/cli_releases.go @@ -29,9 +29,7 @@ func newCliReleasesAPI(codefresh *codefresh) ICliReleasesAPI { func (releases *CliReleases) GetLatest(ctx context.Context) (string, error) { jsonData := map[string]interface{}{ "query": `{ - latestCliRelease { - version - } + latestCliRelease }`, }