Skip to content
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
57e5162
Merge branch 'master' of github.com:go-vela/server
jbrockopp Feb 23, 2022
b6b840c
Merge branch 'master' of github.com:go-vela/server
jbrockopp Mar 10, 2022
858c818
Merge branch 'master' of github.com:go-vela/server
jbrockopp Mar 16, 2022
ceddb11
Merge branch 'master' of github.com:go-vela/server
jbrockopp Mar 28, 2022
331b2a2
Merge branch 'master' of github.com:go-vela/server
jbrockopp Apr 11, 2022
c4ec5fb
Merge branches 'master' and 'master' of github.com:go-vela/server
jbrockopp Apr 18, 2022
30c1151
Merge branch 'master' of github.com:go-vela/server
jbrockopp Apr 20, 2022
0ddc31c
Merge branch 'master' of github.com:go-vela/server
jbrockopp Apr 27, 2022
890f9fa
Merge branch 'master' of github.com:go-vela/server
jbrockopp May 9, 2022
cf4ca0e
Merge branch 'master' of github.com:go-vela/server
jbrockopp May 20, 2022
175e5c5
Merge branch 'master' of github.com:go-vela/server
jbrockopp May 31, 2022
1728dce
Merge branch 'master' of github.com:go-vela/server
jbrockopp Jun 12, 2022
88d3974
Merge branch 'master' of github.com:go-vela/server
jbrockopp Jun 22, 2022
de5ac75
feat(database): add user engine
jbrockopp Jun 22, 2022
8f2fce6
chore(database): remove old user logic
jbrockopp Jun 22, 2022
736a0e9
refactor(database): restructure DDL functions
jbrockopp Jun 22, 2022
c28ca23
chore: updates for database user engine
jbrockopp Jun 22, 2022
a4d8bbc
Merge branch 'master' of github.com:go-vela/server
jbrockopp Jun 26, 2022
c719ab0
Merge branch 'refactor/database/user' of github.com:go-vela/server in…
jbrockopp Jun 26, 2022
a147ce8
feat(database): add repo engine
jbrockopp Jun 27, 2022
b7e267f
Merge branch 'master' of github.com:go-vela/server into refactor/data…
jbrockopp Aug 20, 2022
ff5b8e1
chore: save work
jbrockopp Aug 27, 2022
ca230da
Merge branch 'master' of github.com:go-vela/server into refactor/data…
jbrockopp Aug 27, 2022
ab2f213
fix: Scan() -> Take()
jbrockopp Aug 27, 2022
68cf328
fix: sort by for listing repos
jbrockopp Sep 10, 2022
55862b2
Merge branch 'master' into refactor/database/repo
jbrockopp Sep 10, 2022
adabf6e
Merge branch 'refactor/database/repo' of github.com:go-vela/server in…
jbrockopp Sep 10, 2022
30ff1fa
Merge branch 'master' into refactor/database/repo
jbrockopp Sep 13, 2022
7c59753
Merge branch 'refactor/database/repo' of github.com:go-vela/server in…
jbrockopp Sep 14, 2022
b8bc9e9
Merge branch 'master' of github.com:go-vela/server into refactor/data…
jbrockopp Sep 14, 2022
9d59ed3
Merge branch 'master' into refactor/database/repo
jbrockopp Sep 16, 2022
c6addce
Merge branch 'refactor/database/repo' of github.com:go-vela/server in…
jbrockopp Sep 16, 2022
fc9505b
chore(database): remove unneeded Limit()
jbrockopp Sep 16, 2022
ee0fb2d
chore: address linter feedback
jbrockopp Sep 16, 2022
b759ae3
chore: address linter feedback v2
jbrockopp Sep 16, 2022
363a1d9
chore: address linter feedback v3
jbrockopp Sep 16, 2022
b296e48
Merge branch 'master' into refactor/database/repo
jbrockopp Sep 16, 2022
57debed
Merge branch 'main' into refactor/database/repo
jbrockopp Sep 16, 2022
b0b3f00
Merge branch 'main' into refactor/database/repo
wass3r Sep 26, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/admin/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func AllRepos(c *gin.Context) {
logrus.Info("Admin: reading all repos")

// send API call to capture all repos
r, err := database.FromContext(c).GetRepoList()
r, err := database.FromContext(c).ListRepos()
if err != nil {
retErr := fmt.Errorf("unable to capture all repos: %w", err)

Expand Down
5 changes: 2 additions & 3 deletions api/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ import (
"net/http"
"time"

"github.com/go-vela/server/database"

"github.com/gin-gonic/gin"
"github.com/go-vela/server/database"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
"github.com/prometheus/client_golang/prometheus/promhttp"
Expand Down Expand Up @@ -217,7 +216,7 @@ func recordGauges(c *gin.Context) {
// repo_count
if q.RepoCount {
// send API call to capture the total number of repos
r, err := database.FromContext(c).GetRepoCount()
r, err := database.FromContext(c).CountRepos()
if err != nil {
logrus.Errorf("unable to get count of all repos: %v", err)
}
Expand Down
53 changes: 22 additions & 31 deletions api/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ func CreateRepo(c *gin.Context) {
}

// send API call to capture the repo from the database
dbRepo, err := database.FromContext(c).GetRepo(r.GetOrg(), r.GetName())
dbRepo, err := database.FromContext(c).GetRepoForOrg(r.GetOrg(), r.GetName())
if err == nil && dbRepo.GetActive() {
retErr := fmt.Errorf("unable to activate repo: %s is already active", r.GetFullName())

Expand Down Expand Up @@ -262,7 +262,7 @@ func CreateRepo(c *gin.Context) {
}

// send API call to capture the updated repo
r, _ = database.FromContext(c).GetRepo(dbRepo.GetOrg(), dbRepo.GetName())
r, _ = database.FromContext(c).GetRepoForOrg(dbRepo.GetOrg(), dbRepo.GetName())
} else {
// send API call to create the repo
err = database.FromContext(c).CreateRepo(r)
Expand All @@ -275,7 +275,7 @@ func CreateRepo(c *gin.Context) {
}

// send API call to capture the created repo
r, _ = database.FromContext(c).GetRepo(r.GetOrg(), r.GetName())
r, _ = database.FromContext(c).GetRepoForOrg(r.GetOrg(), r.GetName())
}

c.JSON(http.StatusCreated, r)
Expand Down Expand Up @@ -361,18 +361,17 @@ func GetRepos(c *gin.Context) {
// ensure per_page isn't above or below allowed values
perPage = util.MaxInt(1, util.MinInt(100, perPage))

// send API call to capture the total number of repos for the user
t, err := database.FromContext(c).GetUserRepoCount(u)
if err != nil {
retErr := fmt.Errorf("unable to get repo count for user %s: %w", u.GetName(), err)

util.HandleError(c, http.StatusInternalServerError, retErr)

return
// capture the query parameters if present:
//
// * active
// * sort_by
filters := map[string]interface{}{
"active": util.QueryParameter(c, "active", "true"),
"sort_by": util.QueryParameter(c, "sort_by", "name"),
}

// send API call to capture the list of repos for the user
r, err := database.FromContext(c).GetUserRepoList(u, page, perPage)
r, t, err := database.FromContext(c).ListReposForUser(u, filters, page, perPage)
if err != nil {
retErr := fmt.Errorf("unable to get repos for user %s: %w", u.GetName(), err)

Expand Down Expand Up @@ -493,35 +492,27 @@ func GetOrgRepos(c *gin.Context) {
// ensure per_page isn't above or below allowed values
perPage = util.MaxInt(1, util.MinInt(100, perPage))

// capture the sort_by query parameter if present
sortBy := util.QueryParameter(c, "sort_by", "name")
// capture the query parameters if present:
//
// * active
// * sort_by
filters := map[string]interface{}{
"active": util.QueryParameter(c, "active", "true"),
"sort_by": util.QueryParameter(c, "sort_by", "name"),
}

// See if the user is an org admin to bypass individual permission checks
perm, err := scm.FromContext(c).OrgAccess(u, o)
if err != nil {
logrus.Errorf("unable to get user %s access level for org %s", u.GetName(), o)
}

filters := map[string]string{}
// Only show public repos to non-admins
if perm != "admin" {
filters["visibility"] = "public"
}

filters["active"] = util.QueryParameter(c, "active", "true")

// send API call to capture the total number of repos for the org
t, err := database.FromContext(c).GetOrgRepoCount(o, filters)
if err != nil {
retErr := fmt.Errorf("unable to get repo count for org %s: %w", o, err)

util.HandleError(c, http.StatusInternalServerError, retErr)

return
filters["visibility"] = constants.VisibilityPublic
}

// send API call to capture the list of repos for the org
r, err := database.FromContext(c).GetOrgRepoList(o, filters, page, perPage, sortBy)
r, t, err := database.FromContext(c).ListReposForOrg(o, filters, page, perPage)
if err != nil {
retErr := fmt.Errorf("unable to get repos for org %s: %w", o, err)

Expand Down Expand Up @@ -806,7 +797,7 @@ func UpdateRepo(c *gin.Context) {
}

// send API call to capture the updated repo
r, _ = database.FromContext(c).GetRepo(r.GetOrg(), r.GetName())
r, _ = database.FromContext(c).GetRepoForOrg(r.GetOrg(), r.GetName())

c.JSON(http.StatusOK, r)
}
Expand Down
14 changes: 10 additions & 4 deletions api/scm.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ package api

import (
"fmt"
"github.com/go-vela/types/constants"
"net/http"

"github.com/gin-gonic/gin"
Expand Down Expand Up @@ -69,14 +70,19 @@ func SyncRepos(c *gin.Context) {
logger.Errorf("unable to get user %s access level for org %s", u.GetName(), o)
}

filters := map[string]string{}
// capture the query parameters if present:
//
// * sort_by
filters := map[string]interface{}{
"sort_by": util.QueryParameter(c, "sort_by", "name"),
}
// Only show public repos to non-admins
if perm != "admin" {
filters["visibility"] = "public"
filters["visibility"] = constants.VisibilityPublic
}

// send API call to capture the total number of repos for the org
t, err := database.FromContext(c).GetOrgRepoCount(o, filters)
t, err := database.FromContext(c).CountReposForOrg(o, filters)
if err != nil {
retErr := fmt.Errorf("unable to get repo count for org %s: %w", o, err)

Expand All @@ -89,7 +95,7 @@ func SyncRepos(c *gin.Context) {
page := 0
// capture all repos belonging to a certain org in database
for orgRepos := int64(0); orgRepos < t; orgRepos += 100 {
r, err := database.FromContext(c).GetOrgRepoList(o, filters, page, 100, "name")
r, _, err := database.FromContext(c).ListReposForOrg(o, filters, page, 100)
if err != nil {
retErr := fmt.Errorf("unable to get repo count for org %s: %w", o, err)

Expand Down
4 changes: 2 additions & 2 deletions api/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -432,11 +432,11 @@ func GetUserSourceRepos(c *gin.Context) {
for org := range output {
// capture source repos from the database backend, grouped by org
page := 1
filters := map[string]string{}
filters := map[string]interface{}{}

for page > 0 {
// send API call to capture the list of repos for the org
dbReposPart, err := database.FromContext(c).GetOrgRepoList(org, filters, page, 100, "name")
dbReposPart, _, err := database.FromContext(c).ListReposForOrg(org, filters, page, 100)
if err != nil {
retErr := fmt.Errorf("unable to get repos for org %s: %w", org, err)

Expand Down
6 changes: 3 additions & 3 deletions api/webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ func PostWebhook(c *gin.Context) {
}

// send API call to capture parsed repo from webhook
r, err = database.FromContext(c).GetRepo(r.GetOrg(), r.GetName())
r, err = database.FromContext(c).GetRepoForOrg(r.GetOrg(), r.GetName())
if err != nil {
retErr := fmt.Errorf("%s: failed to get repo %s: %w", baseErr, r.GetFullName(), err)
util.HandleError(c, http.StatusBadRequest, retErr)
Expand Down Expand Up @@ -414,7 +414,7 @@ func PostWebhook(c *gin.Context) {
}

// send API call to capture repo for the counter
r, err = database.FromContext(c).GetRepo(r.GetOrg(), r.GetName())
r, err = database.FromContext(c).GetRepoForOrg(r.GetOrg(), r.GetName())
if err != nil {
retErr := fmt.Errorf("%s: unable to get repo %s: %w", baseErr, r.GetFullName(), err)

Expand Down Expand Up @@ -729,7 +729,7 @@ func renameRepository(h *library.Hook, r *library.Repo, c *gin.Context, m *types
// get the old name of the repo
previousName := r.GetPreviousName()
// get the repo from the database that matches the old name
dbR, err := database.FromContext(c).GetRepo(r.GetOrg(), previousName)
dbR, err := database.FromContext(c).GetRepoForOrg(r.GetOrg(), previousName)
if err != nil {
retErr := fmt.Errorf("%s: failed to get repo %s/%s from database", baseErr, r.GetOrg(), previousName)
util.HandleError(c, http.StatusBadRequest, retErr)
Expand Down
2 changes: 1 addition & 1 deletion database/pipeline/get.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func (e *engine) GetPipeline(id int64) (*library.Pipeline, error) {
Table(constants.TablePipeline).
Where("id = ?", id).
Limit(1).
Scan(p).
Take(p).
Error
if err != nil {
return nil, err
Expand Down
2 changes: 1 addition & 1 deletion database/pipeline/get_repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func (e *engine) GetPipelineForRepo(commit string, r *library.Repo) (*library.Pi
Where("repo_id = ?", r.GetID()).
Where("\"commit\" = ?", commit).
Limit(1).
Scan(p).
Take(p).
Error
if err != nil {
return nil, err
Expand Down
49 changes: 0 additions & 49 deletions database/postgres/ddl/repo.go

This file was deleted.

76 changes: 0 additions & 76 deletions database/postgres/dml/repo.go

This file was deleted.

Loading