From 4c9f78f81b640fe195cde76226d1503622557860 Mon Sep 17 00:00:00 2001 From: Gabriel Adrian Samfira Date: Mon, 26 May 2025 15:09:21 +0000 Subject: [PATCH] Relax update endpoint validation Signed-off-by: Gabriel Adrian Samfira --- database/sql/github.go | 9 ----- database/sql/github_test.go | 66 ------------------------------------- 2 files changed, 75 deletions(-) diff --git a/database/sql/github.go b/database/sql/github.go index 18526f5a..a66c7331 100644 --- a/database/sql/github.go +++ b/database/sql/github.go @@ -178,15 +178,6 @@ func (s *sqlDatabase) UpdateGithubEndpoint(_ context.Context, name string, param return errors.Wrap(err, "fetching github endpoint") } - var credsCount int64 - if err := tx.Model(&GithubCredentials{}).Where("endpoint_name = ?", endpoint.Name).Count(&credsCount).Error; err != nil { - if !errors.Is(err, gorm.ErrRecordNotFound) { - return errors.Wrap(err, "fetching github credentials") - } - } - if credsCount > 0 && (param.APIBaseURL != nil || param.BaseURL != nil || param.UploadBaseURL != nil) { - return errors.Wrap(runnerErrors.ErrBadRequest, "cannot update endpoint URLs with existing credentials") - } if param.APIBaseURL != nil { endpoint.APIBaseURL = *param.APIBaseURL } diff --git a/database/sql/github_test.go b/database/sql/github_test.go index 72617de4..4d94a202 100644 --- a/database/sql/github_test.go +++ b/database/sql/github_test.go @@ -219,72 +219,6 @@ func (s *GithubTestSuite) TestUpdateEndpoint() { s.Require().Equal(caCertBundle, updatedEndpoint.CACertBundle) } -func (s *GithubTestSuite) TestUpdateEndpointUDLsFailsIfCredentialsAreAssociated() { - ctx := garmTesting.ImpersonateAdminContext(context.Background(), s.db, s.T()) - - createEpParams := params.CreateGithubEndpointParams{ - Name: testEndpointName, - Description: testEndpointDescription, - APIBaseURL: testAPIBaseURL, - UploadBaseURL: testUploadBaseURL, - BaseURL: testBaseURL, - } - - endpoint, err := s.db.CreateGithubEndpoint(ctx, createEpParams) - s.Require().NoError(err) - s.Require().NotNil(endpoint) - - credParams := params.CreateGithubCredentialsParams{ - Name: testCredsName, - Description: testCredsDescription, - Endpoint: testEndpointName, - AuthType: params.GithubAuthTypePAT, - PAT: params.GithubPAT{ - OAuth2Token: "test", - }, - } - - _, err = s.db.CreateGithubCredentials(ctx, credParams) - s.Require().NoError(err) - - newDescription := "new description" - newBaseURL := "https://new.example.com" - newAPIBaseURL := "https://new-api.example.com" - newUploadBaseURL := "https://new-uploads.example.com" - updateEpParams := params.UpdateGithubEndpointParams{ - BaseURL: &newBaseURL, - } - - _, err = s.db.UpdateGithubEndpoint(ctx, testEndpointName, updateEpParams) - s.Require().Error(err) - s.Require().ErrorIs(err, runnerErrors.ErrBadRequest) - s.Require().EqualError(err, "updating github endpoint: cannot update endpoint URLs with existing credentials: invalid request") - - updateEpParams = params.UpdateGithubEndpointParams{ - UploadBaseURL: &newUploadBaseURL, - } - - _, err = s.db.UpdateGithubEndpoint(ctx, testEndpointName, updateEpParams) - s.Require().Error(err) - s.Require().ErrorIs(err, runnerErrors.ErrBadRequest) - s.Require().EqualError(err, "updating github endpoint: cannot update endpoint URLs with existing credentials: invalid request") - - updateEpParams = params.UpdateGithubEndpointParams{ - APIBaseURL: &newAPIBaseURL, - } - _, err = s.db.UpdateGithubEndpoint(ctx, testEndpointName, updateEpParams) - s.Require().Error(err) - s.Require().ErrorIs(err, runnerErrors.ErrBadRequest) - s.Require().EqualError(err, "updating github endpoint: cannot update endpoint URLs with existing credentials: invalid request") - - updateEpParams = params.UpdateGithubEndpointParams{ - Description: &newDescription, - } - ret, err := s.db.UpdateGithubEndpoint(ctx, testEndpointName, updateEpParams) - s.Require().NoError(err) - s.Require().Equal(newDescription, ret.Description) -} - func (s *GithubTestSuite) TestUpdatingNonExistingEndpointReturnsNotFoundError() { ctx := garmTesting.ImpersonateAdminContext(context.Background(), s.db, s.T())