Add support for access repos with credentials
This commit is contained in:
+27
-10
@@ -40,10 +40,15 @@ func LaunchDB(conf config.DBConfig) (Database, error) {
|
||||
db := Database{}
|
||||
|
||||
var err error
|
||||
log.Infof("Connecting to database with URL \"%v\"", dbURLNoPasswd)
|
||||
db.Conn, err = pgxpool.New(context.Background(), dbURL)
|
||||
if err != nil {
|
||||
return db, fmt.Errorf("could not create database pool: %w", err)
|
||||
}
|
||||
|
||||
// sleep until we can sucessfully acquire a connection
|
||||
for i := 0; i < 10; i++ {
|
||||
// TODO: retry logic is broken with pgxpool
|
||||
log.Infof("Connecting to database with URL \"%v\" (attempt %v)", dbURLNoPasswd, i)
|
||||
db.Conn, err = pgxpool.New(context.Background(), dbURL)
|
||||
_, err = db.Conn.Acquire(context.Background())
|
||||
if err == nil {
|
||||
break
|
||||
}
|
||||
@@ -90,11 +95,24 @@ CREATE TABLE version (
|
||||
|
||||
);
|
||||
|
||||
CREATE TABLE credentials (
|
||||
id UUID PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
type TEXT NOT NULL,
|
||||
username TEXT NOT NULL,
|
||||
secret TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE pipelines (
|
||||
id UUID PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
url TEXT NOT NULL,
|
||||
poll_interval INTEGER
|
||||
poll_interval INTEGER,
|
||||
credential UUID DEFAULT NULL,
|
||||
|
||||
CONSTRAINT fk_credential
|
||||
FOREIGN KEY(credential)
|
||||
REFERENCES credentials(id)
|
||||
);
|
||||
|
||||
CREATE TABLE webhooks (
|
||||
@@ -108,12 +126,6 @@ CREATE TABLE webhooks (
|
||||
REFERENCES pipelines(id)
|
||||
);
|
||||
|
||||
CREATE TABLE runners (
|
||||
id UUID PRIMARY KEY,
|
||||
name TEXT,
|
||||
secret TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE runs (
|
||||
id UUID PRIMARY KEY,
|
||||
pipeline UUID,
|
||||
@@ -142,6 +154,11 @@ CREATE TABLE command_executions (
|
||||
REFERENCES runs(id)
|
||||
);
|
||||
|
||||
CREATE TABLE runners (
|
||||
id UUID PRIMARY KEY,
|
||||
name TEXT,
|
||||
secret TEXT
|
||||
);
|
||||
`
|
||||
|
||||
_, err := conn.Exec(context.Background(), createTablesQuery)
|
||||
|
||||
Reference in New Issue
Block a user