MCPcopy Create free account
hub / github.com/cloudbase/garm / sqlToCommonRepository

Method sqlToCommonRepository

database/sql/util.go:455–543  ·  view source on GitHub ↗
(repo Repository, detailed bool)

Source from the content-addressed store, hash-verified

453}
454
455func (s *sqlDatabase) sqlToCommonRepository(repo Repository, detailed bool) (params.Repository, error) {
456 if len(repo.WebhookSecret) == 0 {
457 return params.Repository{}, errors.New("missing secret")
458 }
459 secret, err := util.Unseal(repo.WebhookSecret, []byte(s.cfg.Passphrase))
460 if err != nil {
461 return params.Repository{}, fmt.Errorf("error decrypting secret: %w", err)
462 }
463 endpoint, err := s.sqlToCommonGithubEndpoint(repo.Endpoint)
464 if err != nil {
465 return params.Repository{}, fmt.Errorf("error converting endpoint: %w", err)
466 }
467
468 // Determine credentials name based on which credentials are set
469 var credsName string
470 if repo.CredentialsID != nil {
471 credsName = repo.Credentials.Name
472 } else if repo.GiteaCredentialsID != nil {
473 credsName = repo.GiteaCredentials.Name
474 }
475
476 ret := params.Repository{
477 ID: repo.ID.String(),
478 Name: repo.Name,
479 Owner: repo.Owner,
480 CredentialsName: credsName,
481 Pools: make([]params.Pool, len(repo.Pools)),
482 WebhookSecret: string(secret),
483 PoolBalancerType: repo.PoolBalancerType,
484 CreatedAt: repo.CreatedAt,
485 UpdatedAt: repo.UpdatedAt,
486 Endpoint: endpoint,
487 AgentMode: repo.AgentMode,
488 PoolManagerStatus: params.PoolManagerStatus{
489 IsRunning: repo.PoolManagerRunning,
490 FailureReason: repo.PoolManagerFailureReason,
491 },
492 }
493
494 if repo.CredentialsID != nil && repo.GiteaCredentialsID != nil {
495 return params.Repository{}, runnerErrors.NewConflictError("both gitea and github credentials are set for repo %s", repo.Name)
496 }
497
498 var forgeCreds params.ForgeCredentials
499 if repo.CredentialsID != nil {
500 ret.CredentialsID = *repo.CredentialsID
501 forgeCreds, err = s.sqlToCommonForgeCredentials(repo.Credentials)
502 }
503
504 if repo.GiteaCredentialsID != nil {
505 ret.CredentialsID = *repo.GiteaCredentialsID
506 forgeCreds, err = s.sqlGiteaToCommonForgeCredentials(repo.GiteaCredentials)
507 }
508
509 if err != nil {
510 return params.Repository{}, fmt.Errorf("error converting credentials: %w", err)
511 }
512

Callers 7

GetRepositoryMethod · 0.95
ListRepositoriesMethod · 0.95
DeleteRepositoryMethod · 0.95
UpdateRepositoryMethod · 0.95
GetRepositoryByIDMethod · 0.95

Calls 5

sqlToCommonPoolMethod · 0.95
StringMethod · 0.45

Tested by

no test coverage detected