From 208a4eea371b716c016731ff10e01d045f42bf08 Mon Sep 17 00:00:00 2001 From: Gabriel Adrian Samfira Date: Fri, 19 Apr 2024 10:04:02 +0000 Subject: [PATCH] Ensure github endpoint Signed-off-by: Gabriel Adrian Samfira --- database/sql/sql.go | 38 ++++++++++++++++++++++--------------- internal/testing/testing.go | 16 +++++++++++++--- 2 files changed, 36 insertions(+), 18 deletions(-) diff --git a/database/sql/sql.go b/database/sql/sql.go index a15cfd71..d61840d3 100644 --- a/database/sql/sql.go +++ b/database/sql/sql.go @@ -195,6 +195,25 @@ func (s *sqlDatabase) cascadeMigration() error { return nil } +func (s *sqlDatabase) ensureGithubEndpoint() error { + // Create the default Github endpoint. + createEndpointParams := params.CreateGithubEndpointParams{ + Name: "github.com", + Description: "The github.com endpoint", + APIBaseURL: appdefaults.GithubDefaultBaseURL, + BaseURL: appdefaults.DefaultGithubURL, + UploadBaseURL: appdefaults.GithubDefaultUploadBaseURL, + } + + if _, err := s.CreateGithubEndpoint(context.Background(), createEndpointParams); err != nil { + if !errors.Is(err, runnerErrors.ErrDuplicateEntity) { + return errors.Wrap(err, "creating default github endpoint") + } + } + + return nil +} + func (s *sqlDatabase) migrateCredentialsToDB() (err error) { s.conn.Exec("PRAGMA foreign_keys = OFF") defer s.conn.Exec("PRAGMA foreign_keys = ON") @@ -240,21 +259,6 @@ func (s *sqlDatabase) migrateCredentialsToDB() (err error) { } }() - // Create the default Github endpoint. - createEndpointParams := params.CreateGithubEndpointParams{ - Name: "github.com", - Description: "The github.com endpoint", - APIBaseURL: appdefaults.GithubDefaultBaseURL, - BaseURL: appdefaults.DefaultGithubURL, - UploadBaseURL: appdefaults.GithubDefaultUploadBaseURL, - } - - if _, err := s.CreateGithubEndpoint(adminCtx, createEndpointParams); err != nil { - if !errors.Is(err, runnerErrors.ErrDuplicateEntity) { - return errors.Wrap(err, "creating default github endpoint") - } - } - // Nothing to migrate. if len(s.cfg.MigrateCredentials) == 0 { return nil @@ -416,6 +420,10 @@ func (s *sqlDatabase) migrateDB() error { } s.conn.Exec("PRAGMA foreign_keys = ON") + if err := s.ensureGithubEndpoint(); err != nil { + return errors.Wrap(err, "ensuring github endpoint") + } + if needsCredentialMigration { if err := s.migrateCredentialsToDB(); err != nil { return errors.Wrap(err, "migrating credentials") diff --git a/internal/testing/testing.go b/internal/testing/testing.go index bb1f580a..adc9730b 100644 --- a/internal/testing/testing.go +++ b/internal/testing/testing.go @@ -68,11 +68,21 @@ func CreateDefaultGithubEndpoint(ctx context.Context, db common.Store, s *testin UploadBaseURL: appdefaults.GithubDefaultUploadBaseURL, BaseURL: appdefaults.DefaultGithubURL, } - endpoint, err := db.CreateGithubEndpoint(ctx, endpointParams) + + ep, err := db.GetGithubEndpoint(ctx, endpointParams.Name) if err != nil { - s.Fatalf("failed to create database object (github.com): %v", err) + if !errors.Is(err, runnerErrors.ErrNotFound) { + s.Fatalf("failed to get database object (github.com): %v", err) + } + ep, err = db.CreateGithubEndpoint(ctx, endpointParams) + if err != nil { + if !errors.Is(err, runnerErrors.ErrDuplicateEntity) { + s.Fatalf("failed to create database object (github.com): %v", err) + } + } } - return endpoint + + return ep } func CreateTestGithubCredentials(ctx context.Context, credsName string, db common.Store, s *testing.T, endpoint params.GithubEndpoint) params.GithubCredentials {