mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-10-28 15:51:26 +00:00
- git.sql: provider/repo/webhook CRUD, push-dispatch service matcher - ListServicesForPush folds the dynamic branch clause into a static predicate; COALESCE fallbacks match other service loaders - git_receiver dispatch writes reuse deployment queries - TestGitLiveInvariants: live coverage for upsert, search, webhook, and branch matching semantics Authored By: TDvorak <[email protected]>
738 lines
22 KiB
Go
738 lines
22 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
// source: git.sql
|
|
|
|
package sqlcdb
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
const countGitRepositories = `-- name: CountGitRepositories :one
|
|
SELECT COUNT(*)
|
|
FROM git_repositories
|
|
WHERE provider_id = $1 AND user_id = $2
|
|
AND ($3::text IS NULL OR full_name ILIKE ('%' || $3::text || '%') OR name ILIKE ('%' || $3::text || '%'))
|
|
`
|
|
|
|
type CountGitRepositoriesParams struct {
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
Column3 string `json:"column_3"`
|
|
}
|
|
|
|
func (q *Queries) CountGitRepositories(ctx context.Context, arg CountGitRepositoriesParams) (int64, error) {
|
|
row := q.db.QueryRowContext(ctx, countGitRepositories, arg.ProviderID, arg.UserID, arg.Column3)
|
|
var count int64
|
|
err := row.Scan(&count)
|
|
return count, err
|
|
}
|
|
|
|
const countUserRepositories = `-- name: CountUserRepositories :one
|
|
SELECT COUNT(*) FROM git_repositories WHERE user_id = $1
|
|
`
|
|
|
|
func (q *Queries) CountUserRepositories(ctx context.Context, userID uuid.UUID) (int64, error) {
|
|
row := q.db.QueryRowContext(ctx, countUserRepositories, userID)
|
|
var count int64
|
|
err := row.Scan(&count)
|
|
return count, err
|
|
}
|
|
|
|
const deleteGitProvider = `-- name: DeleteGitProvider :execrows
|
|
DELETE FROM git_providers WHERE id = $1 AND user_id = $2
|
|
`
|
|
|
|
type DeleteGitProviderParams struct {
|
|
ID uuid.UUID `json:"id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
func (q *Queries) DeleteGitProvider(ctx context.Context, arg DeleteGitProviderParams) (int64, error) {
|
|
result, err := q.db.ExecContext(ctx, deleteGitProvider, arg.ID, arg.UserID)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return result.RowsAffected()
|
|
}
|
|
|
|
const getGitProviderForFetch = `-- name: GetGitProviderForFetch :one
|
|
SELECT name, api_url, access_token
|
|
FROM git_providers
|
|
WHERE id = $1 AND user_id = $2
|
|
`
|
|
|
|
type GetGitProviderForFetchParams struct {
|
|
ID uuid.UUID `json:"id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
type GetGitProviderForFetchRow struct {
|
|
Name string `json:"name"`
|
|
ApiUrl string `json:"api_url"`
|
|
AccessToken string `json:"access_token"`
|
|
}
|
|
|
|
func (q *Queries) GetGitProviderForFetch(ctx context.Context, arg GetGitProviderForFetchParams) (GetGitProviderForFetchRow, error) {
|
|
row := q.db.QueryRowContext(ctx, getGitProviderForFetch, arg.ID, arg.UserID)
|
|
var i GetGitProviderForFetchRow
|
|
err := row.Scan(&i.Name, &i.ApiUrl, &i.AccessToken)
|
|
return i, err
|
|
}
|
|
|
|
const getGitProviderForRepos = `-- name: GetGitProviderForRepos :one
|
|
SELECT name, display_name, access_token, api_url
|
|
FROM git_providers
|
|
WHERE id = $1 AND user_id = $2
|
|
`
|
|
|
|
type GetGitProviderForReposParams struct {
|
|
ID uuid.UUID `json:"id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
type GetGitProviderForReposRow struct {
|
|
Name string `json:"name"`
|
|
DisplayName string `json:"display_name"`
|
|
AccessToken string `json:"access_token"`
|
|
ApiUrl string `json:"api_url"`
|
|
}
|
|
|
|
func (q *Queries) GetGitProviderForRepos(ctx context.Context, arg GetGitProviderForReposParams) (GetGitProviderForReposRow, error) {
|
|
row := q.db.QueryRowContext(ctx, getGitProviderForRepos, arg.ID, arg.UserID)
|
|
var i GetGitProviderForReposRow
|
|
err := row.Scan(
|
|
&i.Name,
|
|
&i.DisplayName,
|
|
&i.AccessToken,
|
|
&i.ApiUrl,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getGitProviderName = `-- name: GetGitProviderName :one
|
|
SELECT name FROM git_providers WHERE id = $1 AND user_id = $2
|
|
`
|
|
|
|
type GetGitProviderNameParams struct {
|
|
ID uuid.UUID `json:"id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
func (q *Queries) GetGitProviderName(ctx context.Context, arg GetGitProviderNameParams) (string, error) {
|
|
row := q.db.QueryRowContext(ctx, getGitProviderName, arg.ID, arg.UserID)
|
|
var name string
|
|
err := row.Scan(&name)
|
|
return name, err
|
|
}
|
|
|
|
const getGitProviderNameByID = `-- name: GetGitProviderNameByID :one
|
|
SELECT name FROM git_providers WHERE id = $1
|
|
`
|
|
|
|
func (q *Queries) GetGitProviderNameByID(ctx context.Context, id uuid.UUID) (string, error) {
|
|
row := q.db.QueryRowContext(ctx, getGitProviderNameByID, id)
|
|
var name string
|
|
err := row.Scan(&name)
|
|
return name, err
|
|
}
|
|
|
|
const getGitProviderTimestamps = `-- name: GetGitProviderTimestamps :one
|
|
SELECT created_at, updated_at FROM git_providers WHERE id = $1
|
|
`
|
|
|
|
type GetGitProviderTimestampsRow struct {
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) GetGitProviderTimestamps(ctx context.Context, id uuid.UUID) (GetGitProviderTimestampsRow, error) {
|
|
row := q.db.QueryRowContext(ctx, getGitProviderTimestamps, id)
|
|
var i GetGitProviderTimestampsRow
|
|
err := row.Scan(&i.CreatedAt, &i.UpdatedAt)
|
|
return i, err
|
|
}
|
|
|
|
const getGitRepoForPush = `-- name: GetGitRepoForPush :one
|
|
SELECT clone_url, full_name, user_id FROM git_repositories WHERE id = $1
|
|
`
|
|
|
|
type GetGitRepoForPushRow struct {
|
|
CloneUrl string `json:"clone_url"`
|
|
FullName string `json:"full_name"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
func (q *Queries) GetGitRepoForPush(ctx context.Context, id uuid.UUID) (GetGitRepoForPushRow, error) {
|
|
row := q.db.QueryRowContext(ctx, getGitRepoForPush, id)
|
|
var i GetGitRepoForPushRow
|
|
err := row.Scan(&i.CloneUrl, &i.FullName, &i.UserID)
|
|
return i, err
|
|
}
|
|
|
|
const getGitRepositoryByFullName = `-- name: GetGitRepositoryByFullName :one
|
|
SELECT id, provider_id, name, full_name, COALESCE(description, '') AS description,
|
|
clone_url, COALESCE(webhook_url, '') AS webhook_url,
|
|
default_branch, is_private, user_id, created_at, updated_at
|
|
FROM git_repositories
|
|
WHERE provider_id = $1 AND full_name = $2 AND user_id = $3
|
|
`
|
|
|
|
type GetGitRepositoryByFullNameParams struct {
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
FullName string `json:"full_name"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
type GetGitRepositoryByFullNameRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
Name string `json:"name"`
|
|
FullName string `json:"full_name"`
|
|
Description string `json:"description"`
|
|
CloneUrl string `json:"clone_url"`
|
|
WebhookUrl string `json:"webhook_url"`
|
|
DefaultBranch sql.NullString `json:"default_branch"`
|
|
IsPrivate sql.NullBool `json:"is_private"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) GetGitRepositoryByFullName(ctx context.Context, arg GetGitRepositoryByFullNameParams) (GetGitRepositoryByFullNameRow, error) {
|
|
row := q.db.QueryRowContext(ctx, getGitRepositoryByFullName, arg.ProviderID, arg.FullName, arg.UserID)
|
|
var i GetGitRepositoryByFullNameRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.ProviderID,
|
|
&i.Name,
|
|
&i.FullName,
|
|
&i.Description,
|
|
&i.CloneUrl,
|
|
&i.WebhookUrl,
|
|
&i.DefaultBranch,
|
|
&i.IsPrivate,
|
|
&i.UserID,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getGitRepositoryProviderID = `-- name: GetGitRepositoryProviderID :one
|
|
SELECT provider_id FROM git_repositories WHERE id = $1 AND user_id = $2
|
|
`
|
|
|
|
type GetGitRepositoryProviderIDParams struct {
|
|
ID uuid.UUID `json:"id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
func (q *Queries) GetGitRepositoryProviderID(ctx context.Context, arg GetGitRepositoryProviderIDParams) (uuid.UUID, error) {
|
|
row := q.db.QueryRowContext(ctx, getGitRepositoryProviderID, arg.ID, arg.UserID)
|
|
var provider_id uuid.UUID
|
|
err := row.Scan(&provider_id)
|
|
return provider_id, err
|
|
}
|
|
|
|
const getGitWebhookForPush = `-- name: GetGitWebhookForPush :one
|
|
SELECT webhook_secret, repo_id, provider_id, COALESCE(branch_filter, '') AS branch_filter, active
|
|
FROM git_webhooks WHERE id = $1
|
|
`
|
|
|
|
type GetGitWebhookForPushRow struct {
|
|
WebhookSecret string `json:"webhook_secret"`
|
|
RepoID uuid.UUID `json:"repo_id"`
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
BranchFilter string `json:"branch_filter"`
|
|
Active sql.NullBool `json:"active"`
|
|
}
|
|
|
|
func (q *Queries) GetGitWebhookForPush(ctx context.Context, id uuid.UUID) (GetGitWebhookForPushRow, error) {
|
|
row := q.db.QueryRowContext(ctx, getGitWebhookForPush, id)
|
|
var i GetGitWebhookForPushRow
|
|
err := row.Scan(
|
|
&i.WebhookSecret,
|
|
&i.RepoID,
|
|
&i.ProviderID,
|
|
&i.BranchFilter,
|
|
&i.Active,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const insertGitProvider = `-- name: InsertGitProvider :exec
|
|
INSERT INTO git_providers (id, name, display_name, api_url, webhook_url, access_token, user_id, created_at, updated_at)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, NOW(), NOW())
|
|
`
|
|
|
|
type InsertGitProviderParams struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
DisplayName string `json:"display_name"`
|
|
ApiUrl string `json:"api_url"`
|
|
WebhookUrl string `json:"webhook_url"`
|
|
AccessToken string `json:"access_token"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
func (q *Queries) InsertGitProvider(ctx context.Context, arg InsertGitProviderParams) error {
|
|
_, err := q.db.ExecContext(ctx, insertGitProvider,
|
|
arg.ID,
|
|
arg.Name,
|
|
arg.DisplayName,
|
|
arg.ApiUrl,
|
|
arg.WebhookUrl,
|
|
arg.AccessToken,
|
|
arg.UserID,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const insertGitRepository = `-- name: InsertGitRepository :one
|
|
INSERT INTO git_repositories (id, provider_id, name, full_name, description, clone_url, default_branch, is_private, user_id, created_at, updated_at)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, NOW(), NOW())
|
|
RETURNING created_at, updated_at
|
|
`
|
|
|
|
type InsertGitRepositoryParams struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
Name string `json:"name"`
|
|
FullName string `json:"full_name"`
|
|
Description sql.NullString `json:"description"`
|
|
CloneUrl string `json:"clone_url"`
|
|
DefaultBranch sql.NullString `json:"default_branch"`
|
|
IsPrivate sql.NullBool `json:"is_private"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
type InsertGitRepositoryRow struct {
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) InsertGitRepository(ctx context.Context, arg InsertGitRepositoryParams) (InsertGitRepositoryRow, error) {
|
|
row := q.db.QueryRowContext(ctx, insertGitRepository,
|
|
arg.ID,
|
|
arg.ProviderID,
|
|
arg.Name,
|
|
arg.FullName,
|
|
arg.Description,
|
|
arg.CloneUrl,
|
|
arg.DefaultBranch,
|
|
arg.IsPrivate,
|
|
arg.UserID,
|
|
)
|
|
var i InsertGitRepositoryRow
|
|
err := row.Scan(&i.CreatedAt, &i.UpdatedAt)
|
|
return i, err
|
|
}
|
|
|
|
const listConnectedRepositories = `-- name: ListConnectedRepositories :many
|
|
SELECT r.id, r.provider_id, r.name, r.full_name, COALESCE(r.description, '') AS description, r.clone_url,
|
|
r.default_branch, r.is_private, r.user_id, r.created_at, r.updated_at,
|
|
p.name AS provider_name, p.display_name
|
|
FROM git_repositories r
|
|
JOIN git_providers p ON r.provider_id = p.id
|
|
WHERE r.user_id = $1
|
|
ORDER BY r.updated_at DESC
|
|
LIMIT $2 OFFSET $3
|
|
`
|
|
|
|
type ListConnectedRepositoriesParams struct {
|
|
UserID uuid.UUID `json:"user_id"`
|
|
Limit int32 `json:"limit"`
|
|
Offset int32 `json:"offset"`
|
|
}
|
|
|
|
type ListConnectedRepositoriesRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
Name string `json:"name"`
|
|
FullName string `json:"full_name"`
|
|
Description string `json:"description"`
|
|
CloneUrl string `json:"clone_url"`
|
|
DefaultBranch sql.NullString `json:"default_branch"`
|
|
IsPrivate sql.NullBool `json:"is_private"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
ProviderName string `json:"provider_name"`
|
|
DisplayName string `json:"display_name"`
|
|
}
|
|
|
|
func (q *Queries) ListConnectedRepositories(ctx context.Context, arg ListConnectedRepositoriesParams) ([]ListConnectedRepositoriesRow, error) {
|
|
rows, err := q.db.QueryContext(ctx, listConnectedRepositories, arg.UserID, arg.Limit, arg.Offset)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []ListConnectedRepositoriesRow{}
|
|
for rows.Next() {
|
|
var i ListConnectedRepositoriesRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.ProviderID,
|
|
&i.Name,
|
|
&i.FullName,
|
|
&i.Description,
|
|
&i.CloneUrl,
|
|
&i.DefaultBranch,
|
|
&i.IsPrivate,
|
|
&i.UserID,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
&i.ProviderName,
|
|
&i.DisplayName,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const listGitProviders = `-- name: ListGitProviders :many
|
|
SELECT id, name, display_name, api_url, webhook_url, user_id, created_at, updated_at
|
|
FROM git_providers
|
|
WHERE user_id = $1
|
|
ORDER BY created_at DESC
|
|
`
|
|
|
|
type ListGitProvidersRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
DisplayName string `json:"display_name"`
|
|
ApiUrl string `json:"api_url"`
|
|
WebhookUrl string `json:"webhook_url"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) ListGitProviders(ctx context.Context, userID uuid.UUID) ([]ListGitProvidersRow, error) {
|
|
rows, err := q.db.QueryContext(ctx, listGitProviders, userID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []ListGitProvidersRow{}
|
|
for rows.Next() {
|
|
var i ListGitProvidersRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.DisplayName,
|
|
&i.ApiUrl,
|
|
&i.WebhookUrl,
|
|
&i.UserID,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const listGitRepositories = `-- name: ListGitRepositories :many
|
|
SELECT id, provider_id, name, full_name, COALESCE(description, '') AS description,
|
|
clone_url, COALESCE(webhook_url, '') AS webhook_url,
|
|
default_branch, is_private, user_id, created_at, updated_at
|
|
FROM git_repositories
|
|
WHERE provider_id = $1 AND user_id = $2
|
|
AND ($3::text IS NULL OR full_name ILIKE ('%' || $3::text || '%') OR name ILIKE ('%' || $3::text || '%'))
|
|
ORDER BY updated_at DESC
|
|
LIMIT $4 OFFSET $5
|
|
`
|
|
|
|
type ListGitRepositoriesParams struct {
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
Column3 string `json:"column_3"`
|
|
Limit int32 `json:"limit"`
|
|
Offset int32 `json:"offset"`
|
|
}
|
|
|
|
type ListGitRepositoriesRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
Name string `json:"name"`
|
|
FullName string `json:"full_name"`
|
|
Description string `json:"description"`
|
|
CloneUrl string `json:"clone_url"`
|
|
WebhookUrl string `json:"webhook_url"`
|
|
DefaultBranch sql.NullString `json:"default_branch"`
|
|
IsPrivate sql.NullBool `json:"is_private"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) ListGitRepositories(ctx context.Context, arg ListGitRepositoriesParams) ([]ListGitRepositoriesRow, error) {
|
|
rows, err := q.db.QueryContext(ctx, listGitRepositories,
|
|
arg.ProviderID,
|
|
arg.UserID,
|
|
arg.Column3,
|
|
arg.Limit,
|
|
arg.Offset,
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []ListGitRepositoriesRow{}
|
|
for rows.Next() {
|
|
var i ListGitRepositoriesRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.ProviderID,
|
|
&i.Name,
|
|
&i.FullName,
|
|
&i.Description,
|
|
&i.CloneUrl,
|
|
&i.WebhookUrl,
|
|
&i.DefaultBranch,
|
|
&i.IsPrivate,
|
|
&i.UserID,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const listServicesForPush = `-- name: ListServicesForPush :many
|
|
SELECT s.id, s.project_id, s.name,
|
|
COALESCE(s.type, s.service_type, '') AS type, COALESCE(s.status, '') AS status,
|
|
COALESCE(s.image, s.image_name, '') AS image, COALESCE(s.command, s.start_command, '') AS command,
|
|
COALESCE(s.environment, '') AS environment, COALESCE(s.git_repo, s.source_url, '') AS git_repo,
|
|
COALESCE(s.git_branch, '') AS git_branch, COALESCE(s.build_path, '') AS build_path,
|
|
COALESCE(s.cpu, '') AS cpu, COALESCE(s.memory, '') AS memory,
|
|
s.created_at, s.updated_at
|
|
FROM services s
|
|
WHERE (s.git_branch = $1 OR $1 = '') AND (s.git_repo = $2 OR s.git_repo = $3)
|
|
`
|
|
|
|
type ListServicesForPushParams struct {
|
|
GitBranch sql.NullString `json:"git_branch"`
|
|
GitRepo sql.NullString `json:"git_repo"`
|
|
GitRepo_2 sql.NullString `json:"git_repo_2"`
|
|
}
|
|
|
|
type ListServicesForPushRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
Name string `json:"name"`
|
|
Type string `json:"type"`
|
|
Status string `json:"status"`
|
|
Image string `json:"image"`
|
|
Command string `json:"command"`
|
|
Environment string `json:"environment"`
|
|
GitRepo string `json:"git_repo"`
|
|
GitBranch string `json:"git_branch"`
|
|
BuildPath string `json:"build_path"`
|
|
Cpu string `json:"cpu"`
|
|
Memory string `json:"memory"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) ListServicesForPush(ctx context.Context, arg ListServicesForPushParams) ([]ListServicesForPushRow, error) {
|
|
rows, err := q.db.QueryContext(ctx, listServicesForPush, arg.GitBranch, arg.GitRepo, arg.GitRepo_2)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []ListServicesForPushRow{}
|
|
for rows.Next() {
|
|
var i ListServicesForPushRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.ProjectID,
|
|
&i.Name,
|
|
&i.Type,
|
|
&i.Status,
|
|
&i.Image,
|
|
&i.Command,
|
|
&i.Environment,
|
|
&i.GitRepo,
|
|
&i.GitBranch,
|
|
&i.BuildPath,
|
|
&i.Cpu,
|
|
&i.Memory,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const upsertGitHubAppProvider = `-- name: UpsertGitHubAppProvider :one
|
|
INSERT INTO git_providers (id, name, display_name, api_url, webhook_url, access_token, user_id, created_at, updated_at)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, NOW(), NOW())
|
|
ON CONFLICT (name, user_id)
|
|
DO UPDATE SET
|
|
display_name = EXCLUDED.display_name,
|
|
api_url = EXCLUDED.api_url,
|
|
webhook_url = EXCLUDED.webhook_url,
|
|
access_token = EXCLUDED.access_token,
|
|
updated_at = NOW()
|
|
RETURNING id, created_at, updated_at
|
|
`
|
|
|
|
type UpsertGitHubAppProviderParams struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
DisplayName string `json:"display_name"`
|
|
ApiUrl string `json:"api_url"`
|
|
WebhookUrl string `json:"webhook_url"`
|
|
AccessToken string `json:"access_token"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
type UpsertGitHubAppProviderRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) UpsertGitHubAppProvider(ctx context.Context, arg UpsertGitHubAppProviderParams) (UpsertGitHubAppProviderRow, error) {
|
|
row := q.db.QueryRowContext(ctx, upsertGitHubAppProvider,
|
|
arg.ID,
|
|
arg.Name,
|
|
arg.DisplayName,
|
|
arg.ApiUrl,
|
|
arg.WebhookUrl,
|
|
arg.AccessToken,
|
|
arg.UserID,
|
|
)
|
|
var i UpsertGitHubAppProviderRow
|
|
err := row.Scan(&i.ID, &i.CreatedAt, &i.UpdatedAt)
|
|
return i, err
|
|
}
|
|
|
|
const upsertGitRepository = `-- name: UpsertGitRepository :exec
|
|
INSERT INTO git_repositories (id, provider_id, name, full_name, description, clone_url, default_branch, is_private, user_id, created_at, updated_at)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, NOW(), NOW())
|
|
ON CONFLICT (provider_id, full_name)
|
|
DO UPDATE SET
|
|
name = EXCLUDED.name,
|
|
description = EXCLUDED.description,
|
|
clone_url = EXCLUDED.clone_url,
|
|
default_branch = EXCLUDED.default_branch,
|
|
is_private = EXCLUDED.is_private,
|
|
updated_at = NOW()
|
|
`
|
|
|
|
type UpsertGitRepositoryParams struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
Name string `json:"name"`
|
|
FullName string `json:"full_name"`
|
|
Description sql.NullString `json:"description"`
|
|
CloneUrl string `json:"clone_url"`
|
|
DefaultBranch sql.NullString `json:"default_branch"`
|
|
IsPrivate sql.NullBool `json:"is_private"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
}
|
|
|
|
func (q *Queries) UpsertGitRepository(ctx context.Context, arg UpsertGitRepositoryParams) error {
|
|
_, err := q.db.ExecContext(ctx, upsertGitRepository,
|
|
arg.ID,
|
|
arg.ProviderID,
|
|
arg.Name,
|
|
arg.FullName,
|
|
arg.Description,
|
|
arg.CloneUrl,
|
|
arg.DefaultBranch,
|
|
arg.IsPrivate,
|
|
arg.UserID,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const upsertGitWebhook = `-- name: UpsertGitWebhook :one
|
|
INSERT INTO git_webhooks (id, repo_id, provider_id, events, webhook_secret, active, branch_filter, created_at, updated_at)
|
|
VALUES ($1, $2, $3, $4, $5, TRUE, $6, NOW(), NOW())
|
|
ON CONFLICT (repo_id, provider_id)
|
|
DO UPDATE SET
|
|
events = EXCLUDED.events,
|
|
webhook_secret = EXCLUDED.webhook_secret,
|
|
active = TRUE,
|
|
branch_filter = EXCLUDED.branch_filter,
|
|
updated_at = NOW()
|
|
RETURNING id, active, created_at, updated_at
|
|
`
|
|
|
|
type UpsertGitWebhookParams struct {
|
|
ID uuid.UUID `json:"id"`
|
|
RepoID uuid.UUID `json:"repo_id"`
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
Events string `json:"events"`
|
|
WebhookSecret string `json:"webhook_secret"`
|
|
BranchFilter sql.NullString `json:"branch_filter"`
|
|
}
|
|
|
|
type UpsertGitWebhookRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Active sql.NullBool `json:"active"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) UpsertGitWebhook(ctx context.Context, arg UpsertGitWebhookParams) (UpsertGitWebhookRow, error) {
|
|
row := q.db.QueryRowContext(ctx, upsertGitWebhook,
|
|
arg.ID,
|
|
arg.RepoID,
|
|
arg.ProviderID,
|
|
arg.Events,
|
|
arg.WebhookSecret,
|
|
arg.BranchFilter,
|
|
)
|
|
var i UpsertGitWebhookRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Active,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|