feat(docker-watcher): phase 5 - registry client & poller
Gitea registry client with tag listing and pattern matching, cron-based polling scheduler with first-poll safety, poll state persistence. DeployTriggerer interface for decoupled deploy triggering.
This commit is contained in:
@@ -41,6 +41,22 @@ func (s *Store) GetRegistryByID(id string) (Registry, error) {
|
||||
return r, nil
|
||||
}
|
||||
|
||||
// GetRegistryByName returns a single registry by its unique name.
|
||||
func (s *Store) GetRegistryByName(name string) (Registry, error) {
|
||||
var r Registry
|
||||
err := s.db.QueryRow(
|
||||
`SELECT id, name, url, type, token, created_at, updated_at
|
||||
FROM registries WHERE name = ?`, name,
|
||||
).Scan(&r.ID, &r.Name, &r.URL, &r.Type, &r.Token, &r.CreatedAt, &r.UpdatedAt)
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return Registry{}, fmt.Errorf("registry %q: %w", name, ErrNotFound)
|
||||
}
|
||||
if err != nil {
|
||||
return Registry{}, fmt.Errorf("query registry by name: %w", err)
|
||||
}
|
||||
return r, nil
|
||||
}
|
||||
|
||||
// GetAllRegistries returns every registry ordered by name.
|
||||
func (s *Store) GetAllRegistries() ([]Registry, error) {
|
||||
rows, err := s.db.Query(
|
||||
|
||||
Reference in New Issue
Block a user