From 92513c3a64f82947d95fb5e94339303fe2cab4be Mon Sep 17 00:00:00 2001 From: Helge Bruegner Date: Wed, 24 Apr 2024 15:07:50 +0200 Subject: [PATCH 1/2] fix an issue where the resty clients weren't initialized correctly --- .gitignore | 4 ++++ azure-devops-client/main.go | 19 +++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 7eeed65..d96e9c7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,7 @@ /release-assets /azure-devops-exporter *.exe + +# VSCode +.vscode/ +__debug_* diff --git a/azure-devops-client/main.go b/azure-devops-client/main.go index 22a0387..7a9b5a1 100644 --- a/azure-devops-client/main.go +++ b/azure-devops-client/main.go @@ -160,7 +160,8 @@ func (c *AzureDevopsClient) SupportsPatAuthentication() bool { } func (c *AzureDevopsClient) rest() *resty.Client { - var client, err = c.restWithAuthentication("dev.azure.com") + + var client, err = c.restWithAuthentication(&c.restClient, "dev.azure.com") if err != nil { c.logger.Fatalf("could not create a rest client: %v", err) @@ -170,7 +171,8 @@ func (c *AzureDevopsClient) rest() *resty.Client { } func (c *AzureDevopsClient) restVsrm() *resty.Client { - var client, err = c.restWithAuthentication("vsrm.dev.azure.com") + + var client, err = c.restWithAuthentication(&c.restClientVsrm, "vsrm.dev.azure.com") if err != nil { c.logger.Fatalf("could not create a rest client: %v", err) @@ -179,13 +181,14 @@ func (c *AzureDevopsClient) restVsrm() *resty.Client { return client } -func (c *AzureDevopsClient) restWithAuthentication(domain string) (*resty.Client, error) { - if c.restClient == nil { - c.restClient = c.restWithoutToken(domain) +func (c *AzureDevopsClient) restWithAuthentication(restClient **resty.Client, domain string) (*resty.Client, error) { + + if *restClient == nil { + *restClient = c.restWithoutToken(domain) } if c.SupportsPatAuthentication() { - c.restClient.SetBasicAuth("", *c.accessToken) + (*restClient).SetBasicAuth("", *c.accessToken) } else { ctx := context.Background() opts := policy.TokenRequestOptions{ @@ -196,10 +199,10 @@ func (c *AzureDevopsClient) restWithAuthentication(domain string) (*resty.Client panic(err) } - c.restClient.SetBasicAuth("", accessToken.Token) + (*restClient).SetBasicAuth("", accessToken.Token) } - return c.restClient, nil + return (*restClient), nil } func (c *AzureDevopsClient) restWithoutToken(domain string) *resty.Client { From b08886a178e58e0682595667119003f93fb45887 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sat, 1 Jun 2024 11:58:20 +0200 Subject: [PATCH 2/2] cleanup double pointer --- azure-devops-client/main.go | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/azure-devops-client/main.go b/azure-devops-client/main.go index 7a9b5a1..9ab79f7 100644 --- a/azure-devops-client/main.go +++ b/azure-devops-client/main.go @@ -160,8 +160,7 @@ func (c *AzureDevopsClient) SupportsPatAuthentication() bool { } func (c *AzureDevopsClient) rest() *resty.Client { - - var client, err = c.restWithAuthentication(&c.restClient, "dev.azure.com") + var client, err = c.restWithAuthentication(c.restClient, "dev.azure.com") if err != nil { c.logger.Fatalf("could not create a rest client: %v", err) @@ -171,8 +170,7 @@ func (c *AzureDevopsClient) rest() *resty.Client { } func (c *AzureDevopsClient) restVsrm() *resty.Client { - - var client, err = c.restWithAuthentication(&c.restClientVsrm, "vsrm.dev.azure.com") + var client, err = c.restWithAuthentication(c.restClientVsrm, "vsrm.dev.azure.com") if err != nil { c.logger.Fatalf("could not create a rest client: %v", err) @@ -181,14 +179,13 @@ func (c *AzureDevopsClient) restVsrm() *resty.Client { return client } -func (c *AzureDevopsClient) restWithAuthentication(restClient **resty.Client, domain string) (*resty.Client, error) { - - if *restClient == nil { - *restClient = c.restWithoutToken(domain) +func (c *AzureDevopsClient) restWithAuthentication(restClient *resty.Client, domain string) (*resty.Client, error) { + if restClient == nil { + restClient = c.restWithoutToken(domain) } if c.SupportsPatAuthentication() { - (*restClient).SetBasicAuth("", *c.accessToken) + restClient.SetBasicAuth("", *c.accessToken) } else { ctx := context.Background() opts := policy.TokenRequestOptions{ @@ -199,10 +196,10 @@ func (c *AzureDevopsClient) restWithAuthentication(restClient **resty.Client, do panic(err) } - (*restClient).SetBasicAuth("", accessToken.Token) + restClient.SetBasicAuth("", accessToken.Token) } - return (*restClient), nil + return restClient, nil } func (c *AzureDevopsClient) restWithoutToken(domain string) *resty.Client {