From b0e091f4b617c056d1184f8d7dde0e391caaf8de Mon Sep 17 00:00:00 2001
From: dave vader <48764154+plyr4@users.noreply.github.com>
Date: Tue, 15 Oct 2024 08:57:04 -0500
Subject: [PATCH 1/6] fix(oidc): image parse sha support (#1207)
---
internal/token/mint.go | 4 ++++
internal/token/mint_test.go | 19 ++++++++++++++-----
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/internal/token/mint.go b/internal/token/mint.go
index 4ab6ed4f7..8fe074aab 100644
--- a/internal/token/mint.go
+++ b/internal/token/mint.go
@@ -223,6 +223,10 @@ func imageParse(image string) (string, string, error) {
return image, "latest", nil
case 2:
return parts[0], parts[1], nil
+ case 3:
+ _parts := strings.Split(parts[1]+parts[2], "@")
+
+ return parts[0], _parts[0], nil
default:
return "", "", fmt.Errorf("invalid image format: %s", image)
}
diff --git a/internal/token/mint_test.go b/internal/token/mint_test.go
index 7ec01bc34..8bde110f3 100644
--- a/internal/token/mint_test.go
+++ b/internal/token/mint_test.go
@@ -24,6 +24,15 @@ func Test_imageParse(t *testing.T) {
wantTag: "1.20",
wantErr: false,
},
+ {
+ name: "image with tag and sha",
+ args: args{
+ image: "alpine:1.20@sha:fc0d4410fd2343cf6f7a75d5819001a34ca3b549fbab0c231b7aab49b57e9e43",
+ },
+ wantName: "alpine",
+ wantTag: "1.20",
+ wantErr: false,
+ },
{
name: "image without latest tag",
args: args{
@@ -45,16 +54,16 @@ func Test_imageParse(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
- got, got1, err := imageParse(tt.args.image)
+ gotName, gotTag, err := imageParse(tt.args.image)
if (err != nil) != tt.wantErr {
t.Errorf("imageParse() error = %v, wantErr %v", err, tt.wantErr)
return
}
- if got != tt.wantName {
- t.Errorf("imageParse() got = %v, wantName %v", got, tt.wantName)
+ if gotName != tt.wantName {
+ t.Errorf("imageParse() gotName = %v, wantName %v", gotName, tt.wantName)
}
- if got1 != tt.wantTag {
- t.Errorf("imageParse() got1 = %v, wantName %v", got1, tt.wantTag)
+ if gotTag != tt.wantTag {
+ t.Errorf("imageParse() gotTag = %v, wantTag %v", gotTag, tt.wantTag)
}
})
}
From 37f2c35301f3afea51fa66479f4f643e5f6d1559 Mon Sep 17 00:00:00 2001
From: Easton Crupper <65553218+ecrupper@users.noreply.github.com>
Date: Thu, 17 Oct 2024 14:18:09 -0400
Subject: [PATCH 2/6] refactor(secret): use server API types for secret (#1209)
---
api/admin/secret.go | 4 +-
api/secret/create.go | 8 +-
api/secret/list.go | 4 +-
api/secret/update.go | 4 +-
api/types/secret.go | 546 +++++++++++++++++++++++
api/types/secret_test.go | 644 ++++++++++++++++++++++++++++
api/webhook/post.go | 3 +-
database/integration_test.go | 32 +-
database/secret/count_org_test.go | 5 +-
database/secret/count_repo_test.go | 7 +-
database/secret/count_team_test.go | 11 +-
database/secret/count_test.go | 5 +-
database/secret/create.go | 19 +-
database/secret/create_test.go | 16 +-
database/secret/delete.go | 11 +-
database/secret/delete_test.go | 11 +-
database/secret/get.go | 21 +-
database/secret/get_org.go | 18 +-
database/secret/get_org_test.go | 9 +-
database/secret/get_repo.go | 20 +-
database/secret/get_repo_test.go | 11 +-
database/secret/get_team.go | 12 +-
database/secret/get_team_test.go | 9 +-
database/secret/get_test.go | 9 +-
database/secret/interface.go | 25 +-
database/secret/list.go | 18 +-
database/secret/list_org.go | 18 +-
database/secret/list_org_test.go | 17 +-
database/secret/list_repo.go | 17 +-
database/secret/list_repo_test.go | 19 +-
database/secret/list_team.go | 32 +-
database/secret/list_team_test.go | 31 +-
database/secret/list_test.go | 17 +-
database/secret/secret_test.go | 79 ----
database/secret/update.go | 19 +-
database/secret/update_test.go | 16 +-
database/testutils/api_resources.go | 20 +
database/types/secret.go | 288 +++++++++++++
database/types/secret_test.go | 333 ++++++++++++++
mock/server/secret.go | 10 +-
mock/server/secret_test.go | 4 +-
secret/native/count_test.go | 4 +-
secret/native/create.go | 4 +-
secret/native/create_test.go | 18 +-
secret/native/delete_test.go | 4 +-
secret/native/get.go | 3 +-
secret/native/get_test.go | 6 +-
secret/native/list.go | 3 +-
secret/native/list_test.go | 12 +-
secret/native/update.go | 4 +-
secret/native/update_test.go | 12 +-
secret/service.go | 10 +-
secret/vault/create.go | 16 +-
secret/vault/create_test.go | 20 +-
secret/vault/get.go | 4 +-
secret/vault/get_test.go | 15 +-
secret/vault/list.go | 6 +-
secret/vault/list_test.go | 20 +-
secret/vault/update.go | 16 +-
secret/vault/update_test.go | 22 +-
secret/vault/vault.go | 12 +-
secret/vault/vault_test.go | 12 +-
62 files changed, 2152 insertions(+), 473 deletions(-)
create mode 100644 api/types/secret.go
create mode 100644 api/types/secret_test.go
create mode 100644 database/types/secret.go
create mode 100644 database/types/secret_test.go
diff --git a/api/admin/secret.go b/api/admin/secret.go
index f287e4227..f5e131e54 100644
--- a/api/admin/secret.go
+++ b/api/admin/secret.go
@@ -9,9 +9,9 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation PUT /api/v1/admin/secret admin AdminUpdateSecret
@@ -57,7 +57,7 @@ func UpdateSecret(c *gin.Context) {
l.Debug("platform admin: updating secret")
// capture body from API request
- input := new(library.Secret)
+ input := new(types.Secret)
err := c.Bind(input)
if err != nil {
diff --git a/api/secret/create.go b/api/secret/create.go
index 6c4c502b1..2a2ee8af8 100644
--- a/api/secret/create.go
+++ b/api/secret/create.go
@@ -11,13 +11,13 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/api/types/actions"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/secret"
"github.com/go-vela/server/util"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
- "github.com/go-vela/types/library/actions"
)
// swagger:operation POST /api/v1/secrets/{engine}/{type}/{org}/{name} secrets CreateSecret
@@ -175,7 +175,7 @@ func CreateSecret(c *gin.Context) {
logger.Debugf("creating new secret %s for %s service", entry, e)
// capture body from API request
- input := new(library.Secret)
+ input := new(types.Secret)
err := c.Bind(input)
if err != nil {
@@ -211,7 +211,7 @@ func CreateSecret(c *gin.Context) {
// default event set for secrets
if input.GetAllowEvents().ToDatabase() == 0 {
- e := new(library.Events)
+ e := new(types.Events)
push := new(actions.Push)
push.SetBranch(true)
diff --git a/api/secret/list.go b/api/secret/list.go
index d06371398..7f1ac50b5 100644
--- a/api/secret/list.go
+++ b/api/secret/list.go
@@ -12,12 +12,12 @@ import (
"github.com/sirupsen/logrus"
"github.com/go-vela/server/api"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/secret"
"github.com/go-vela/server/util"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// swagger:operation GET /api/v1/secrets/{engine}/{type}/{org}/{name} secrets ListSecrets
@@ -195,7 +195,7 @@ func ListSecrets(c *gin.Context) {
pagination.SetHeaderLink(c)
// variable we want to return
- secrets := []*library.Secret{}
+ secrets := []*types.Secret{}
// iterate through all secrets
for _, secret := range s {
// https://golang.org/doc/faq#closures_and_goroutines
diff --git a/api/secret/update.go b/api/secret/update.go
index 0d7d62072..a5226c3bc 100644
--- a/api/secret/update.go
+++ b/api/secret/update.go
@@ -11,11 +11,11 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/secret"
"github.com/go-vela/server/util"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
//
@@ -118,7 +118,7 @@ func UpdateSecret(c *gin.Context) {
l.WithFields(fields).Debugf("updating secret %s for %s service", entry, e)
// capture body from API request
- input := new(library.Secret)
+ input := new(types.Secret)
err := c.Bind(input)
if err != nil {
diff --git a/api/types/secret.go b/api/types/secret.go
new file mode 100644
index 000000000..ef82e9e9f
--- /dev/null
+++ b/api/types/secret.go
@@ -0,0 +1,546 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/go-vela/types/constants"
+ "github.com/go-vela/types/pipeline"
+)
+
+// Secret is the API representation of a secret.
+//
+// swagger:model Secret
+type Secret struct {
+ ID *int64 `json:"id,omitempty"`
+ Org *string `json:"org,omitempty"`
+ Repo *string `json:"repo,omitempty"`
+ Team *string `json:"team,omitempty"`
+ Name *string `json:"name,omitempty"`
+ Value *string `json:"value,omitempty"`
+ Type *string `json:"type,omitempty"`
+ Images *[]string `json:"images,omitempty"`
+ AllowEvents *Events `json:"allow_events,omitempty" yaml:"allow_events"`
+ AllowCommand *bool `json:"allow_command,omitempty"`
+ AllowSubstitution *bool `json:"allow_substitution,omitempty"`
+ CreatedAt *int64 `json:"created_at,omitempty"`
+ CreatedBy *string `json:"created_by,omitempty"`
+ UpdatedAt *int64 `json:"updated_at,omitempty"`
+ UpdatedBy *string `json:"updated_by,omitempty"`
+}
+
+// UnmarshalYAML implements the Unmarshaler interface for the Secret type.
+// This allows custom fields in the Secret type to be read from a YAML file, like AllowEvents.
+func (s *Secret) UnmarshalYAML(unmarshal func(interface{}) error) error {
+ // create an alias to perform a normal unmarshal and avoid an infinite loop
+ type jsonSecret Secret
+
+ tmp := &jsonSecret{}
+
+ err := unmarshal(tmp)
+ if err != nil {
+ return err
+ }
+
+ // overwrite existing secret
+ *s = Secret(*tmp)
+
+ return nil
+}
+
+// Sanitize creates a duplicate of the Secret without the value.
+func (s *Secret) Sanitize() *Secret {
+ // create a variable since constants can not be addressable
+ //
+ // https://golang.org/ref/spec#Address_operators
+ value := constants.SecretMask
+
+ return &Secret{
+ ID: s.ID,
+ Org: s.Org,
+ Repo: s.Repo,
+ Team: s.Team,
+ Name: s.Name,
+ Value: &value,
+ Type: s.Type,
+ Images: s.Images,
+ AllowEvents: s.AllowEvents,
+ AllowCommand: s.AllowCommand,
+ AllowSubstitution: s.AllowSubstitution,
+ CreatedAt: s.CreatedAt,
+ CreatedBy: s.CreatedBy,
+ UpdatedAt: s.UpdatedAt,
+ UpdatedBy: s.UpdatedBy,
+ }
+}
+
+// Match returns true when the provided container matches
+// the conditions to inject a secret into a pipeline container
+// resource.
+func (s *Secret) Match(from *pipeline.Container) bool {
+ eACL, iACL := false, false
+ images, commands := s.GetImages(), s.GetAllowCommand()
+
+ // check if commands are utilized when not allowed
+ if !commands && len(from.Commands) > 0 {
+ return false
+ }
+
+ // check if a custom entrypoint is utilized when not allowed
+ if !commands && len(from.Commands) == 0 && len(from.Entrypoint) > 0 {
+ return false
+ }
+
+ eACL = s.GetAllowEvents().Allowed(
+ from.Environment["VELA_BUILD_EVENT"],
+ from.Environment["VELA_BUILD_EVENT_ACTION"],
+ )
+
+ // check images whitelist
+ for _, i := range images {
+ if strings.HasPrefix(from.Image, i) && (len(i) != 0) {
+ iACL = true
+ break
+ }
+ }
+
+ // inject secrets into environment
+ switch {
+ case eACL && (len(images) == 0):
+ return true
+ case eACL && iACL:
+ return true
+ }
+
+ // return false if not match is found
+ return false
+}
+
+// GetID returns the ID field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetID() int64 {
+ // return zero value if Secret type or ID field is nil
+ if s == nil || s.ID == nil {
+ return 0
+ }
+
+ return *s.ID
+}
+
+// GetOrg returns the Org field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetOrg() string {
+ // return zero value if Secret type or Org field is nil
+ if s == nil || s.Org == nil {
+ return ""
+ }
+
+ return *s.Org
+}
+
+// GetRepo returns the Repo field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetRepo() string {
+ // return zero value if Secret type or Repo field is nil
+ if s == nil || s.Repo == nil {
+ return ""
+ }
+
+ return *s.Repo
+}
+
+// GetTeam returns the Team field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetTeam() string {
+ // return zero value if Secret type or Team field is nil
+ if s == nil || s.Team == nil {
+ return ""
+ }
+
+ return *s.Team
+}
+
+// GetName returns the Name field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetName() string {
+ // return zero value if Secret type or Name field is nil
+ if s == nil || s.Name == nil {
+ return ""
+ }
+
+ return *s.Name
+}
+
+// GetValue returns the Value field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetValue() string {
+ // return zero value if Secret type or Value field is nil
+ if s == nil || s.Value == nil {
+ return ""
+ }
+
+ return *s.Value
+}
+
+// GetType returns the Type field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetType() string {
+ // return zero value if Secret type or Type field is nil
+ if s == nil || s.Type == nil {
+ return ""
+ }
+
+ return *s.Type
+}
+
+// GetImages returns the Images field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetImages() []string {
+ // return zero value if Secret type or Images field is nil
+ if s == nil || s.Images == nil {
+ return []string{}
+ }
+
+ return *s.Images
+}
+
+// GetAllowEvents returns the AllowEvents field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetAllowEvents() *Events {
+ // return zero value if Secret type or AllowEvents field is nil
+ if s == nil || s.AllowEvents == nil {
+ return new(Events)
+ }
+
+ return s.AllowEvents
+}
+
+// GetAllowCommand returns the AllowCommand field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetAllowCommand() bool {
+ // return zero value if Secret type or Images field is nil
+ if s == nil || s.AllowCommand == nil {
+ return false
+ }
+
+ return *s.AllowCommand
+}
+
+// GetAllowSubstitution returns the AllowSubstitution field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetAllowSubstitution() bool {
+ // return zero value if Secret type or AllowSubstitution field is nil
+ if s == nil || s.AllowSubstitution == nil {
+ return false
+ }
+
+ return *s.AllowSubstitution
+}
+
+// GetCreatedAt returns the CreatedAt field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetCreatedAt() int64 {
+ // return zero value if Secret type or CreatedAt field is nil
+ if s == nil || s.CreatedAt == nil {
+ return 0
+ }
+
+ return *s.CreatedAt
+}
+
+// GetCreatedBy returns the CreatedBy field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetCreatedBy() string {
+ // return zero value if Secret type or CreatedBy field is nil
+ if s == nil || s.CreatedBy == nil {
+ return ""
+ }
+
+ return *s.CreatedBy
+}
+
+// GetUpdatedAt returns the UpdatedAt field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetUpdatedAt() int64 {
+ // return zero value if Secret type or UpdatedAt field is nil
+ if s == nil || s.UpdatedAt == nil {
+ return 0
+ }
+
+ return *s.UpdatedAt
+}
+
+// GetUpdatedBy returns the UpdatedBy field.
+//
+// When the provided Secret type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Secret) GetUpdatedBy() string {
+ // return zero value if Secret type or UpdatedBy field is nil
+ if s == nil || s.UpdatedBy == nil {
+ return ""
+ }
+
+ return *s.UpdatedBy
+}
+
+// SetID sets the ID field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetID(v int64) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.ID = &v
+}
+
+// SetOrg sets the Org field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetOrg(v string) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.Org = &v
+}
+
+// SetRepo sets the Repo field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetRepo(v string) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.Repo = &v
+}
+
+// SetTeam sets the Team field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetTeam(v string) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.Team = &v
+}
+
+// SetName sets the Name field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetName(v string) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.Name = &v
+}
+
+// SetValue sets the Value field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetValue(v string) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.Value = &v
+}
+
+// SetType sets the Type field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetType(v string) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.Type = &v
+}
+
+// SetImages sets the Images field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetImages(v []string) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.Images = &v
+}
+
+// SetAllowEvents sets the AllowEvents field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetAllowEvents(v *Events) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.AllowEvents = v
+}
+
+// SetAllowCommand sets the AllowCommand field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetAllowCommand(v bool) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.AllowCommand = &v
+}
+
+// SetAllowSubstitution sets the AllowSubstitution field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetAllowSubstitution(v bool) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.AllowSubstitution = &v
+}
+
+// SetCreatedAt sets the CreatedAt field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetCreatedAt(v int64) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.CreatedAt = &v
+}
+
+// SetCreatedBy sets the CreatedBy field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetCreatedBy(v string) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.CreatedBy = &v
+}
+
+// SetUpdatedAt sets the UpdatedAt field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetUpdatedAt(v int64) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.UpdatedAt = &v
+}
+
+// SetUpdatedBy sets the UpdatedBy field.
+//
+// When the provided Secret type is nil, it
+// will set nothing and immediately return.
+func (s *Secret) SetUpdatedBy(v string) {
+ // return if Secret type is nil
+ if s == nil {
+ return
+ }
+
+ s.UpdatedBy = &v
+}
+
+// String implements the Stringer interface for the Secret type.
+func (s *Secret) String() string {
+ return fmt.Sprintf(`{
+ AllowCommand: %t,
+ AllowEvents: %s,
+ AllowSubstitution: %t,
+ ID: %d,
+ Images: %s,
+ Name: %s,
+ Org: %s,
+ Repo: %s,
+ Team: %s,
+ Type: %s,
+ Value: %s,
+ CreatedAt: %d,
+ CreatedBy: %s,
+ UpdatedAt: %d,
+ UpdatedBy: %s,
+}`,
+ s.GetAllowCommand(),
+ s.GetAllowEvents().List(),
+ s.GetAllowSubstitution(),
+ s.GetID(),
+ s.GetImages(),
+ s.GetName(),
+ s.GetOrg(),
+ s.GetRepo(),
+ s.GetTeam(),
+ s.GetType(),
+ s.GetValue(),
+ s.GetCreatedAt(),
+ s.GetCreatedBy(),
+ s.GetUpdatedAt(),
+ s.GetUpdatedBy(),
+ )
+}
diff --git a/api/types/secret_test.go b/api/types/secret_test.go
new file mode 100644
index 000000000..ffa4aa107
--- /dev/null
+++ b/api/types/secret_test.go
@@ -0,0 +1,644 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "reflect"
+ "testing"
+ "time"
+
+ "github.com/google/go-cmp/cmp"
+
+ "github.com/go-vela/server/api/types/actions"
+ "github.com/go-vela/types/constants"
+ "github.com/go-vela/types/pipeline"
+)
+
+func TestTypes_Secret_Sanitize(t *testing.T) {
+ // setup types
+ s := testSecret()
+
+ want := testSecret()
+ want.SetValue(constants.SecretMask)
+
+ // run test
+ got := s.Sanitize()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("Sanitize is %v, want %v", got, want)
+ }
+}
+
+func TestTypes_Secret_Match(t *testing.T) {
+ // setup types
+ v := "foo"
+ fBool := false
+ tBool := true
+
+ testEvents := &Events{
+ Push: &actions.Push{
+ Branch: &tBool,
+ Tag: &tBool,
+ },
+ PullRequest: &actions.Pull{
+ Opened: &fBool,
+ Synchronize: &tBool,
+ Edited: &fBool,
+ },
+ Deployment: &actions.Deploy{
+ Created: &tBool,
+ },
+ Comment: &actions.Comment{
+ Created: &tBool,
+ Edited: &tBool,
+ },
+ Schedule: &actions.Schedule{
+ Run: &tBool,
+ },
+ }
+
+ // setup tests
+ tests := []struct {
+ name string
+ step *pipeline.Container
+ sec *Secret
+ want bool
+ }{
+ { // test matching secret events
+ name: "push",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+ {
+ name: "pull request opened fail",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{
+ "VELA_BUILD_EVENT": "pull_request",
+ "VELA_BUILD_EVENT_ACTION": "opened",
+ },
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{},
+ AllowEvents: testEvents,
+ },
+ want: false,
+ },
+ {
+ name: "tag",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "tag"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+ {
+ name: "deployment",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{
+ "VELA_BUILD_EVENT": "deployment",
+ "VELA_BUILD_EVENT_ACTION": "created",
+ },
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+ {
+ name: "comment created",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{
+ "VELA_BUILD_EVENT": "comment",
+ "VELA_BUILD_EVENT_ACTION": "created",
+ },
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+ {
+ name: "fake event",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "fake_event"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{},
+ AllowEvents: testEvents,
+ },
+ want: false,
+ },
+ {
+ name: "push with empty image constraint",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+ {
+ name: "schedule",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "schedule"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+
+ { // test matching secret images
+ name: "image basic",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine"},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+ {
+ name: "image and tag",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine:latest"},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+ {
+ name: "mismatch tag with same image",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine:1"},
+ AllowEvents: testEvents,
+ },
+ want: false,
+ },
+ {
+ name: "multiple allowed images",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine", "centos"},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+
+ { // test matching secret events and images
+ name: "push and image pass",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine"},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+ {
+ name: "push and image tag pass",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine:latest"},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+ {
+ name: "push and bad image tag",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine:1"},
+ AllowEvents: testEvents,
+ },
+ want: false,
+ },
+ {
+ name: "mismatch event and match image",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{
+ "VELA_BUILD_EVENT": "pull_request",
+ "VELA_BUILD_EVENT_ACTION": "edited",
+ },
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine:latest"},
+ AllowEvents: testEvents,
+ },
+ want: false,
+ },
+ {
+ name: "event and multi image allowed pass",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine", "centos"},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+
+ { // test build events with image ACLs and rulesets
+ name: "rulesets and push pass",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ Ruleset: pipeline.Ruleset{
+ If: pipeline.Rules{
+ Event: []string{"push"},
+ },
+ },
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine"},
+ AllowEvents: testEvents,
+ },
+ want: true,
+ },
+ {
+ name: "no commands allowed",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ Ruleset: pipeline.Ruleset{
+ If: pipeline.Rules{
+ Event: []string{"push"},
+ },
+ },
+ Commands: []string{"echo hi"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine"},
+ AllowEvents: testEvents,
+ AllowCommand: &fBool,
+ },
+ want: false,
+ },
+ {
+ name: "no commands allowed - entrypoint provided",
+ step: &pipeline.Container{
+ Image: "alpine:latest",
+ Environment: map[string]string{"VELA_BUILD_EVENT": "push"},
+ Ruleset: pipeline.Ruleset{
+ If: pipeline.Rules{
+ Event: []string{"push"},
+ },
+ },
+ Entrypoint: []string{"sh", "-c", "echo hi"},
+ },
+ sec: &Secret{
+ Name: &v,
+ Value: &v,
+ Images: &[]string{"alpine"},
+ AllowEvents: testEvents,
+ AllowCommand: &fBool,
+ },
+ want: false,
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := test.sec.Match(test.step)
+
+ if got != test.want {
+ t.Errorf("Match for %s is %v, want %v", test.name, got, test.want)
+ }
+ }
+}
+
+func TestTypes_Secret_Getters(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ secret *Secret
+ want *Secret
+ }{
+ {
+ secret: testSecret(),
+ want: testSecret(),
+ },
+ {
+ secret: new(Secret),
+ want: new(Secret),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ if test.secret.GetID() != test.want.GetID() {
+ t.Errorf("GetID is %v, want %v", test.secret.GetID(), test.want.GetID())
+ }
+
+ if test.secret.GetOrg() != test.want.GetOrg() {
+ t.Errorf("GetOrg is %v, want %v", test.secret.GetOrg(), test.want.GetOrg())
+ }
+
+ if test.secret.GetRepo() != test.want.GetRepo() {
+ t.Errorf("GetRepo is %v, want %v", test.secret.GetRepo(), test.want.GetRepo())
+ }
+
+ if test.secret.GetTeam() != test.want.GetTeam() {
+ t.Errorf("GetTeam is %v, want %v", test.secret.GetTeam(), test.want.GetTeam())
+ }
+
+ if test.secret.GetName() != test.want.GetName() {
+ t.Errorf("GetName is %v, want %v", test.secret.GetName(), test.want.GetName())
+ }
+
+ if test.secret.GetValue() != test.want.GetValue() {
+ t.Errorf("GetValue is %v, want %v", test.secret.GetValue(), test.want.GetValue())
+ }
+
+ if test.secret.GetType() != test.want.GetType() {
+ t.Errorf("GetType is %v, want %v", test.secret.GetType(), test.want.GetType())
+ }
+
+ if !reflect.DeepEqual(test.secret.GetImages(), test.want.GetImages()) {
+ t.Errorf("GetImages is %v, want %v", test.secret.GetImages(), test.want.GetImages())
+ }
+
+ if !reflect.DeepEqual(test.secret.GetAllowEvents(), test.want.GetAllowEvents()) {
+ t.Errorf("GetAllowEvents is %v, want %v", test.secret.GetAllowEvents(), test.want.GetAllowEvents())
+ }
+
+ if test.secret.GetAllowCommand() != test.want.GetAllowCommand() {
+ t.Errorf("GetAllowCommand is %v, want %v", test.secret.GetAllowCommand(), test.want.GetAllowCommand())
+ }
+
+ if test.secret.GetAllowSubstitution() != test.want.GetAllowSubstitution() {
+ t.Errorf("GetAllowSubstitution is %v, want %v", test.secret.GetAllowSubstitution(), test.want.GetAllowSubstitution())
+ }
+
+ if test.secret.GetCreatedAt() != test.want.GetCreatedAt() {
+ t.Errorf("GetCreatedAt is %v, want %v", test.secret.GetCreatedAt(), test.want.GetCreatedAt())
+ }
+
+ if test.secret.GetCreatedBy() != test.want.GetCreatedBy() {
+ t.Errorf("GetCreatedBy is %v, want %v", test.secret.GetCreatedBy(), test.want.GetCreatedBy())
+ }
+
+ if test.secret.GetUpdatedAt() != test.want.GetUpdatedAt() {
+ t.Errorf("GetUpdatedAt is %v, want %v", test.secret.GetUpdatedAt(), test.want.GetUpdatedAt())
+ }
+
+ if test.secret.GetUpdatedBy() != test.want.GetUpdatedBy() {
+ t.Errorf("GetUpdatedBy is %v, want %v", test.secret.GetUpdatedBy(), test.want.GetUpdatedBy())
+ }
+ }
+}
+
+func TestTypes_Secret_Setters(t *testing.T) {
+ // setup types
+ var s *Secret
+
+ // setup tests
+ tests := []struct {
+ secret *Secret
+ want *Secret
+ }{
+ {
+ secret: testSecret(),
+ want: testSecret(),
+ },
+ {
+ secret: s,
+ want: new(Secret),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ test.secret.SetID(test.want.GetID())
+ test.secret.SetOrg(test.want.GetOrg())
+ test.secret.SetRepo(test.want.GetRepo())
+ test.secret.SetTeam(test.want.GetTeam())
+ test.secret.SetName(test.want.GetName())
+ test.secret.SetValue(test.want.GetValue())
+ test.secret.SetType(test.want.GetType())
+ test.secret.SetImages(test.want.GetImages())
+ test.secret.SetAllowEvents(test.want.GetAllowEvents())
+ test.secret.SetAllowCommand(test.want.GetAllowCommand())
+ test.secret.SetAllowSubstitution(test.want.GetAllowSubstitution())
+ test.secret.SetCreatedAt(test.want.GetCreatedAt())
+ test.secret.SetCreatedBy(test.want.GetCreatedBy())
+ test.secret.SetUpdatedAt(test.want.GetUpdatedAt())
+ test.secret.SetUpdatedBy(test.want.GetUpdatedBy())
+
+ if test.secret.GetID() != test.want.GetID() {
+ t.Errorf("SetID is %v, want %v", test.secret.GetID(), test.want.GetID())
+ }
+
+ if test.secret.GetOrg() != test.want.GetOrg() {
+ t.Errorf("SetOrg is %v, want %v", test.secret.GetOrg(), test.want.GetOrg())
+ }
+
+ if test.secret.GetRepo() != test.want.GetRepo() {
+ t.Errorf("SetRepo is %v, want %v", test.secret.GetRepo(), test.want.GetRepo())
+ }
+
+ if test.secret.GetTeam() != test.want.GetTeam() {
+ t.Errorf("SetTeam is %v, want %v", test.secret.GetTeam(), test.want.GetTeam())
+ }
+
+ if test.secret.GetName() != test.want.GetName() {
+ t.Errorf("SetName is %v, want %v", test.secret.GetName(), test.want.GetName())
+ }
+
+ if test.secret.GetValue() != test.want.GetValue() {
+ t.Errorf("SetValue is %v, want %v", test.secret.GetValue(), test.want.GetValue())
+ }
+
+ if test.secret.GetType() != test.want.GetType() {
+ t.Errorf("SetType is %v, want %v", test.secret.GetType(), test.want.GetType())
+ }
+
+ if !reflect.DeepEqual(test.secret.GetImages(), test.want.GetImages()) {
+ t.Errorf("SetImages is %v, want %v", test.secret.GetImages(), test.want.GetImages())
+ }
+
+ if !reflect.DeepEqual(test.secret.GetAllowEvents(), test.want.GetAllowEvents()) {
+ t.Errorf("SetAllowEvents is %v, want %v", test.secret.GetAllowEvents(), test.want.GetAllowEvents())
+ }
+
+ if test.secret.GetAllowCommand() != test.want.GetAllowCommand() {
+ t.Errorf("SetAllowCommand is %v, want %v", test.secret.GetAllowCommand(), test.want.GetAllowCommand())
+ }
+
+ if test.secret.GetAllowSubstitution() != test.want.GetAllowSubstitution() {
+ t.Errorf("SetAllowSubstitution is %v, want %v", test.secret.GetAllowSubstitution(), test.want.GetAllowSubstitution())
+ }
+
+ if test.secret.GetCreatedAt() != test.want.GetCreatedAt() {
+ t.Errorf("SetCreatedAt is %v, want %v", test.secret.GetCreatedAt(), test.want.GetCreatedAt())
+ }
+
+ if test.secret.GetCreatedBy() != test.want.GetCreatedBy() {
+ t.Errorf("SetCreatedBy is %v, want %v", test.secret.GetCreatedBy(), test.want.GetCreatedBy())
+ }
+
+ if test.secret.GetUpdatedAt() != test.want.GetUpdatedAt() {
+ t.Errorf("SetUpdatedAt is %v, want %v", test.secret.GetUpdatedAt(), test.want.GetUpdatedAt())
+ }
+
+ if test.secret.GetUpdatedBy() != test.want.GetUpdatedBy() {
+ t.Errorf("SetUpdatedBy is %v, want %v", test.secret.GetUpdatedBy(), test.want.GetUpdatedBy())
+ }
+ }
+}
+
+func TestTypes_Secret_String(t *testing.T) {
+ // setup types
+ s := testSecret()
+
+ want := fmt.Sprintf(`{
+ AllowCommand: %t,
+ AllowEvents: %v,
+ AllowSubstitution: %t,
+ ID: %d,
+ Images: %s,
+ Name: %s,
+ Org: %s,
+ Repo: %s,
+ Team: %s,
+ Type: %s,
+ Value: %s,
+ CreatedAt: %d,
+ CreatedBy: %s,
+ UpdatedAt: %d,
+ UpdatedBy: %s,
+}`,
+ s.GetAllowCommand(),
+ s.GetAllowEvents().List(),
+ s.GetAllowSubstitution(),
+ s.GetID(),
+ s.GetImages(),
+ s.GetName(),
+ s.GetOrg(),
+ s.GetRepo(),
+ s.GetTeam(),
+ s.GetType(),
+ s.GetValue(),
+ s.GetCreatedAt(),
+ s.GetCreatedBy(),
+ s.GetUpdatedAt(),
+ s.GetUpdatedBy(),
+ )
+
+ // run test
+ got := s.String()
+
+ if diff := cmp.Diff(got, want); diff != "" {
+ t.Errorf("String Mismatch: -want +got):\n%s", diff)
+ }
+}
+
+// testSecret is a test helper function to create a Secret
+// type with all fields set to a fake value.
+func testSecret() *Secret {
+ currentTime := time.Now()
+ tsCreate := currentTime.UTC().Unix()
+ tsUpdate := currentTime.Add(time.Hour * 1).UTC().Unix()
+ s := new(Secret)
+
+ s.SetID(1)
+ s.SetOrg("github")
+ s.SetRepo("octocat")
+ s.SetTeam("octokitties")
+ s.SetName("foo")
+ s.SetValue("bar")
+ s.SetType("repo")
+ s.SetImages([]string{"alpine"})
+ s.SetAllowEvents(NewEventsFromMask(1))
+ s.SetAllowCommand(true)
+ s.SetAllowSubstitution(true)
+ s.SetCreatedAt(tsCreate)
+ s.SetCreatedBy("octocat")
+ s.SetUpdatedAt(tsUpdate)
+ s.SetUpdatedBy("octocat2")
+
+ return s
+}
diff --git a/api/webhook/post.go b/api/webhook/post.go
index 20576acd3..65feda064 100644
--- a/api/webhook/post.go
+++ b/api/webhook/post.go
@@ -26,7 +26,6 @@ import (
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
var baseErr = "unable to process webhook"
@@ -780,7 +779,7 @@ func RenameRepository(ctx context.Context, h *types.Hook, r *types.Repo, c *gin.
return nil, fmt.Errorf("unable to get secret count for repo %s/%s: %w", dbR.GetOrg(), dbR.GetName(), err)
}
- secrets := []*library.Secret{}
+ secrets := []*types.Secret{}
page := 1
// capture all secrets belonging to certain repo in database
for repoSecrets := int64(0); repoSecrets < t; repoSecrets += 100 {
diff --git a/database/integration_test.go b/database/integration_test.go
index 5fb10fe5f..85f5a2318 100644
--- a/database/integration_test.go
+++ b/database/integration_test.go
@@ -51,7 +51,7 @@ type Resources struct {
Pipelines []*api.Pipeline
Repos []*api.Repo
Schedules []*api.Schedule
- Secrets []*library.Secret
+ Secrets []*api.Secret
Services []*library.Service
Steps []*library.Step
Users []*api.User
@@ -1756,8 +1756,8 @@ func testSecrets(t *testing.T, db Interface, resources *Resources) {
if int(count) != 1 {
t.Errorf("ListSecretsForOrg() is %v, want %v", count, 1)
}
- if !cmp.Equal(list, []*library.Secret{secret}) {
- t.Errorf("ListSecretsForOrg() is %v, want %v", list, []*library.Secret{secret})
+ if !cmp.Equal(list, []*api.Secret{secret}) {
+ t.Errorf("ListSecretsForOrg() is %v, want %v", list, []*api.Secret{secret})
}
methods["ListSecretsForOrg"] = true
case constants.SecretRepo:
@@ -1769,8 +1769,8 @@ func testSecrets(t *testing.T, db Interface, resources *Resources) {
if int(count) != 1 {
t.Errorf("ListSecretsForRepo() is %v, want %v", count, 1)
}
- if !cmp.Equal(list, []*library.Secret{secret}, CmpOptApproxUpdatedAt()) {
- t.Errorf("ListSecretsForRepo() is %v, want %v", list, []*library.Secret{secret})
+ if !cmp.Equal(list, []*api.Secret{secret}, CmpOptApproxUpdatedAt()) {
+ t.Errorf("ListSecretsForRepo() is %v, want %v", list, []*api.Secret{secret})
}
methods["ListSecretsForRepo"] = true
case constants.SecretShared:
@@ -1782,8 +1782,8 @@ func testSecrets(t *testing.T, db Interface, resources *Resources) {
if int(count) != 1 {
t.Errorf("ListSecretsForTeam() is %v, want %v", count, 1)
}
- if !cmp.Equal(list, []*library.Secret{secret}, CmpOptApproxUpdatedAt()) {
- t.Errorf("ListSecretsForTeam() is %v, want %v", list, []*library.Secret{secret})
+ if !cmp.Equal(list, []*api.Secret{secret}, CmpOptApproxUpdatedAt()) {
+ t.Errorf("ListSecretsForTeam() is %v, want %v", list, []*api.Secret{secret})
}
methods["ListSecretsForTeam"] = true
@@ -1795,8 +1795,8 @@ func testSecrets(t *testing.T, db Interface, resources *Resources) {
if int(count) != 1 {
t.Errorf("ListSecretsForTeams() is %v, want %v", count, 1)
}
- if !cmp.Equal(list, []*library.Secret{secret}, CmpOptApproxUpdatedAt()) {
- t.Errorf("ListSecretsForTeams() is %v, want %v", list, []*library.Secret{secret})
+ if !cmp.Equal(list, []*api.Secret{secret}, CmpOptApproxUpdatedAt()) {
+ t.Errorf("ListSecretsForTeams() is %v, want %v", list, []*api.Secret{secret})
}
methods["ListSecretsForTeams"] = true
default:
@@ -2826,7 +2826,7 @@ func newResources() *Resources {
scheduleTwo.SetError("no version: YAML property provided")
scheduleTwo.SetNextRun(nextTime.Unix())
- secretOrg := new(library.Secret)
+ secretOrg := new(api.Secret)
secretOrg.SetID(1)
secretOrg.SetOrg("github")
secretOrg.SetRepo("*")
@@ -2835,7 +2835,7 @@ func newResources() *Resources {
secretOrg.SetValue("bar")
secretOrg.SetType("org")
secretOrg.SetImages([]string{"alpine"})
- secretOrg.SetAllowEvents(library.NewEventsFromMask(1))
+ secretOrg.SetAllowEvents(api.NewEventsFromMask(1))
secretOrg.SetAllowCommand(true)
secretOrg.SetAllowSubstitution(true)
secretOrg.SetCreatedAt(time.Now().UTC().Unix())
@@ -2843,7 +2843,7 @@ func newResources() *Resources {
secretOrg.SetUpdatedAt(time.Now().Add(time.Hour * 1).UTC().Unix())
secretOrg.SetUpdatedBy("octokitty")
- secretRepo := new(library.Secret)
+ secretRepo := new(api.Secret)
secretRepo.SetID(2)
secretRepo.SetOrg("github")
secretRepo.SetRepo("octocat")
@@ -2852,7 +2852,7 @@ func newResources() *Resources {
secretRepo.SetValue("bar")
secretRepo.SetType("repo")
secretRepo.SetImages([]string{"alpine"})
- secretRepo.SetAllowEvents(library.NewEventsFromMask(1))
+ secretRepo.SetAllowEvents(api.NewEventsFromMask(1))
secretRepo.SetAllowCommand(true)
secretRepo.SetAllowSubstitution(true)
secretRepo.SetCreatedAt(time.Now().UTC().Unix())
@@ -2860,7 +2860,7 @@ func newResources() *Resources {
secretRepo.SetUpdatedAt(time.Now().Add(time.Hour * 1).UTC().Unix())
secretRepo.SetUpdatedBy("octokitty")
- secretShared := new(library.Secret)
+ secretShared := new(api.Secret)
secretShared.SetID(3)
secretShared.SetOrg("github")
secretShared.SetRepo("")
@@ -2871,7 +2871,7 @@ func newResources() *Resources {
secretShared.SetImages([]string{"alpine"})
secretShared.SetAllowCommand(true)
secretShared.SetAllowSubstitution(true)
- secretShared.SetAllowEvents(library.NewEventsFromMask(1))
+ secretShared.SetAllowEvents(api.NewEventsFromMask(1))
secretShared.SetCreatedAt(time.Now().UTC().Unix())
secretShared.SetCreatedBy("octocat")
secretShared.SetUpdatedAt(time.Now().Add(time.Hour * 1).UTC().Unix())
@@ -2994,7 +2994,7 @@ func newResources() *Resources {
Pipelines: []*api.Pipeline{pipelineOne, pipelineTwo},
Repos: []*api.Repo{repoOne, repoTwo},
Schedules: []*api.Schedule{scheduleOne, scheduleTwo},
- Secrets: []*library.Secret{secretOrg, secretRepo, secretShared},
+ Secrets: []*api.Secret{secretOrg, secretRepo, secretShared},
Services: []*library.Service{serviceOne, serviceTwo},
Steps: []*library.Step{stepOne, stepTwo},
Users: []*api.User{userOne, userTwo},
diff --git a/database/secret/count_org_test.go b/database/secret/count_org_test.go
index 22f8543f8..315862543 100644
--- a/database/secret/count_org_test.go
+++ b/database/secret/count_org_test.go
@@ -9,12 +9,13 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/go-vela/server/database/testutils"
"github.com/go-vela/types/constants"
)
func TestSecret_Engine_CountSecretsForOrg(t *testing.T) {
// setup types
- _secretOne := testSecret()
+ _secretOne := testutils.APISecret()
_secretOne.SetID(1)
_secretOne.SetOrg("foo")
_secretOne.SetRepo("*")
@@ -26,7 +27,7 @@ func TestSecret_Engine_CountSecretsForOrg(t *testing.T) {
_secretOne.SetUpdatedAt(1)
_secretOne.SetUpdatedBy("user2")
- _secretTwo := testSecret()
+ _secretTwo := testutils.APISecret()
_secretTwo.SetID(2)
_secretTwo.SetOrg("bar")
_secretTwo.SetRepo("*")
diff --git a/database/secret/count_repo_test.go b/database/secret/count_repo_test.go
index c925853f8..41fa3f8a5 100644
--- a/database/secret/count_repo_test.go
+++ b/database/secret/count_repo_test.go
@@ -9,12 +9,13 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/go-vela/server/database/testutils"
"github.com/go-vela/types/constants"
)
func TestSecret_Engine_CountSecretsForRepo(t *testing.T) {
// setup types
- _repo := testRepo()
+ _repo := testutils.APIRepo()
_repo.SetID(1)
_repo.GetOwner().SetID(1)
_repo.SetHash("baz")
@@ -24,7 +25,7 @@ func TestSecret_Engine_CountSecretsForRepo(t *testing.T) {
_repo.SetVisibility("public")
_repo.SetPipelineType("yaml")
- _secretOne := testSecret()
+ _secretOne := testutils.APISecret()
_secretOne.SetID(1)
_secretOne.SetOrg("foo")
_secretOne.SetRepo("bar")
@@ -36,7 +37,7 @@ func TestSecret_Engine_CountSecretsForRepo(t *testing.T) {
_secretOne.SetUpdatedAt(1)
_secretOne.SetUpdatedBy("user2")
- _secretTwo := testSecret()
+ _secretTwo := testutils.APISecret()
_secretTwo.SetID(2)
_secretTwo.SetOrg("bar")
_secretTwo.SetRepo("foo")
diff --git a/database/secret/count_team_test.go b/database/secret/count_team_test.go
index 071e7902f..f38cbbd3b 100644
--- a/database/secret/count_team_test.go
+++ b/database/secret/count_team_test.go
@@ -9,12 +9,13 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/go-vela/server/database/testutils"
"github.com/go-vela/types/constants"
)
func TestSecret_Engine_CountSecretsForTeam(t *testing.T) {
// setup types
- _secretOne := testSecret()
+ _secretOne := testutils.APISecret()
_secretOne.SetID(1)
_secretOne.SetOrg("foo")
_secretOne.SetTeam("bar")
@@ -26,7 +27,7 @@ func TestSecret_Engine_CountSecretsForTeam(t *testing.T) {
_secretOne.SetUpdatedAt(1)
_secretOne.SetUpdatedBy("user2")
- _secretTwo := testSecret()
+ _secretTwo := testutils.APISecret()
_secretTwo.SetID(2)
_secretTwo.SetOrg("bar")
_secretTwo.SetTeam("foo")
@@ -110,7 +111,7 @@ func TestSecret_Engine_CountSecretsForTeam(t *testing.T) {
func TestSecret_Engine_CountSecretsForTeams(t *testing.T) {
// setup types
- _repo := testRepo()
+ _repo := testutils.APIRepo()
_repo.SetID(1)
_repo.GetOwner().SetID(1)
_repo.SetHash("baz")
@@ -120,7 +121,7 @@ func TestSecret_Engine_CountSecretsForTeams(t *testing.T) {
_repo.SetVisibility("public")
_repo.SetPipelineType("yaml")
- _secretOne := testSecret()
+ _secretOne := testutils.APISecret()
_secretOne.SetID(1)
_secretOne.SetOrg("foo")
_secretOne.SetTeam("bar")
@@ -132,7 +133,7 @@ func TestSecret_Engine_CountSecretsForTeams(t *testing.T) {
_secretOne.SetUpdatedAt(1)
_secretOne.SetUpdatedBy("user2")
- _secretTwo := testSecret()
+ _secretTwo := testutils.APISecret()
_secretTwo.SetID(2)
_secretTwo.SetOrg("bar")
_secretTwo.SetTeam("foo")
diff --git a/database/secret/count_test.go b/database/secret/count_test.go
index 127cb3371..87b1d5662 100644
--- a/database/secret/count_test.go
+++ b/database/secret/count_test.go
@@ -8,11 +8,12 @@ import (
"testing"
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/go-vela/server/database/testutils"
)
func TestSecret_Engine_CountSecrets(t *testing.T) {
// setup types
- _secretOne := testSecret()
+ _secretOne := testutils.APISecret()
_secretOne.SetID(1)
_secretOne.SetOrg("foo")
_secretOne.SetRepo("bar")
@@ -24,7 +25,7 @@ func TestSecret_Engine_CountSecrets(t *testing.T) {
_secretOne.SetUpdatedAt(1)
_secretOne.SetUpdatedBy("user2")
- _secretTwo := testSecret()
+ _secretTwo := testutils.APISecret()
_secretTwo.SetID(2)
_secretTwo.SetOrg("bar")
_secretTwo.SetRepo("foo")
diff --git a/database/secret/create.go b/database/secret/create.go
index 163e72776..ec38cc748 100644
--- a/database/secret/create.go
+++ b/database/secret/create.go
@@ -9,13 +9,13 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// CreateSecret creates a new secret in the database.
-func (e *engine) CreateSecret(ctx context.Context, s *library.Secret) (*library.Secret, error) {
+func (e *engine) CreateSecret(ctx context.Context, s *api.Secret) (*api.Secret, error) {
// handle the secret based off the type
switch s.GetType() {
case constants.SecretShared:
@@ -34,22 +34,13 @@ func (e *engine) CreateSecret(ctx context.Context, s *library.Secret) (*library.
}).Tracef("creating secret %s/%s/%s/%s", s.GetType(), s.GetOrg(), s.GetRepo(), s.GetName())
}
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#SecretFromLibrary
- secret := database.SecretFromLibrary(s)
+ secret := types.SecretFromAPI(s)
- // validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Validate
err := secret.Validate()
if err != nil {
return nil, err
}
- // encrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Encrypt
err = secret.Encrypt(e.config.EncryptionKey)
if err != nil {
switch s.GetType() {
@@ -81,5 +72,5 @@ func (e *engine) CreateSecret(ctx context.Context, s *library.Secret) (*library.
}
}
- return secret.ToLibrary(), nil
+ return secret.ToAPI(), nil
}
diff --git a/database/secret/create_test.go b/database/secret/create_test.go
index ed3d95591..9a96326d1 100644
--- a/database/secret/create_test.go
+++ b/database/secret/create_test.go
@@ -9,13 +9,13 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestSecret_Engine_CreateSecret(t *testing.T) {
// setup types
- _secretRepo := testSecret()
+ _secretRepo := testutils.APISecret()
_secretRepo.SetID(1)
_secretRepo.SetOrg("foo")
_secretRepo.SetRepo("bar")
@@ -26,9 +26,9 @@ func TestSecret_Engine_CreateSecret(t *testing.T) {
_secretRepo.SetCreatedBy("user")
_secretRepo.SetUpdatedAt(1)
_secretRepo.SetUpdatedBy("user2")
- _secretRepo.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretRepo.SetAllowEvents(api.NewEventsFromMask(1))
- _secretOrg := testSecret()
+ _secretOrg := testutils.APISecret()
_secretOrg.SetID(2)
_secretOrg.SetOrg("foo")
_secretOrg.SetRepo("*")
@@ -39,9 +39,9 @@ func TestSecret_Engine_CreateSecret(t *testing.T) {
_secretOrg.SetCreatedBy("user")
_secretOrg.SetUpdatedAt(1)
_secretOrg.SetUpdatedBy("user2")
- _secretOrg.SetAllowEvents(library.NewEventsFromMask(3))
+ _secretOrg.SetAllowEvents(api.NewEventsFromMask(3))
- _secretShared := testSecret()
+ _secretShared := testutils.APISecret()
_secretShared.SetID(3)
_secretShared.SetOrg("foo")
_secretShared.SetTeam("bar")
@@ -52,7 +52,7 @@ func TestSecret_Engine_CreateSecret(t *testing.T) {
_secretShared.SetCreatedBy("user")
_secretShared.SetUpdatedAt(1)
_secretShared.SetUpdatedBy("user2")
- _secretShared.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretShared.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -89,7 +89,7 @@ VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15) RETURNING "id"`).
failure bool
name string
database *engine
- secret *library.Secret
+ secret *api.Secret
}{
{
failure: false,
diff --git a/database/secret/delete.go b/database/secret/delete.go
index aa87ba1ea..309a0cf61 100644
--- a/database/secret/delete.go
+++ b/database/secret/delete.go
@@ -7,13 +7,13 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// DeleteSecret deletes an existing secret from the database.
-func (e *engine) DeleteSecret(ctx context.Context, s *library.Secret) error {
+func (e *engine) DeleteSecret(ctx context.Context, s *api.Secret) error {
// handle the secret based off the type
//
//nolint:dupl // ignore similar code with update.go
@@ -34,10 +34,7 @@ func (e *engine) DeleteSecret(ctx context.Context, s *library.Secret) error {
}).Tracef("deleting secret %s/%s/%s/%s", s.GetType(), s.GetOrg(), s.GetRepo(), s.GetName())
}
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#SecretFromLibrary
- secret := database.SecretFromLibrary(s)
+ secret := types.SecretFromAPI(s)
// send query to the database
return e.client.
diff --git a/database/secret/delete_test.go b/database/secret/delete_test.go
index 57db11e88..88465b11e 100644
--- a/database/secret/delete_test.go
+++ b/database/secret/delete_test.go
@@ -8,12 +8,13 @@ import (
"github.com/DATA-DOG/go-sqlmock"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/testutils"
)
func TestSecret_Engine_DeleteSecret(t *testing.T) {
// setup types
- _secretRepo := testSecret()
+ _secretRepo := testutils.APISecret()
_secretRepo.SetID(1)
_secretRepo.SetOrg("foo")
_secretRepo.SetRepo("bar")
@@ -25,7 +26,7 @@ func TestSecret_Engine_DeleteSecret(t *testing.T) {
_secretRepo.SetUpdatedAt(1)
_secretRepo.SetUpdatedBy("user2")
- _secretOrg := testSecret()
+ _secretOrg := testutils.APISecret()
_secretOrg.SetID(2)
_secretOrg.SetOrg("foo")
_secretOrg.SetRepo("*")
@@ -37,7 +38,7 @@ func TestSecret_Engine_DeleteSecret(t *testing.T) {
_secretOrg.SetUpdatedAt(1)
_secretOrg.SetUpdatedBy("user2")
- _secretShared := testSecret()
+ _secretShared := testutils.APISecret()
_secretShared.SetID(3)
_secretShared.SetOrg("foo")
_secretShared.SetTeam("bar")
@@ -90,7 +91,7 @@ func TestSecret_Engine_DeleteSecret(t *testing.T) {
failure bool
name string
database *engine
- secret *library.Secret
+ secret *api.Secret
}{
{
failure: false,
diff --git a/database/secret/get.go b/database/secret/get.go
index 4f4d04199..c43cf2bb2 100644
--- a/database/secret/get.go
+++ b/database/secret/get.go
@@ -5,17 +5,17 @@ package secret
import (
"context"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// GetSecret gets a secret by ID from the database.
-func (e *engine) GetSecret(ctx context.Context, id int64) (*library.Secret, error) {
+func (e *engine) GetSecret(ctx context.Context, id int64) (*api.Secret, error) {
e.logger.Tracef("getting secret %d", id)
// variable to store query results
- s := new(database.Secret)
+ s := new(types.Secret)
// send query to the database and store result in variable
err := e.client.
@@ -28,9 +28,6 @@ func (e *engine) GetSecret(ctx context.Context, id int64) (*library.Secret, erro
return nil, err
}
- // decrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Decrypt
err = s.Decrypt(e.config.EncryptionKey)
if err != nil {
// TODO: remove backwards compatibility before 1.x.x release
@@ -39,15 +36,7 @@ func (e *engine) GetSecret(ctx context.Context, id int64) (*library.Secret, erro
// by logging the error instead of returning it
// which allows us to fetch unencrypted secrets
e.logger.Errorf("unable to decrypt secret %d: %v", id, err)
-
- // return the unencrypted secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- return s.ToLibrary(), nil
}
- // return the decrypted secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- return s.ToLibrary(), nil
+ return s.ToAPI(), nil
}
diff --git a/database/secret/get_org.go b/database/secret/get_org.go
index 473d5a1a6..ee4c3391c 100644
--- a/database/secret/get_org.go
+++ b/database/secret/get_org.go
@@ -7,13 +7,13 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// GetSecretForOrg gets a secret by org name from the database.
-func (e *engine) GetSecretForOrg(ctx context.Context, org, name string) (*library.Secret, error) {
+func (e *engine) GetSecretForOrg(ctx context.Context, org, name string) (*api.Secret, error) {
e.logger.WithFields(logrus.Fields{
"org": org,
"secret": name,
@@ -21,7 +21,7 @@ func (e *engine) GetSecretForOrg(ctx context.Context, org, name string) (*librar
}).Tracef("getting org secret %s/%s", org, name)
// variable to store query results
- s := new(database.Secret)
+ s := new(types.Secret)
// send query to the database and store result in variable
err := e.client.
@@ -47,15 +47,7 @@ func (e *engine) GetSecretForOrg(ctx context.Context, org, name string) (*librar
// by logging the error instead of returning it
// which allows us to fetch unencrypted secrets
e.logger.Errorf("unable to decrypt org secret %s/%s: %v", org, name, err)
-
- // return the unencrypted secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- return s.ToLibrary(), nil
}
- // return the decrypted secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- return s.ToLibrary(), nil
+ return s.ToAPI(), nil
}
diff --git a/database/secret/get_org_test.go b/database/secret/get_org_test.go
index af127fab3..5261c49f5 100644
--- a/database/secret/get_org_test.go
+++ b/database/secret/get_org_test.go
@@ -9,13 +9,14 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/testutils"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
func TestSecret_Engine_GetSecretForOrg(t *testing.T) {
// setup types
- _secret := testSecret()
+ _secret := testutils.APISecret()
_secret.SetID(1)
_secret.SetOrg("foo")
_secret.SetRepo("*")
@@ -26,7 +27,7 @@ func TestSecret_Engine_GetSecretForOrg(t *testing.T) {
_secret.SetCreatedBy("user")
_secret.SetUpdatedAt(1)
_secret.SetUpdatedBy("user2")
- _secret.SetAllowEvents(library.NewEventsFromMask(1))
+ _secret.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -53,7 +54,7 @@ func TestSecret_Engine_GetSecretForOrg(t *testing.T) {
failure bool
name string
database *engine
- want *library.Secret
+ want *api.Secret
}{
{
failure: false,
diff --git a/database/secret/get_repo.go b/database/secret/get_repo.go
index 27a5f3cfb..b22264482 100644
--- a/database/secret/get_repo.go
+++ b/database/secret/get_repo.go
@@ -8,13 +8,12 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// GetSecretForRepo gets a secret by org and repo name from the database.
-func (e *engine) GetSecretForRepo(ctx context.Context, name string, r *api.Repo) (*library.Secret, error) {
+func (e *engine) GetSecretForRepo(ctx context.Context, name string, r *api.Repo) (*api.Secret, error) {
e.logger.WithFields(logrus.Fields{
"org": r.GetOrg(),
"repo": r.GetName(),
@@ -23,7 +22,7 @@ func (e *engine) GetSecretForRepo(ctx context.Context, name string, r *api.Repo)
}).Tracef("getting repo secret %s/%s", r.GetFullName(), name)
// variable to store query results
- s := new(database.Secret)
+ s := new(types.Secret)
// send query to the database and store result in variable
err := e.client.
@@ -39,9 +38,6 @@ func (e *engine) GetSecretForRepo(ctx context.Context, name string, r *api.Repo)
return nil, err
}
- // decrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Decrypt
err = s.Decrypt(e.config.EncryptionKey)
if err != nil {
// TODO: remove backwards compatibility before 1.x.x release
@@ -50,15 +46,7 @@ func (e *engine) GetSecretForRepo(ctx context.Context, name string, r *api.Repo)
// by logging the error instead of returning it
// which allows us to fetch unencrypted secrets
e.logger.Errorf("unable to decrypt repo secret %s/%s: %v", r.GetFullName(), name, err)
-
- // return the unencrypted secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- return s.ToLibrary(), nil
}
- // return the decrypted secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- return s.ToLibrary(), nil
+ return s.ToAPI(), nil
}
diff --git a/database/secret/get_repo_test.go b/database/secret/get_repo_test.go
index 99ea7610d..e9ccb8550 100644
--- a/database/secret/get_repo_test.go
+++ b/database/secret/get_repo_test.go
@@ -9,13 +9,14 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/testutils"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
func TestSecret_Engine_GetSecretForRepo(t *testing.T) {
// setup types
- _repo := testRepo()
+ _repo := testutils.APIRepo()
_repo.SetID(1)
_repo.GetOwner().SetID(1)
_repo.SetHash("baz")
@@ -25,7 +26,7 @@ func TestSecret_Engine_GetSecretForRepo(t *testing.T) {
_repo.SetVisibility("public")
_repo.SetPipelineType("yaml")
- _secret := testSecret()
+ _secret := testutils.APISecret()
_secret.SetID(1)
_secret.SetOrg("foo")
_secret.SetRepo("bar")
@@ -36,7 +37,7 @@ func TestSecret_Engine_GetSecretForRepo(t *testing.T) {
_secret.SetCreatedBy("user")
_secret.SetUpdatedAt(1)
_secret.SetUpdatedBy("user2")
- _secret.SetAllowEvents(library.NewEventsFromMask(1))
+ _secret.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -63,7 +64,7 @@ func TestSecret_Engine_GetSecretForRepo(t *testing.T) {
failure bool
name string
database *engine
- want *library.Secret
+ want *api.Secret
}{
{
failure: false,
diff --git a/database/secret/get_team.go b/database/secret/get_team.go
index ee82409c6..6c4a0f285 100644
--- a/database/secret/get_team.go
+++ b/database/secret/get_team.go
@@ -7,13 +7,13 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// GetSecretForTeam gets a secret by org and team name from the database.
-func (e *engine) GetSecretForTeam(ctx context.Context, org, team, name string) (*library.Secret, error) {
+func (e *engine) GetSecretForTeam(ctx context.Context, org, team, name string) (*api.Secret, error) {
e.logger.WithFields(logrus.Fields{
"org": org,
"team": team,
@@ -22,7 +22,7 @@ func (e *engine) GetSecretForTeam(ctx context.Context, org, team, name string) (
}).Tracef("getting shared secret %s/%s/%s", org, team, name)
// variable to store query results
- s := new(database.Secret)
+ s := new(types.Secret)
// send query to the database and store result in variable
err := e.client.
@@ -53,11 +53,11 @@ func (e *engine) GetSecretForTeam(ctx context.Context, org, team, name string) (
// return the unencrypted secret
//
// https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- return s.ToLibrary(), nil
+ return s.ToAPI(), nil
}
// return the decrypted secret
//
// https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- return s.ToLibrary(), nil
+ return s.ToAPI(), nil
}
diff --git a/database/secret/get_team_test.go b/database/secret/get_team_test.go
index 96e3bf880..1b2cf0777 100644
--- a/database/secret/get_team_test.go
+++ b/database/secret/get_team_test.go
@@ -9,13 +9,14 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/testutils"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
func TestSecret_Engine_GetSecretForTeam(t *testing.T) {
// setup types
- _secret := testSecret()
+ _secret := testutils.APISecret()
_secret.SetID(1)
_secret.SetOrg("foo")
_secret.SetTeam("bar")
@@ -26,7 +27,7 @@ func TestSecret_Engine_GetSecretForTeam(t *testing.T) {
_secret.SetCreatedBy("user")
_secret.SetUpdatedAt(1)
_secret.SetUpdatedBy("user2")
- _secret.SetAllowEvents(library.NewEventsFromMask(1))
+ _secret.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -53,7 +54,7 @@ func TestSecret_Engine_GetSecretForTeam(t *testing.T) {
failure bool
name string
database *engine
- want *library.Secret
+ want *api.Secret
}{
{
failure: false,
diff --git a/database/secret/get_test.go b/database/secret/get_test.go
index 0d38aa679..fda275129 100644
--- a/database/secret/get_test.go
+++ b/database/secret/get_test.go
@@ -9,12 +9,13 @@ import (
"github.com/DATA-DOG/go-sqlmock"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/testutils"
)
func TestSecret_Engine_GetSecret(t *testing.T) {
// setup types
- _secret := testSecret()
+ _secret := testutils.APISecret()
_secret.SetID(1)
_secret.SetOrg("foo")
_secret.SetRepo("bar")
@@ -25,7 +26,7 @@ func TestSecret_Engine_GetSecret(t *testing.T) {
_secret.SetCreatedBy("user")
_secret.SetUpdatedAt(1)
_secret.SetUpdatedBy("user2")
- _secret.SetAllowEvents(library.NewEventsFromMask(1))
+ _secret.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -51,7 +52,7 @@ func TestSecret_Engine_GetSecret(t *testing.T) {
failure bool
name string
database *engine
- want *library.Secret
+ want *api.Secret
}{
{
failure: false,
diff --git a/database/secret/interface.go b/database/secret/interface.go
index b5aa4f73e..f38cf6a75 100644
--- a/database/secret/interface.go
+++ b/database/secret/interface.go
@@ -6,7 +6,6 @@ import (
"context"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/library"
)
// SecretInterface represents the Vela interface for secret
@@ -38,27 +37,27 @@ type SecretInterface interface {
// CountSecretsForTeams defines a function that gets the count of secrets by teams within an org.
CountSecretsForTeams(context.Context, string, []string, map[string]interface{}) (int64, error)
// CreateSecret defines a function that creates a new secret.
- CreateSecret(context.Context, *library.Secret) (*library.Secret, error)
+ CreateSecret(context.Context, *api.Secret) (*api.Secret, error)
// DeleteSecret defines a function that deletes an existing secret.
- DeleteSecret(context.Context, *library.Secret) error
+ DeleteSecret(context.Context, *api.Secret) error
// GetSecret defines a function that gets a secret by ID.
- GetSecret(context.Context, int64) (*library.Secret, error)
+ GetSecret(context.Context, int64) (*api.Secret, error)
// GetSecretForOrg defines a function that gets a secret by org name.
- GetSecretForOrg(context.Context, string, string) (*library.Secret, error)
+ GetSecretForOrg(context.Context, string, string) (*api.Secret, error)
// GetSecretForRepo defines a function that gets a secret by org and repo name.
- GetSecretForRepo(context.Context, string, *api.Repo) (*library.Secret, error)
+ GetSecretForRepo(context.Context, string, *api.Repo) (*api.Secret, error)
// GetSecretForTeam defines a function that gets a secret by org and team name.
- GetSecretForTeam(context.Context, string, string, string) (*library.Secret, error)
+ GetSecretForTeam(context.Context, string, string, string) (*api.Secret, error)
// ListSecrets defines a function that gets a list of all secrets.
- ListSecrets(context.Context) ([]*library.Secret, error)
+ ListSecrets(context.Context) ([]*api.Secret, error)
// ListSecretsForOrg defines a function that gets a list of secrets by org name.
- ListSecretsForOrg(context.Context, string, map[string]interface{}, int, int) ([]*library.Secret, int64, error)
+ ListSecretsForOrg(context.Context, string, map[string]interface{}, int, int) ([]*api.Secret, int64, error)
// ListSecretsForRepo defines a function that gets a list of secrets by org and repo name.
- ListSecretsForRepo(context.Context, *api.Repo, map[string]interface{}, int, int) ([]*library.Secret, int64, error)
+ ListSecretsForRepo(context.Context, *api.Repo, map[string]interface{}, int, int) ([]*api.Secret, int64, error)
// ListSecretsForTeam defines a function that gets a list of secrets by org and team name.
- ListSecretsForTeam(context.Context, string, string, map[string]interface{}, int, int) ([]*library.Secret, int64, error)
+ ListSecretsForTeam(context.Context, string, string, map[string]interface{}, int, int) ([]*api.Secret, int64, error)
// ListSecretsForTeams defines a function that gets a list of secrets by teams within an org.
- ListSecretsForTeams(context.Context, string, []string, map[string]interface{}, int, int) ([]*library.Secret, int64, error)
+ ListSecretsForTeams(context.Context, string, []string, map[string]interface{}, int, int) ([]*api.Secret, int64, error)
// UpdateSecret defines a function that updates an existing secret.
- UpdateSecret(context.Context, *library.Secret) (*library.Secret, error)
+ UpdateSecret(context.Context, *api.Secret) (*api.Secret, error)
}
diff --git a/database/secret/list.go b/database/secret/list.go
index fe2031f89..876f90281 100644
--- a/database/secret/list.go
+++ b/database/secret/list.go
@@ -5,19 +5,19 @@ package secret
import (
"context"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// ListSecrets gets a list of all secrets from the database.
-func (e *engine) ListSecrets(ctx context.Context) ([]*library.Secret, error) {
+func (e *engine) ListSecrets(ctx context.Context) ([]*api.Secret, error) {
e.logger.Trace("listing all secrets")
// variables to store query results and return value
count := int64(0)
- s := new([]database.Secret)
- secrets := []*library.Secret{}
+ s := new([]types.Secret)
+ secrets := []*api.Secret{}
// count the results
count, err := e.CountSecrets(ctx)
@@ -45,9 +45,6 @@ func (e *engine) ListSecrets(ctx context.Context) ([]*library.Secret, error) {
// https://golang.org/doc/faq#closures_and_goroutines
tmp := secret
- // decrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Decrypt
err = tmp.Decrypt(e.config.EncryptionKey)
if err != nil {
// TODO: remove backwards compatibility before 1.x.x release
@@ -58,10 +55,7 @@ func (e *engine) ListSecrets(ctx context.Context) ([]*library.Secret, error) {
e.logger.Errorf("unable to decrypt secret %d: %v", tmp.ID.Int64, err)
}
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- secrets = append(secrets, tmp.ToLibrary())
+ secrets = append(secrets, tmp.ToAPI())
}
return secrets, nil
diff --git a/database/secret/list_org.go b/database/secret/list_org.go
index c75fa8f8d..b02a466c6 100644
--- a/database/secret/list_org.go
+++ b/database/secret/list_org.go
@@ -7,15 +7,15 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// ListSecretsForOrg gets a list of secrets by org name from the database.
//
//nolint:lll // ignore long line length due to variable names
-func (e *engine) ListSecretsForOrg(ctx context.Context, org string, filters map[string]interface{}, page, perPage int) ([]*library.Secret, int64, error) {
+func (e *engine) ListSecretsForOrg(ctx context.Context, org string, filters map[string]interface{}, page, perPage int) ([]*api.Secret, int64, error) {
e.logger.WithFields(logrus.Fields{
"org": org,
"type": constants.SecretOrg,
@@ -23,8 +23,8 @@ func (e *engine) ListSecretsForOrg(ctx context.Context, org string, filters map[
// variables to store query results and return values
count := int64(0)
- s := new([]database.Secret)
- secrets := []*library.Secret{}
+ s := new([]types.Secret)
+ secrets := []*api.Secret{}
// count the results
count, err := e.CountSecretsForOrg(ctx, org, filters)
@@ -61,9 +61,6 @@ func (e *engine) ListSecretsForOrg(ctx context.Context, org string, filters map[
// https://golang.org/doc/faq#closures_and_goroutines
tmp := secret
- // decrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Decrypt
err = tmp.Decrypt(e.config.EncryptionKey)
if err != nil {
// TODO: remove backwards compatibility before 1.x.x release
@@ -74,10 +71,7 @@ func (e *engine) ListSecretsForOrg(ctx context.Context, org string, filters map[
e.logger.Errorf("unable to decrypt secret %d: %v", tmp.ID.Int64, err)
}
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- secrets = append(secrets, tmp.ToLibrary())
+ secrets = append(secrets, tmp.ToAPI())
}
return secrets, count, nil
diff --git a/database/secret/list_org_test.go b/database/secret/list_org_test.go
index f3a95f0cd..a4da8ab07 100644
--- a/database/secret/list_org_test.go
+++ b/database/secret/list_org_test.go
@@ -9,13 +9,14 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/testutils"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
func TestSecret_Engine_ListSecretsForOrg(t *testing.T) {
// setup types
- _secretOne := testSecret()
+ _secretOne := testutils.APISecret()
_secretOne.SetID(1)
_secretOne.SetOrg("foo")
_secretOne.SetRepo("*")
@@ -26,9 +27,9 @@ func TestSecret_Engine_ListSecretsForOrg(t *testing.T) {
_secretOne.SetCreatedBy("user")
_secretOne.SetUpdatedAt(1)
_secretOne.SetUpdatedBy("user2")
- _secretOne.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretOne.SetAllowEvents(api.NewEventsFromMask(1))
- _secretTwo := testSecret()
+ _secretTwo := testutils.APISecret()
_secretTwo.SetID(2)
_secretTwo.SetOrg("foo")
_secretTwo.SetRepo("*")
@@ -39,7 +40,7 @@ func TestSecret_Engine_ListSecretsForOrg(t *testing.T) {
_secretTwo.SetCreatedBy("user")
_secretTwo.SetUpdatedAt(1)
_secretTwo.SetUpdatedBy("user2")
- _secretTwo.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretTwo.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -79,19 +80,19 @@ func TestSecret_Engine_ListSecretsForOrg(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Secret
+ want []*api.Secret
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Secret{_secretTwo, _secretOne},
+ want: []*api.Secret{_secretTwo, _secretOne},
},
{
failure: false,
name: "sqlite",
database: _sqlite,
- want: []*library.Secret{_secretTwo, _secretOne},
+ want: []*api.Secret{_secretTwo, _secretOne},
},
}
diff --git a/database/secret/list_repo.go b/database/secret/list_repo.go
index 593139869..8b69b6a17 100644
--- a/database/secret/list_repo.go
+++ b/database/secret/list_repo.go
@@ -8,15 +8,14 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// ListSecretsForRepo gets a list of secrets by org name from the database.
//
//nolint:lll // ignore long line length due to variable names
-func (e *engine) ListSecretsForRepo(ctx context.Context, r *api.Repo, filters map[string]interface{}, page, perPage int) ([]*library.Secret, int64, error) {
+func (e *engine) ListSecretsForRepo(ctx context.Context, r *api.Repo, filters map[string]interface{}, page, perPage int) ([]*api.Secret, int64, error) {
e.logger.WithFields(logrus.Fields{
"org": r.GetOrg(),
"repo": r.GetName(),
@@ -25,8 +24,8 @@ func (e *engine) ListSecretsForRepo(ctx context.Context, r *api.Repo, filters ma
// variables to store query results and return values
count := int64(0)
- s := new([]database.Secret)
- secrets := []*library.Secret{}
+ s := new([]types.Secret)
+ secrets := []*api.Secret{}
// count the results
count, err := e.CountSecretsForRepo(ctx, r, filters)
@@ -64,9 +63,6 @@ func (e *engine) ListSecretsForRepo(ctx context.Context, r *api.Repo, filters ma
// https://golang.org/doc/faq#closures_and_goroutines
tmp := secret
- // decrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Decrypt
err = tmp.Decrypt(e.config.EncryptionKey)
if err != nil {
// TODO: remove backwards compatibility before 1.x.x release
@@ -77,10 +73,7 @@ func (e *engine) ListSecretsForRepo(ctx context.Context, r *api.Repo, filters ma
e.logger.Errorf("unable to decrypt secret %d: %v", tmp.ID.Int64, err)
}
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- secrets = append(secrets, tmp.ToLibrary())
+ secrets = append(secrets, tmp.ToAPI())
}
return secrets, count, nil
diff --git a/database/secret/list_repo_test.go b/database/secret/list_repo_test.go
index 1b70c1bda..aa0b6df0f 100644
--- a/database/secret/list_repo_test.go
+++ b/database/secret/list_repo_test.go
@@ -9,13 +9,14 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/testutils"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
func TestSecret_Engine_ListSecretsForRepo(t *testing.T) {
// setup types
- _repo := testRepo()
+ _repo := testutils.APIRepo()
_repo.SetID(1)
_repo.GetOwner().SetID(1)
_repo.SetHash("baz")
@@ -25,7 +26,7 @@ func TestSecret_Engine_ListSecretsForRepo(t *testing.T) {
_repo.SetVisibility("public")
_repo.SetPipelineType("yaml")
- _secretOne := testSecret()
+ _secretOne := testutils.APISecret()
_secretOne.SetID(1)
_secretOne.SetOrg("foo")
_secretOne.SetRepo("bar")
@@ -36,9 +37,9 @@ func TestSecret_Engine_ListSecretsForRepo(t *testing.T) {
_secretOne.SetCreatedBy("user")
_secretOne.SetUpdatedAt(1)
_secretOne.SetUpdatedBy("user2")
- _secretOne.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretOne.SetAllowEvents(api.NewEventsFromMask(1))
- _secretTwo := testSecret()
+ _secretTwo := testutils.APISecret()
_secretTwo.SetID(2)
_secretTwo.SetOrg("foo")
_secretTwo.SetRepo("bar")
@@ -49,7 +50,7 @@ func TestSecret_Engine_ListSecretsForRepo(t *testing.T) {
_secretTwo.SetCreatedBy("user")
_secretTwo.SetUpdatedAt(1)
_secretTwo.SetUpdatedBy("user2")
- _secretTwo.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretTwo.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -89,19 +90,19 @@ func TestSecret_Engine_ListSecretsForRepo(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Secret
+ want []*api.Secret
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Secret{_secretTwo, _secretOne},
+ want: []*api.Secret{_secretTwo, _secretOne},
},
{
failure: false,
name: "sqlite",
database: _sqlite,
- want: []*library.Secret{_secretTwo, _secretOne},
+ want: []*api.Secret{_secretTwo, _secretOne},
},
}
diff --git a/database/secret/list_team.go b/database/secret/list_team.go
index 2e2a5773c..16787a2e7 100644
--- a/database/secret/list_team.go
+++ b/database/secret/list_team.go
@@ -8,15 +8,15 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// ListSecretsForTeam gets a list of secrets by org and team name from the database.
//
//nolint:lll // ignore long line length due to variable names
-func (e *engine) ListSecretsForTeam(ctx context.Context, org, team string, filters map[string]interface{}, page, perPage int) ([]*library.Secret, int64, error) {
+func (e *engine) ListSecretsForTeam(ctx context.Context, org, team string, filters map[string]interface{}, page, perPage int) ([]*api.Secret, int64, error) {
e.logger.WithFields(logrus.Fields{
"org": org,
"team": team,
@@ -25,8 +25,8 @@ func (e *engine) ListSecretsForTeam(ctx context.Context, org, team string, filte
// variables to store query results and return values
count := int64(0)
- s := new([]database.Secret)
- secrets := []*library.Secret{}
+ s := new([]types.Secret)
+ secrets := []*api.Secret{}
// count the results
count, err := e.CountSecretsForTeam(ctx, org, team, filters)
@@ -64,9 +64,6 @@ func (e *engine) ListSecretsForTeam(ctx context.Context, org, team string, filte
// https://golang.org/doc/faq#closures_and_goroutines
tmp := secret
- // decrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Decrypt
err = tmp.Decrypt(e.config.EncryptionKey)
if err != nil {
// TODO: remove backwards compatibility before 1.x.x release
@@ -77,17 +74,14 @@ func (e *engine) ListSecretsForTeam(ctx context.Context, org, team string, filte
e.logger.Errorf("unable to decrypt secret %d: %v", tmp.ID.Int64, err)
}
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- secrets = append(secrets, tmp.ToLibrary())
+ secrets = append(secrets, tmp.ToAPI())
}
return secrets, count, nil
}
// ListSecretsForTeams gets a list of secrets by teams within an org from the database.
-func (e *engine) ListSecretsForTeams(ctx context.Context, org string, teams []string, filters map[string]interface{}, page, perPage int) ([]*library.Secret, int64, error) {
+func (e *engine) ListSecretsForTeams(ctx context.Context, org string, teams []string, filters map[string]interface{}, page, perPage int) ([]*api.Secret, int64, error) {
// iterate through the list of teams provided
for index, team := range teams {
// ensure the team name is lower case
@@ -102,8 +96,8 @@ func (e *engine) ListSecretsForTeams(ctx context.Context, org string, teams []st
// variables to store query results and return values
count := int64(0)
- s := new([]database.Secret)
- secrets := []*library.Secret{}
+ s := new([]types.Secret)
+ secrets := []*api.Secret{}
// count the results
count, err := e.CountSecretsForTeams(ctx, org, teams, filters)
@@ -141,9 +135,6 @@ func (e *engine) ListSecretsForTeams(ctx context.Context, org string, teams []st
// https://golang.org/doc/faq#closures_and_goroutines
tmp := secret
- // decrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Decrypt
err = tmp.Decrypt(e.config.EncryptionKey)
if err != nil {
// TODO: remove backwards compatibility before 1.x.x release
@@ -154,10 +145,7 @@ func (e *engine) ListSecretsForTeams(ctx context.Context, org string, teams []st
e.logger.Errorf("unable to decrypt secret %d: %v", tmp.ID.Int64, err)
}
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
- secrets = append(secrets, tmp.ToLibrary())
+ secrets = append(secrets, tmp.ToAPI())
}
return secrets, count, nil
diff --git a/database/secret/list_team_test.go b/database/secret/list_team_test.go
index 81708949a..f49c206a8 100644
--- a/database/secret/list_team_test.go
+++ b/database/secret/list_team_test.go
@@ -9,13 +9,14 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/testutils"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
func TestSecret_Engine_ListSecretsForTeam(t *testing.T) {
// setup types
- _secretOne := testSecret()
+ _secretOne := testutils.APISecret()
_secretOne.SetID(1)
_secretOne.SetOrg("foo")
_secretOne.SetTeam("bar")
@@ -26,9 +27,9 @@ func TestSecret_Engine_ListSecretsForTeam(t *testing.T) {
_secretOne.SetCreatedBy("user")
_secretOne.SetUpdatedAt(1)
_secretOne.SetUpdatedBy("user2")
- _secretOne.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretOne.SetAllowEvents(api.NewEventsFromMask(1))
- _secretTwo := testSecret()
+ _secretTwo := testutils.APISecret()
_secretTwo.SetID(2)
_secretTwo.SetOrg("foo")
_secretTwo.SetTeam("bar")
@@ -39,7 +40,7 @@ func TestSecret_Engine_ListSecretsForTeam(t *testing.T) {
_secretTwo.SetCreatedBy("user")
_secretTwo.SetUpdatedAt(1)
_secretTwo.SetUpdatedBy("user2")
- _secretTwo.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretTwo.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -79,19 +80,19 @@ func TestSecret_Engine_ListSecretsForTeam(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Secret
+ want []*api.Secret
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Secret{_secretTwo, _secretOne},
+ want: []*api.Secret{_secretTwo, _secretOne},
},
{
failure: false,
name: "sqlite",
database: _sqlite,
- want: []*library.Secret{_secretTwo, _secretOne},
+ want: []*api.Secret{_secretTwo, _secretOne},
},
}
@@ -123,7 +124,7 @@ func TestSecret_Engine_ListSecretsForTeam(t *testing.T) {
func TestSecret_Engine_ListSecretsForTeams(t *testing.T) {
// setup types
- _secretOne := testSecret()
+ _secretOne := testutils.APISecret()
_secretOne.SetID(1)
_secretOne.SetOrg("foo")
_secretOne.SetTeam("bar")
@@ -134,9 +135,9 @@ func TestSecret_Engine_ListSecretsForTeams(t *testing.T) {
_secretOne.SetCreatedBy("user")
_secretOne.SetUpdatedAt(1)
_secretOne.SetUpdatedBy("user2")
- _secretOne.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretOne.SetAllowEvents(api.NewEventsFromMask(1))
- _secretTwo := testSecret()
+ _secretTwo := testutils.APISecret()
_secretTwo.SetID(2)
_secretTwo.SetOrg("foo")
_secretTwo.SetTeam("bar")
@@ -147,7 +148,7 @@ func TestSecret_Engine_ListSecretsForTeams(t *testing.T) {
_secretTwo.SetCreatedBy("user")
_secretTwo.SetUpdatedAt(1)
_secretTwo.SetUpdatedBy("user2")
- _secretTwo.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretTwo.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -187,19 +188,19 @@ func TestSecret_Engine_ListSecretsForTeams(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Secret
+ want []*api.Secret
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Secret{_secretTwo, _secretOne},
+ want: []*api.Secret{_secretTwo, _secretOne},
},
{
failure: false,
name: "sqlite",
database: _sqlite,
- want: []*library.Secret{_secretTwo, _secretOne},
+ want: []*api.Secret{_secretTwo, _secretOne},
},
}
diff --git a/database/secret/list_test.go b/database/secret/list_test.go
index aa72d5baf..b744c434a 100644
--- a/database/secret/list_test.go
+++ b/database/secret/list_test.go
@@ -9,12 +9,13 @@ import (
"github.com/DATA-DOG/go-sqlmock"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/testutils"
)
func TestSecret_Engine_ListSecrets(t *testing.T) {
// setup types
- _secretOne := testSecret()
+ _secretOne := testutils.APISecret()
_secretOne.SetID(1)
_secretOne.SetOrg("foo")
_secretOne.SetRepo("bar")
@@ -25,9 +26,9 @@ func TestSecret_Engine_ListSecrets(t *testing.T) {
_secretOne.SetCreatedBy("user")
_secretOne.SetUpdatedAt(1)
_secretOne.SetUpdatedBy("user2")
- _secretOne.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretOne.SetAllowEvents(api.NewEventsFromMask(1))
- _secretTwo := testSecret()
+ _secretTwo := testutils.APISecret()
_secretTwo.SetID(2)
_secretTwo.SetOrg("foo")
_secretTwo.SetRepo("bar")
@@ -38,7 +39,7 @@ func TestSecret_Engine_ListSecrets(t *testing.T) {
_secretTwo.SetCreatedBy("user")
_secretTwo.SetUpdatedAt(1)
_secretTwo.SetUpdatedBy("user2")
- _secretTwo.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretTwo.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -76,19 +77,19 @@ func TestSecret_Engine_ListSecrets(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Secret
+ want []*api.Secret
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Secret{_secretOne, _secretTwo},
+ want: []*api.Secret{_secretOne, _secretTwo},
},
{
failure: false,
name: "sqlite3",
database: _sqlite,
- want: []*library.Secret{_secretOne, _secretTwo},
+ want: []*api.Secret{_secretOne, _secretTwo},
},
}
diff --git a/database/secret/secret_test.go b/database/secret/secret_test.go
index 41bb4dd3a..968c48c7a 100644
--- a/database/secret/secret_test.go
+++ b/database/secret/secret_test.go
@@ -11,10 +11,6 @@ import (
"gorm.io/driver/postgres"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
-
- api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/library"
- "github.com/go-vela/types/library/actions"
)
func TestSecret_New(t *testing.T) {
@@ -174,78 +170,3 @@ func testSqlite(t *testing.T) *engine {
return _engine
}
-
-// testRepo is a test helper function to create a library
-// Repo type with all fields set to their zero values.
-func testRepo() *api.Repo {
- return &api.Repo{
- ID: new(int64),
- BuildLimit: new(int64),
- Timeout: new(int64),
- Counter: new(int),
- PipelineType: new(string),
- Hash: new(string),
- Org: new(string),
- Name: new(string),
- FullName: new(string),
- Link: new(string),
- Clone: new(string),
- Branch: new(string),
- Visibility: new(string),
- PreviousName: new(string),
- Private: new(bool),
- Trusted: new(bool),
- Active: new(bool),
- }
-}
-
-// testSecret is a test helper function to create a library
-// Secret type with all fields set to their zero values.
-func testSecret() *library.Secret {
- return &library.Secret{
- ID: new(int64),
- Org: new(string),
- Repo: new(string),
- Team: new(string),
- Name: new(string),
- Value: new(string),
- Type: new(string),
- Images: new([]string),
- AllowEvents: testEvents(),
- AllowCommand: new(bool),
- AllowSubstitution: new(bool),
- CreatedAt: new(int64),
- CreatedBy: new(string),
- UpdatedAt: new(int64),
- UpdatedBy: new(string),
- }
-}
-
-func testEvents() *library.Events {
- return &library.Events{
- Push: &actions.Push{
- Branch: new(bool),
- Tag: new(bool),
- DeleteBranch: new(bool),
- DeleteTag: new(bool),
- },
- PullRequest: &actions.Pull{
- Opened: new(bool),
- Edited: new(bool),
- Synchronize: new(bool),
- Reopened: new(bool),
- Labeled: new(bool),
- Unlabeled: new(bool),
- },
- Deployment: &actions.Deploy{
- Created: new(bool),
- },
- Comment: &actions.Comment{
- Created: new(bool),
- Edited: new(bool),
- },
- Schedule: &actions.Schedule{
- Run: new(bool),
- },
- }
-}
diff --git a/database/secret/update.go b/database/secret/update.go
index c046d18ed..e88c9fc54 100644
--- a/database/secret/update.go
+++ b/database/secret/update.go
@@ -9,13 +9,13 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// UpdateSecret updates an existing secret in the database.
-func (e *engine) UpdateSecret(ctx context.Context, s *library.Secret) (*library.Secret, error) {
+func (e *engine) UpdateSecret(ctx context.Context, s *api.Secret) (*api.Secret, error) {
// handle the secret based off the type
switch s.GetType() {
case constants.SecretShared:
@@ -34,22 +34,13 @@ func (e *engine) UpdateSecret(ctx context.Context, s *library.Secret) (*library.
}).Tracef("updating secret %s/%s/%s/%s", s.GetType(), s.GetOrg(), s.GetRepo(), s.GetName())
}
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#SecretFromLibrary
- secret := database.SecretFromLibrary(s)
+ secret := types.SecretFromAPI(s)
- // validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Validate
err := secret.Validate()
if err != nil {
return nil, err
}
- // encrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Encrypt
err = secret.Encrypt(e.config.EncryptionKey)
if err != nil {
switch s.GetType() {
@@ -78,5 +69,5 @@ func (e *engine) UpdateSecret(ctx context.Context, s *library.Secret) (*library.
}
}
- return secret.ToLibrary(), nil
+ return secret.ToAPI(), nil
}
diff --git a/database/secret/update_test.go b/database/secret/update_test.go
index e53d43b4e..22a2c4dba 100644
--- a/database/secret/update_test.go
+++ b/database/secret/update_test.go
@@ -9,13 +9,13 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestSecret_Engine_UpdateSecret(t *testing.T) {
// setup types
- _secretRepo := testSecret()
+ _secretRepo := testutils.APISecret()
_secretRepo.SetID(1)
_secretRepo.SetOrg("foo")
_secretRepo.SetRepo("bar")
@@ -26,9 +26,9 @@ func TestSecret_Engine_UpdateSecret(t *testing.T) {
_secretRepo.SetCreatedBy("user")
_secretRepo.SetUpdatedAt(1)
_secretRepo.SetUpdatedBy("user2")
- _secretRepo.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretRepo.SetAllowEvents(api.NewEventsFromMask(1))
- _secretOrg := testSecret()
+ _secretOrg := testutils.APISecret()
_secretOrg.SetID(2)
_secretOrg.SetOrg("foo")
_secretOrg.SetRepo("*")
@@ -39,9 +39,9 @@ func TestSecret_Engine_UpdateSecret(t *testing.T) {
_secretOrg.SetCreatedBy("user")
_secretOrg.SetUpdatedAt(1)
_secretOrg.SetUpdatedBy("user2")
- _secretOrg.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretOrg.SetAllowEvents(api.NewEventsFromMask(1))
- _secretShared := testSecret()
+ _secretShared := testutils.APISecret()
_secretShared.SetID(3)
_secretShared.SetOrg("foo")
_secretShared.SetTeam("bar")
@@ -52,7 +52,7 @@ func TestSecret_Engine_UpdateSecret(t *testing.T) {
_secretShared.SetCreatedBy("user")
_secretShared.SetUpdatedAt(1)
_secretShared.SetUpdatedBy("user2")
- _secretShared.SetAllowEvents(library.NewEventsFromMask(1))
+ _secretShared.SetAllowEvents(api.NewEventsFromMask(1))
_postgres, _mock := testPostgres(t)
defer func() { _sql, _ := _postgres.client.DB(); _sql.Close() }()
@@ -101,7 +101,7 @@ WHERE "id" = $15`).
failure bool
name string
database *engine
- secret *library.Secret
+ secret *api.Secret
}{
{
failure: false,
diff --git a/database/testutils/api_resources.go b/database/testutils/api_resources.go
index a183ada1f..28c947fc6 100644
--- a/database/testutils/api_resources.go
+++ b/database/testutils/api_resources.go
@@ -190,6 +190,26 @@ func APISchedule() *api.Schedule {
}
}
+func APISecret() *api.Secret {
+ return &api.Secret{
+ ID: new(int64),
+ Org: new(string),
+ Repo: new(string),
+ Team: new(string),
+ Name: new(string),
+ Value: new(string),
+ Type: new(string),
+ Images: new([]string),
+ AllowEvents: APIEvents(),
+ AllowCommand: new(bool),
+ AllowSubstitution: new(bool),
+ CreatedAt: new(int64),
+ CreatedBy: new(string),
+ UpdatedAt: new(int64),
+ UpdatedBy: new(string),
+ }
+}
+
func APIService() *library.Service {
return &library.Service{
ID: new(int64),
diff --git a/database/types/secret.go b/database/types/secret.go
new file mode 100644
index 000000000..8a3a7d285
--- /dev/null
+++ b/database/types/secret.go
@@ -0,0 +1,288 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "database/sql"
+ "encoding/base64"
+ "errors"
+ "strings"
+
+ "github.com/lib/pq"
+
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/util"
+ "github.com/go-vela/types/constants"
+)
+
+var (
+ // ErrEmptySecretName defines the error type when a
+ // Secret type has an empty Name field provided.
+ ErrEmptySecretName = errors.New("empty secret name provided")
+
+ // ErrEmptySecretOrg defines the error type when a
+ // Secret type has an empty Org field provided.
+ ErrEmptySecretOrg = errors.New("empty secret org provided")
+
+ // ErrEmptySecretRepo defines the error type when a
+ // Secret type has an empty Repo field provided.
+ ErrEmptySecretRepo = errors.New("empty secret repo provided")
+
+ // ErrEmptySecretTeam defines the error type when a
+ // Secret type has an empty Team field provided.
+ ErrEmptySecretTeam = errors.New("empty secret team provided")
+
+ // ErrEmptySecretType defines the error type when a
+ // Secret type has an empty Type field provided.
+ ErrEmptySecretType = errors.New("empty secret type provided")
+
+ // ErrEmptySecretValue defines the error type when a
+ // Secret type has an empty Value field provided.
+ ErrEmptySecretValue = errors.New("empty secret value provided")
+)
+
+// Secret is the database representation of a secret.
+type Secret struct {
+ ID sql.NullInt64 `sql:"id"`
+ Org sql.NullString `sql:"org"`
+ Repo sql.NullString `sql:"repo"`
+ Team sql.NullString `sql:"team"`
+ Name sql.NullString `sql:"name"`
+ Value sql.NullString `sql:"value"`
+ Type sql.NullString `sql:"type"`
+ Images pq.StringArray `sql:"images" gorm:"type:varchar(1000)"`
+ AllowEvents sql.NullInt64 `sql:"allow_events"`
+ AllowCommand sql.NullBool `sql:"allow_command"`
+ AllowSubstitution sql.NullBool `sql:"allow_substitution"`
+ CreatedAt sql.NullInt64 `sql:"created_at"`
+ CreatedBy sql.NullString `sql:"created_by"`
+ UpdatedAt sql.NullInt64 `sql:"updated_at"`
+ UpdatedBy sql.NullString `sql:"updated_by"`
+}
+
+// Decrypt will manipulate the existing secret value by
+// base64 decoding that value. Then, a AES-256 cipher
+// block is created from the encryption key in order to
+// decrypt the base64 decoded secret value.
+func (s *Secret) Decrypt(key string) error {
+ // base64 decode the encrypted secret value
+ decoded, err := base64.StdEncoding.DecodeString(s.Value.String)
+ if err != nil {
+ return err
+ }
+
+ // decrypt the base64 decoded secret value
+ decrypted, err := util.Decrypt(key, decoded)
+ if err != nil {
+ return err
+ }
+
+ // set the decrypted secret value
+ s.Value = sql.NullString{
+ String: string(decrypted),
+ Valid: true,
+ }
+
+ return nil
+}
+
+// Encrypt will manipulate the existing secret value by
+// creating a AES-256 cipher block from the encryption
+// key in order to encrypt the secret value. Then, the
+// secret value is base64 encoded for transport across
+// network boundaries.
+func (s *Secret) Encrypt(key string) error {
+ // encrypt the secret value
+ encrypted, err := util.Encrypt(key, []byte(s.Value.String))
+ if err != nil {
+ return err
+ }
+
+ // base64 encode the encrypted secret data to make it network safe
+ s.Value = sql.NullString{
+ String: base64.StdEncoding.EncodeToString(encrypted),
+ Valid: true,
+ }
+
+ return nil
+}
+
+// Nullify ensures the valid flag for
+// the sql.Null types are properly set.
+//
+// When a field within the Secret type is the zero
+// value for the field, the valid flag is set to
+// false causing it to be NULL in the database.
+func (s *Secret) Nullify() *Secret {
+ if s == nil {
+ return nil
+ }
+
+ // check if the ID field should be false
+ if s.ID.Int64 == 0 {
+ s.ID.Valid = false
+ }
+
+ // check if the Org field should be false
+ if len(s.Org.String) == 0 {
+ s.Org.Valid = false
+ }
+
+ // check if the Repo field should be false
+ if len(s.Repo.String) == 0 {
+ s.Repo.Valid = false
+ }
+
+ // check if the Team field should be false
+ if len(s.Team.String) == 0 {
+ s.Team.Valid = false
+ }
+
+ // check if the Name field should be false
+ if len(s.Name.String) == 0 {
+ s.Name.Valid = false
+ }
+
+ // check if the Value field should be false
+ if len(s.Value.String) == 0 {
+ s.Value.Valid = false
+ }
+
+ // check if the Value should be false
+ if len(s.Type.String) == 0 {
+ s.Type.Valid = false
+ }
+
+ // check if the AllowEvents field should be false
+ if s.AllowEvents.Int64 == 0 {
+ s.AllowEvents.Valid = false
+ }
+
+ // check if the CreatedAt field should be false
+ if s.CreatedAt.Int64 == 0 {
+ s.CreatedAt.Valid = false
+ }
+
+ // check if the CreatedBy field should be false
+ if len(s.CreatedBy.String) == 0 {
+ s.CreatedBy.Valid = false
+ }
+
+ // check if the UpdatedAt field should be false
+ if s.UpdatedAt.Int64 == 0 {
+ s.UpdatedAt.Valid = false
+ }
+
+ // check if the UpdatedBy field should be false
+ if len(s.UpdatedBy.String) == 0 {
+ s.UpdatedBy.Valid = false
+ }
+
+ return s
+}
+
+// ToAPI converts the Secret type
+// to a API Secret type.
+func (s *Secret) ToAPI() *api.Secret {
+ secret := new(api.Secret)
+
+ secret.SetID(s.ID.Int64)
+ secret.SetOrg(s.Org.String)
+ secret.SetRepo(s.Repo.String)
+ secret.SetTeam(s.Team.String)
+ secret.SetName(s.Name.String)
+ secret.SetValue(s.Value.String)
+ secret.SetType(s.Type.String)
+ secret.SetImages(s.Images)
+ secret.SetAllowEvents(api.NewEventsFromMask(s.AllowEvents.Int64))
+ secret.SetAllowCommand(s.AllowCommand.Bool)
+ secret.SetAllowSubstitution(s.AllowSubstitution.Bool)
+ secret.SetCreatedAt(s.CreatedAt.Int64)
+ secret.SetCreatedBy(s.CreatedBy.String)
+ secret.SetUpdatedAt(s.UpdatedAt.Int64)
+ secret.SetUpdatedBy(s.UpdatedBy.String)
+
+ return secret
+}
+
+// Validate verifies the necessary fields for
+// the Secret type are populated correctly.
+func (s *Secret) Validate() error {
+ // verify the Type field is populated
+ if len(s.Type.String) == 0 {
+ return ErrEmptySecretType
+ }
+
+ // verify the Org field is populated
+ if len(s.Org.String) == 0 {
+ return ErrEmptySecretOrg
+ }
+
+ // check if an org or repo secret
+ if strings.EqualFold(s.Type.String, constants.SecretRepo) ||
+ strings.EqualFold(s.Type.String, constants.SecretOrg) {
+ // verify the Repo field is populated
+ if len(s.Repo.String) == 0 {
+ return ErrEmptySecretRepo
+ }
+ }
+
+ // check if a shared secret
+ if strings.EqualFold(s.Type.String, constants.SecretShared) {
+ // verify the Team field is populated
+ if len(s.Team.String) == 0 {
+ return ErrEmptySecretTeam
+ }
+ }
+
+ // verify the Name field is populated
+ if len(s.Name.String) == 0 {
+ return ErrEmptySecretName
+ }
+
+ // verify the Value field is populated
+ if len(s.Value.String) == 0 {
+ return ErrEmptySecretValue
+ }
+
+ // ensure that all Secret string fields
+ // that can be returned as JSON are sanitized
+ // to avoid unsafe HTML content
+ s.Org = sql.NullString{String: util.Sanitize(s.Org.String), Valid: s.Org.Valid}
+ s.Repo = sql.NullString{String: util.Sanitize(s.Repo.String), Valid: s.Repo.Valid}
+ s.Team = sql.NullString{String: util.Sanitize(s.Team.String), Valid: s.Team.Valid}
+ s.Name = sql.NullString{String: util.Sanitize(s.Name.String), Valid: s.Name.Valid}
+ s.Type = sql.NullString{String: util.Sanitize(s.Type.String), Valid: s.Type.Valid}
+
+ // ensure that all Images are sanitized
+ // to avoid unsafe HTML content
+ for i, v := range s.Images {
+ s.Images[i] = util.Sanitize(v)
+ }
+
+ return nil
+}
+
+// SecretFromAPI converts the API Secret type
+// to a database Secret type.
+func SecretFromAPI(s *api.Secret) *Secret {
+ secret := &Secret{
+ ID: sql.NullInt64{Int64: s.GetID(), Valid: true},
+ Org: sql.NullString{String: s.GetOrg(), Valid: true},
+ Repo: sql.NullString{String: s.GetRepo(), Valid: true},
+ Team: sql.NullString{String: s.GetTeam(), Valid: true},
+ Name: sql.NullString{String: s.GetName(), Valid: true},
+ Value: sql.NullString{String: s.GetValue(), Valid: true},
+ Type: sql.NullString{String: s.GetType(), Valid: true},
+ Images: pq.StringArray(s.GetImages()),
+ AllowEvents: sql.NullInt64{Int64: s.GetAllowEvents().ToDatabase(), Valid: true},
+ AllowCommand: sql.NullBool{Bool: s.GetAllowCommand(), Valid: true},
+ AllowSubstitution: sql.NullBool{Bool: s.GetAllowSubstitution(), Valid: true},
+ CreatedAt: sql.NullInt64{Int64: s.GetCreatedAt(), Valid: true},
+ CreatedBy: sql.NullString{String: s.GetCreatedBy(), Valid: true},
+ UpdatedAt: sql.NullInt64{Int64: s.GetUpdatedAt(), Valid: true},
+ UpdatedBy: sql.NullString{String: s.GetUpdatedBy(), Valid: true},
+ }
+
+ return secret.Nullify()
+}
diff --git a/database/types/secret_test.go b/database/types/secret_test.go
new file mode 100644
index 000000000..8ff5a55d5
--- /dev/null
+++ b/database/types/secret_test.go
@@ -0,0 +1,333 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "database/sql"
+ "reflect"
+ "testing"
+ "time"
+
+ api "github.com/go-vela/server/api/types"
+)
+
+var (
+ currentTime = time.Now()
+ tsCreate = currentTime.UTC().Unix()
+ tsUpdate = currentTime.Add(time.Hour * 1).UTC().Unix()
+)
+
+func TestDatabase_Secret_Decrypt(t *testing.T) {
+ // setup types
+ key := "C639A572E14D5075C526FDDD43E4ECF6"
+ encrypted := testSecret()
+
+ err := encrypted.Encrypt(key)
+ if err != nil {
+ t.Errorf("unable to encrypt secret: %v", err)
+ }
+
+ // setup tests
+ tests := []struct {
+ failure bool
+ key string
+ secret Secret
+ }{
+ {
+ failure: false,
+ key: key,
+ secret: *encrypted,
+ },
+ {
+ failure: true,
+ key: "",
+ secret: *encrypted,
+ },
+ {
+ failure: true,
+ key: key,
+ secret: *testSecret(),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ err := test.secret.Decrypt(test.key)
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Decrypt should have returned err")
+ }
+
+ continue
+ }
+
+ if err != nil {
+ t.Errorf("Decrypt returned err: %v", err)
+ }
+ }
+}
+
+func TestDatabase_Secret_Encrypt(t *testing.T) {
+ // setup types
+ key := "C639A572E14D5075C526FDDD43E4ECF6"
+
+ // setup tests
+ tests := []struct {
+ failure bool
+ key string
+ secret *Secret
+ }{
+ {
+ failure: false,
+ key: key,
+ secret: testSecret(),
+ },
+ {
+ failure: true,
+ key: "",
+ secret: testSecret(),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ err := test.secret.Encrypt(test.key)
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Encrypt should have returned err")
+ }
+
+ continue
+ }
+
+ if err != nil {
+ t.Errorf("Encrypt returned err: %v", err)
+ }
+ }
+}
+
+func TestDatabase_Secret_Nullify(t *testing.T) {
+ // setup types
+ var s *Secret
+
+ want := &Secret{
+ ID: sql.NullInt64{Int64: 0, Valid: false},
+ Org: sql.NullString{String: "", Valid: false},
+ Repo: sql.NullString{String: "", Valid: false},
+ Team: sql.NullString{String: "", Valid: false},
+ Name: sql.NullString{String: "", Valid: false},
+ Value: sql.NullString{String: "", Valid: false},
+ Type: sql.NullString{String: "", Valid: false},
+ AllowEvents: sql.NullInt64{Int64: 0, Valid: false},
+ CreatedAt: sql.NullInt64{Int64: 0, Valid: false},
+ CreatedBy: sql.NullString{String: "", Valid: false},
+ UpdatedAt: sql.NullInt64{Int64: 0, Valid: false},
+ UpdatedBy: sql.NullString{String: "", Valid: false},
+ }
+
+ // setup tests
+ tests := []struct {
+ secret *Secret
+ want *Secret
+ }{
+ {
+ secret: testSecret(),
+ want: testSecret(),
+ },
+ {
+ secret: s,
+ want: nil,
+ },
+ {
+ secret: new(Secret),
+ want: want,
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := test.secret.Nullify()
+
+ if !reflect.DeepEqual(got, test.want) {
+ t.Errorf("Nullify is %v, want %v", got, test.want)
+ }
+ }
+}
+
+func TestDatabase_Secret_ToAPI(t *testing.T) {
+ // setup types
+ want := new(api.Secret)
+
+ want.SetID(1)
+ want.SetOrg("github")
+ want.SetRepo("octocat")
+ want.SetTeam("octokitties")
+ want.SetName("foo")
+ want.SetValue("bar")
+ want.SetType("repo")
+ want.SetImages([]string{"alpine"})
+ want.SetAllowEvents(api.NewEventsFromMask(1))
+ want.SetAllowCommand(true)
+ want.SetAllowSubstitution(true)
+ want.SetCreatedAt(tsCreate)
+ want.SetCreatedBy("octocat")
+ want.SetUpdatedAt(tsUpdate)
+ want.SetUpdatedBy("octocat2")
+
+ // run test
+ got := testSecret().ToAPI()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("ToAPI is %v, want %v", got, want)
+ }
+}
+
+func TestDatabase_Secret_Validate(t *testing.T) {
+ // setup types
+ tests := []struct {
+ failure bool
+ secret *Secret
+ }{
+ {
+ failure: false,
+ secret: testSecret(),
+ },
+ { // no name set for secret
+ failure: true,
+ secret: &Secret{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ Org: sql.NullString{String: "github", Valid: true},
+ Repo: sql.NullString{String: "octocat", Valid: true},
+ Team: sql.NullString{String: "octokitties", Valid: true},
+ Value: sql.NullString{String: "bar", Valid: true},
+ Type: sql.NullString{String: "repo", Valid: true},
+ },
+ },
+ { // no org set for secret
+ failure: true,
+ secret: &Secret{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ Repo: sql.NullString{String: "octocat", Valid: true},
+ Team: sql.NullString{String: "octokitties", Valid: true},
+ Name: sql.NullString{String: "foo", Valid: true},
+ Value: sql.NullString{String: "bar", Valid: true},
+ Type: sql.NullString{String: "repo", Valid: true},
+ },
+ },
+ { // no repo set for secret
+ failure: true,
+ secret: &Secret{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ Org: sql.NullString{String: "github", Valid: true},
+ Team: sql.NullString{String: "octokitties", Valid: true},
+ Name: sql.NullString{String: "foo", Valid: true},
+ Value: sql.NullString{String: "bar", Valid: true},
+ Type: sql.NullString{String: "repo", Valid: true},
+ },
+ },
+ { // no team set for secret
+ failure: true,
+ secret: &Secret{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ Org: sql.NullString{String: "github", Valid: true},
+ Repo: sql.NullString{String: "octocat", Valid: true},
+ Name: sql.NullString{String: "foo", Valid: true},
+ Value: sql.NullString{String: "bar", Valid: true},
+ Type: sql.NullString{String: "shared", Valid: true},
+ },
+ },
+ { // no type set for secret
+ failure: true,
+ secret: &Secret{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ Org: sql.NullString{String: "github", Valid: true},
+ Repo: sql.NullString{String: "octocat", Valid: true},
+ Team: sql.NullString{String: "octokitties", Valid: true},
+ Name: sql.NullString{String: "foo", Valid: true},
+ Value: sql.NullString{String: "bar", Valid: true},
+ },
+ },
+ { // no value set for secret
+ failure: true,
+ secret: &Secret{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ Org: sql.NullString{String: "github", Valid: true},
+ Repo: sql.NullString{String: "octocat", Valid: true},
+ Team: sql.NullString{String: "octokitties", Valid: true},
+ Name: sql.NullString{String: "foo", Valid: true},
+ Type: sql.NullString{String: "repo", Valid: true},
+ },
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ err := test.secret.Validate()
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Validate should have returned err")
+ }
+
+ continue
+ }
+
+ if err != nil {
+ t.Errorf("Validate returned err: %v", err)
+ }
+ }
+}
+
+func TestDatabase_SecretFromAPI(t *testing.T) {
+ // setup types
+ s := new(api.Secret)
+
+ s.SetID(1)
+ s.SetOrg("github")
+ s.SetRepo("octocat")
+ s.SetTeam("octokitties")
+ s.SetName("foo")
+ s.SetValue("bar")
+ s.SetType("repo")
+ s.SetImages([]string{"alpine"})
+ s.SetAllowEvents(api.NewEventsFromMask(1))
+ s.SetAllowCommand(true)
+ s.SetAllowSubstitution(true)
+ s.SetCreatedAt(tsCreate)
+ s.SetCreatedBy("octocat")
+ s.SetUpdatedAt(tsUpdate)
+ s.SetUpdatedBy("octocat2")
+
+ want := testSecret()
+
+ // run test
+ got := SecretFromAPI(s)
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("SecretFromAPI is %v, want %v", got, want)
+ }
+}
+
+// testSecret is a test helper function to create a Secret
+// type with all fields set to a fake value.
+func testSecret() *Secret {
+ return &Secret{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ Org: sql.NullString{String: "github", Valid: true},
+ Repo: sql.NullString{String: "octocat", Valid: true},
+ Team: sql.NullString{String: "octokitties", Valid: true},
+ Name: sql.NullString{String: "foo", Valid: true},
+ Value: sql.NullString{String: "bar", Valid: true},
+ Type: sql.NullString{String: "repo", Valid: true},
+ Images: []string{"alpine"},
+ AllowEvents: sql.NullInt64{Int64: 1, Valid: true},
+ AllowCommand: sql.NullBool{Bool: true, Valid: true},
+ AllowSubstitution: sql.NullBool{Bool: true, Valid: true},
+ CreatedAt: sql.NullInt64{Int64: tsCreate, Valid: true},
+ CreatedBy: sql.NullString{String: "octocat", Valid: true},
+ UpdatedAt: sql.NullInt64{Int64: tsUpdate, Valid: true},
+ UpdatedBy: sql.NullString{String: "octocat2", Valid: true},
+ }
+}
diff --git a/mock/server/secret.go b/mock/server/secret.go
index 6cd45047f..fd3abf23d 100644
--- a/mock/server/secret.go
+++ b/mock/server/secret.go
@@ -10,9 +10,9 @@ import (
"strings"
"github.com/gin-gonic/gin"
+ "github.com/hashicorp/vault/api"
"github.com/go-vela/types"
- "github.com/go-vela/types/library"
)
//nolint:gosec // these are mock responses
@@ -101,7 +101,7 @@ const (
func getSecrets(c *gin.Context) {
data := []byte(SecretsResp)
- var body []library.Secret
+ var body []api.Secret
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -123,7 +123,7 @@ func getSecret(c *gin.Context) {
data := []byte(SecretResp)
- var body library.Secret
+ var body api.Secret
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -133,7 +133,7 @@ func getSecret(c *gin.Context) {
func addSecret(c *gin.Context) {
data := []byte(SecretResp)
- var body library.Secret
+ var body api.Secret
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusCreated, body)
@@ -157,7 +157,7 @@ func updateSecret(c *gin.Context) {
data := []byte(SecretResp)
- var body library.Secret
+ var body api.Secret
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
diff --git a/mock/server/secret_test.go b/mock/server/secret_test.go
index 502011c28..43e7098b1 100644
--- a/mock/server/secret_test.go
+++ b/mock/server/secret_test.go
@@ -7,11 +7,11 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestSecret_ActiveSecretResp(t *testing.T) {
- testSecret := library.Secret{}
+ testSecret := api.Secret{}
err := json.Unmarshal([]byte(SecretResp), &testSecret)
if err != nil {
diff --git a/secret/native/count_test.go b/secret/native/count_test.go
index e080ec03a..975b9b5df 100644
--- a/secret/native/count_test.go
+++ b/secret/native/count_test.go
@@ -6,13 +6,13 @@ import (
"context"
"testing"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/library"
)
func TestNative_Count(t *testing.T) {
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetID(1)
sec.SetOrg("foo")
sec.SetRepo("bar")
diff --git a/secret/native/create.go b/secret/native/create.go
index 698b25740..78cce0d4c 100644
--- a/secret/native/create.go
+++ b/secret/native/create.go
@@ -8,12 +8,12 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// Create creates a new secret.
-func (c *client) Create(ctx context.Context, sType, org, name string, s *library.Secret) (*library.Secret, error) {
+func (c *client) Create(ctx context.Context, sType, org, name string, s *api.Secret) (*api.Secret, error) {
// handle the secret based off the type
switch sType {
case constants.SecretOrg:
diff --git a/secret/native/create_test.go b/secret/native/create_test.go
index c7c44c22d..fb2aba6b2 100644
--- a/secret/native/create_test.go
+++ b/secret/native/create_test.go
@@ -7,13 +7,13 @@ import (
"reflect"
"testing"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/library"
)
func TestNative_Create_Org(t *testing.T) {
// setup types
- want := new(library.Secret)
+ want := new(api.Secret)
want.SetID(1)
want.SetOrg("foo")
want.SetRepo("*")
@@ -22,7 +22,7 @@ func TestNative_Create_Org(t *testing.T) {
want.SetValue("baz")
want.SetType("org")
want.SetImages([]string{"foo", "bar"})
- want.SetAllowEvents(library.NewEventsFromMask(1))
+ want.SetAllowEvents(api.NewEventsFromMask(1))
want.SetAllowCommand(false)
want.SetAllowSubstitution(false)
want.SetCreatedAt(1)
@@ -61,7 +61,7 @@ func TestNative_Create_Org(t *testing.T) {
func TestNative_Create_Repo(t *testing.T) {
// setup types
- want := new(library.Secret)
+ want := new(api.Secret)
want.SetID(1)
want.SetOrg("foo")
want.SetRepo("bar")
@@ -70,7 +70,7 @@ func TestNative_Create_Repo(t *testing.T) {
want.SetValue("foob")
want.SetType("repo")
want.SetImages([]string{"foo", "bar"})
- want.SetAllowEvents(library.NewEventsFromMask(1))
+ want.SetAllowEvents(api.NewEventsFromMask(1))
want.SetAllowCommand(false)
want.SetAllowSubstitution(false)
want.SetCreatedAt(1)
@@ -109,7 +109,7 @@ func TestNative_Create_Repo(t *testing.T) {
func TestNative_Create_Shared(t *testing.T) {
// setup types
- want := new(library.Secret)
+ want := new(api.Secret)
want.SetID(1)
want.SetOrg("foo")
want.SetRepo("")
@@ -118,7 +118,7 @@ func TestNative_Create_Shared(t *testing.T) {
want.SetValue("foob")
want.SetType("shared")
want.SetImages([]string{"foo", "bar"})
- want.SetAllowEvents(library.NewEventsFromMask(1))
+ want.SetAllowEvents(api.NewEventsFromMask(1))
want.SetAllowCommand(false)
want.SetAllowSubstitution(false)
want.SetCreatedAt(1)
@@ -157,7 +157,7 @@ func TestNative_Create_Shared(t *testing.T) {
func TestNative_Create_Invalid(t *testing.T) {
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetID(1)
sec.SetOrg("foo")
sec.SetRepo("bar")
@@ -166,7 +166,7 @@ func TestNative_Create_Invalid(t *testing.T) {
sec.SetValue("foob")
sec.SetType("invalid")
sec.SetImages([]string{"foo", "bar"})
- sec.SetAllowEvents(library.NewEventsFromMask(1))
+ sec.SetAllowEvents(api.NewEventsFromMask(1))
sec.SetAllowCommand(false)
sec.SetAllowSubstitution(false)
sec.SetCreatedAt(1)
diff --git a/secret/native/delete_test.go b/secret/native/delete_test.go
index ad486b2a1..db6132260 100644
--- a/secret/native/delete_test.go
+++ b/secret/native/delete_test.go
@@ -6,13 +6,13 @@ import (
"context"
"testing"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/library"
)
func TestNative_Delete(t *testing.T) {
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetID(1)
sec.SetOrg("foo")
sec.SetRepo("bar")
diff --git a/secret/native/get.go b/secret/native/get.go
index da22376e6..d6731be3a 100644
--- a/secret/native/get.go
+++ b/secret/native/get.go
@@ -10,11 +10,10 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// Get captures a secret.
-func (c *client) Get(ctx context.Context, sType, org, name, path string) (*library.Secret, error) {
+func (c *client) Get(ctx context.Context, sType, org, name, path string) (*api.Secret, error) {
// handle the secret based off the type
switch sType {
case constants.SecretOrg:
diff --git a/secret/native/get_test.go b/secret/native/get_test.go
index f20dcdf5b..ad155ad44 100644
--- a/secret/native/get_test.go
+++ b/secret/native/get_test.go
@@ -7,13 +7,13 @@ import (
"reflect"
"testing"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/library"
)
func TestNative_Get(t *testing.T) {
// setup types
- want := new(library.Secret)
+ want := new(api.Secret)
want.SetID(1)
want.SetOrg("foo")
want.SetRepo("bar")
@@ -22,7 +22,7 @@ func TestNative_Get(t *testing.T) {
want.SetValue("foob")
want.SetType("repo")
want.SetImages([]string{"foo", "bar"})
- want.SetAllowEvents(library.NewEventsFromMask(1))
+ want.SetAllowEvents(api.NewEventsFromMask(1))
want.SetAllowCommand(false)
want.SetAllowSubstitution(false)
want.SetCreatedAt(1)
diff --git a/secret/native/list.go b/secret/native/list.go
index f1acfc069..42b3ee172 100644
--- a/secret/native/list.go
+++ b/secret/native/list.go
@@ -10,11 +10,10 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// List captures a list of secrets.
-func (c *client) List(ctx context.Context, sType, org, name string, page, perPage int, teams []string) ([]*library.Secret, error) {
+func (c *client) List(ctx context.Context, sType, org, name string, page, perPage int, teams []string) ([]*api.Secret, error) {
// handle the secret based off the type
switch sType {
case constants.SecretOrg:
diff --git a/secret/native/list_test.go b/secret/native/list_test.go
index b201eda73..b332d42c6 100644
--- a/secret/native/list_test.go
+++ b/secret/native/list_test.go
@@ -7,13 +7,13 @@ import (
"reflect"
"testing"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/library"
)
func TestNative_List(t *testing.T) {
// setup types
- sOne := new(library.Secret)
+ sOne := new(api.Secret)
sOne.SetID(1)
sOne.SetOrg("foo")
sOne.SetRepo("bar")
@@ -22,7 +22,7 @@ func TestNative_List(t *testing.T) {
sOne.SetValue("foob")
sOne.SetType("repo")
sOne.SetImages([]string{"foo", "bar"})
- sOne.SetAllowEvents(library.NewEventsFromMask(1))
+ sOne.SetAllowEvents(api.NewEventsFromMask(1))
sOne.SetAllowCommand(false)
sOne.SetAllowSubstitution(false)
sOne.SetCreatedAt(1)
@@ -30,7 +30,7 @@ func TestNative_List(t *testing.T) {
sOne.SetUpdatedAt(1)
sOne.SetUpdatedBy("user2")
- sTwo := new(library.Secret)
+ sTwo := new(api.Secret)
sTwo.SetID(2)
sTwo.SetOrg("foo")
sTwo.SetRepo("bar")
@@ -39,7 +39,7 @@ func TestNative_List(t *testing.T) {
sTwo.SetValue("baz")
sTwo.SetType("repo")
sTwo.SetImages([]string{"foo", "bar"})
- sTwo.SetAllowEvents(library.NewEventsFromMask(1))
+ sTwo.SetAllowEvents(api.NewEventsFromMask(1))
sTwo.SetAllowCommand(false)
sTwo.SetAllowSubstitution(false)
sTwo.SetCreatedAt(1)
@@ -47,7 +47,7 @@ func TestNative_List(t *testing.T) {
sTwo.SetUpdatedAt(1)
sTwo.SetUpdatedBy("user2")
- want := []*library.Secret{sTwo, sOne}
+ want := []*api.Secret{sTwo, sOne}
// setup database
db, err := database.NewTest()
diff --git a/secret/native/update.go b/secret/native/update.go
index 43bfcc011..df1d5111d 100644
--- a/secret/native/update.go
+++ b/secret/native/update.go
@@ -8,12 +8,12 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// Update updates an existing secret.
-func (c *client) Update(ctx context.Context, sType, org, name string, s *library.Secret) (*library.Secret, error) {
+func (c *client) Update(ctx context.Context, sType, org, name string, s *api.Secret) (*api.Secret, error) {
// capture the secret from the native service
secret, err := c.Get(ctx, sType, org, name, s.GetName())
if err != nil {
diff --git a/secret/native/update_test.go b/secret/native/update_test.go
index 1ec2d597a..e134eec6b 100644
--- a/secret/native/update_test.go
+++ b/secret/native/update_test.go
@@ -8,13 +8,13 @@ import (
"testing"
"time"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/library"
)
func TestNative_Update(t *testing.T) {
// setup types
- original := new(library.Secret)
+ original := new(api.Secret)
original.SetID(1)
original.SetOrg("foo")
original.SetRepo("bar")
@@ -23,7 +23,7 @@ func TestNative_Update(t *testing.T) {
original.SetValue("secretValue")
original.SetType("repo")
original.SetImages([]string{"foo", "baz"})
- original.SetAllowEvents(library.NewEventsFromMask(1))
+ original.SetAllowEvents(api.NewEventsFromMask(1))
original.SetAllowCommand(true)
original.SetAllowSubstitution(true)
original.SetCreatedAt(1)
@@ -31,7 +31,7 @@ func TestNative_Update(t *testing.T) {
original.SetUpdatedAt(time.Now().UTC().Unix())
original.SetUpdatedBy("user")
- want := new(library.Secret)
+ want := new(api.Secret)
want.SetID(1)
want.SetOrg("foo")
want.SetRepo("bar")
@@ -40,7 +40,7 @@ func TestNative_Update(t *testing.T) {
want.SetValue("foob")
want.SetType("repo")
want.SetImages([]string{"foo", "bar"})
- want.SetAllowEvents(library.NewEventsFromMask(3))
+ want.SetAllowEvents(api.NewEventsFromMask(3))
want.SetAllowCommand(false)
want.SetAllowSubstitution(false)
want.SetCreatedAt(1)
@@ -81,7 +81,7 @@ func TestNative_Update(t *testing.T) {
func TestNative_Update_Invalid(t *testing.T) {
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetName("baz")
sec.SetValue("foob")
diff --git a/secret/service.go b/secret/service.go
index 6357dad05..e9183d299 100644
--- a/secret/service.go
+++ b/secret/service.go
@@ -5,7 +5,7 @@ package secret
import (
"context"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
// Service represents the interface for Vela integrating
@@ -18,15 +18,15 @@ type Service interface {
Driver() string
// Get defines a function that captures a secret.
- Get(context.Context, string, string, string, string) (*library.Secret, error)
+ Get(context.Context, string, string, string, string) (*api.Secret, error)
// List defines a function that captures a list of secrets.
- List(context.Context, string, string, string, int, int, []string) ([]*library.Secret, error)
+ List(context.Context, string, string, string, int, int, []string) ([]*api.Secret, error)
// Count defines a function that counts a list of secrets.
Count(context.Context, string, string, string, []string) (int64, error)
// Create defines a function that creates a new secret.
- Create(context.Context, string, string, string, *library.Secret) (*library.Secret, error)
+ Create(context.Context, string, string, string, *api.Secret) (*api.Secret, error)
// Update defines a function that updates an existing secret.
- Update(context.Context, string, string, string, *library.Secret) (*library.Secret, error)
+ Update(context.Context, string, string, string, *api.Secret) (*api.Secret, error)
// Delete defines a function that deletes a secret.
Delete(context.Context, string, string, string, string) error
diff --git a/secret/vault/create.go b/secret/vault/create.go
index 6666d0f85..b1ac5b40a 100644
--- a/secret/vault/create.go
+++ b/secret/vault/create.go
@@ -9,13 +9,13 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
+ database "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// Create creates a new secret.
-func (c *client) Create(ctx context.Context, sType, org, name string, s *library.Secret) (*library.Secret, error) {
+func (c *client) Create(ctx context.Context, sType, org, name string, s *api.Secret) (*api.Secret, error) {
// create log fields from secret metadata
fields := logrus.Fields{
"org": org,
@@ -38,7 +38,7 @@ func (c *client) Create(ctx context.Context, sType, org, name string, s *library
c.Logger.WithFields(fields).Tracef("creating vault %s secret %s for %s/%s", sType, s.GetName(), org, name)
// validate the secret
- err := database.SecretFromLibrary(s).Validate()
+ err := database.SecretFromAPI(s).Validate()
if err != nil {
return nil, err
}
@@ -61,25 +61,25 @@ func (c *client) Create(ctx context.Context, sType, org, name string, s *library
// createOrg is a helper function to create
// the org secret for the provided path.
-func (c *client) createOrg(org, path string, data map[string]interface{}) (*library.Secret, error) {
+func (c *client) createOrg(org, path string, data map[string]interface{}) (*api.Secret, error) {
return c.create(fmt.Sprintf("%s/org/%s/%s", c.config.Prefix, org, path), data)
}
// createRepo is a helper function to create
// the repo secret for the provided path.
-func (c *client) createRepo(org, repo, path string, data map[string]interface{}) (*library.Secret, error) {
+func (c *client) createRepo(org, repo, path string, data map[string]interface{}) (*api.Secret, error) {
return c.create(fmt.Sprintf("%s/repo/%s/%s/%s", c.config.Prefix, org, repo, path), data)
}
// createShared is a helper function to create
// the shared secret for the provided path.
-func (c *client) createShared(org, team, path string, data map[string]interface{}) (*library.Secret, error) {
+func (c *client) createShared(org, team, path string, data map[string]interface{}) (*api.Secret, error) {
return c.create(fmt.Sprintf("%s/shared/%s/%s/%s", c.config.Prefix, org, team, path), data)
}
// create is a helper function to create
// the secret for the provided path.
-func (c *client) create(path string, data map[string]interface{}) (*library.Secret, error) {
+func (c *client) create(path string, data map[string]interface{}) (*api.Secret, error) {
if strings.HasPrefix("secret/data", c.config.Prefix) {
data = map[string]interface{}{
"data": data,
diff --git a/secret/vault/create_test.go b/secret/vault/create_test.go
index 1de42e2bf..f6eb60bff 100644
--- a/secret/vault/create_test.go
+++ b/secret/vault/create_test.go
@@ -11,7 +11,7 @@ import (
"github.com/gin-gonic/gin"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestVault_Create_Org(t *testing.T) {
@@ -44,7 +44,7 @@ func TestVault_Create_Org(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("*")
sec.SetName("bar")
@@ -53,7 +53,7 @@ func TestVault_Create_Org(t *testing.T) {
sec.SetImages([]string{"foo", "bar"})
sec.SetAllowCommand(true)
sec.SetAllowSubstitution(true)
- sec.SetAllowEvents(library.NewEventsFromMask(1))
+ sec.SetAllowEvents(api.NewEventsFromMask(1))
sec.SetCreatedAt(1563474077)
sec.SetCreatedBy("octocat")
sec.SetUpdatedAt(1563474079)
@@ -134,7 +134,7 @@ func TestVault_Create_Repo(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("bar")
sec.SetName("baz")
@@ -143,7 +143,7 @@ func TestVault_Create_Repo(t *testing.T) {
sec.SetImages([]string{"foo", "bar"})
sec.SetAllowCommand(true)
sec.SetAllowSubstitution(true)
- sec.SetAllowEvents(library.NewEventsFromMask(3))
+ sec.SetAllowEvents(api.NewEventsFromMask(3))
sec.SetCreatedAt(1563474077)
sec.SetCreatedBy("octocat")
sec.SetUpdatedAt(1563474079)
@@ -225,7 +225,7 @@ func TestVault_Create_Shared(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetTeam("bar")
sec.SetName("baz")
@@ -234,7 +234,7 @@ func TestVault_Create_Shared(t *testing.T) {
sec.SetImages([]string{"foo", "bar"})
sec.SetAllowCommand(false)
sec.SetAllowSubstitution(false)
- sec.SetAllowEvents(library.NewEventsFromMask(1))
+ sec.SetAllowEvents(api.NewEventsFromMask(1))
sec.SetCreatedAt(1563474077)
sec.SetCreatedBy("octocat")
sec.SetUpdatedAt(1563474079)
@@ -310,7 +310,7 @@ func TestVault_Create_InvalidSecret(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("bar")
sec.SetTeam("")
@@ -364,7 +364,7 @@ func TestVault_Create_InvalidSecret(t *testing.T) {
func TestVault_Create_InvalidType(t *testing.T) {
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("bar")
sec.SetTeam("")
@@ -417,7 +417,7 @@ func TestVault_Create_InvalidType(t *testing.T) {
func TestVault_Create_ClosedServer(t *testing.T) {
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("bar")
sec.SetTeam("")
diff --git a/secret/vault/get.go b/secret/vault/get.go
index fcd083006..081ecb910 100644
--- a/secret/vault/get.go
+++ b/secret/vault/get.go
@@ -10,12 +10,12 @@ import (
"github.com/hashicorp/vault/api"
"github.com/sirupsen/logrus"
+ velaAPI "github.com/go-vela/server/api/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// Get captures a secret.
-func (c *client) Get(ctx context.Context, sType, org, name, path string) (s *library.Secret, err error) {
+func (c *client) Get(ctx context.Context, sType, org, name, path string) (s *velaAPI.Secret, err error) {
// create log fields from secret metadata
fields := logrus.Fields{
"org": org,
diff --git a/secret/vault/get_test.go b/secret/vault/get_test.go
index 4b64b8ed7..b54c6e70f 100644
--- a/secret/vault/get_test.go
+++ b/secret/vault/get_test.go
@@ -11,7 +11,7 @@ import (
"github.com/gin-gonic/gin"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestVault_Get_Org(t *testing.T) {
@@ -44,7 +44,8 @@ func TestVault_Get_Org(t *testing.T) {
defer fake.Close()
// setup types
- want := new(library.Secret)
+
+ want := new(api.Secret)
want.SetOrg("foo")
want.SetRepo("*")
want.SetName("bar")
@@ -53,7 +54,7 @@ func TestVault_Get_Org(t *testing.T) {
want.SetImages([]string{"foo", "bar"})
want.SetAllowCommand(true)
want.SetAllowSubstitution(true)
- want.SetAllowEvents(library.NewEventsFromMask(1))
+ want.SetAllowEvents(api.NewEventsFromMask(1))
want.SetCreatedAt(1563474077)
want.SetCreatedBy("octocat")
want.SetUpdatedAt(1563474079)
@@ -134,7 +135,7 @@ func TestVault_Get_Repo(t *testing.T) {
defer fake.Close()
// setup types
- want := new(library.Secret)
+ want := new(api.Secret)
want.SetOrg("foo")
want.SetRepo("bar")
want.SetName("baz")
@@ -143,7 +144,7 @@ func TestVault_Get_Repo(t *testing.T) {
want.SetImages([]string{"foo", "bar"})
want.SetAllowCommand(true)
want.SetAllowSubstitution(true)
- want.SetAllowEvents(library.NewEventsFromMask(3))
+ want.SetAllowEvents(api.NewEventsFromMask(3))
want.SetCreatedAt(1563474077)
want.SetCreatedBy("octocat")
want.SetUpdatedAt(1563474079)
@@ -224,7 +225,7 @@ func TestVault_Get_Shared(t *testing.T) {
defer fake.Close()
// setup types
- want := new(library.Secret)
+ want := new(api.Secret)
want.SetOrg("foo")
want.SetTeam("bar")
want.SetName("baz")
@@ -233,7 +234,7 @@ func TestVault_Get_Shared(t *testing.T) {
want.SetImages([]string{"foo", "bar"})
want.SetAllowCommand(false)
want.SetAllowSubstitution(false)
- want.SetAllowEvents(library.NewEventsFromMask(1))
+ want.SetAllowEvents(api.NewEventsFromMask(1))
want.SetCreatedAt(1563474077)
want.SetCreatedBy("octocat")
want.SetUpdatedAt(1563474079)
diff --git a/secret/vault/list.go b/secret/vault/list.go
index b42d00d66..2fd6a75cc 100644
--- a/secret/vault/list.go
+++ b/secret/vault/list.go
@@ -10,8 +10,8 @@ import (
"github.com/hashicorp/vault/api"
"github.com/sirupsen/logrus"
+ velaAPI "github.com/go-vela/server/api/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// List captures a list of secrets.
@@ -19,7 +19,7 @@ import (
// We drop page and perPage as we are always returning all results.
// Vault API doesn't seem to support pagination. Might result in undesired
// behavior for fetching Vault secrets in paginated manner.
-func (c *client) List(ctx context.Context, sType, org, name string, _, _ int, _ []string) ([]*library.Secret, error) {
+func (c *client) List(ctx context.Context, sType, org, name string, _, _ int, _ []string) ([]*velaAPI.Secret, error) {
// create log fields from secret metadata
fields := logrus.Fields{
"org": org,
@@ -41,7 +41,7 @@ func (c *client) List(ctx context.Context, sType, org, name string, _, _ int, _
var err error
- s := []*library.Secret{}
+ s := []*velaAPI.Secret{}
vault := new(api.Secret)
diff --git a/secret/vault/list_test.go b/secret/vault/list_test.go
index 990c4f020..68c535888 100644
--- a/secret/vault/list_test.go
+++ b/secret/vault/list_test.go
@@ -11,7 +11,7 @@ import (
"github.com/gin-gonic/gin"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestVault_List_Org(t *testing.T) {
@@ -59,7 +59,7 @@ func TestVault_List_Org(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("*")
sec.SetName("bar")
@@ -68,13 +68,13 @@ func TestVault_List_Org(t *testing.T) {
sec.SetImages([]string{"foo", "bar"})
sec.SetAllowCommand(true)
sec.SetAllowSubstitution(true)
- sec.SetAllowEvents(library.NewEventsFromMask(1))
+ sec.SetAllowEvents(api.NewEventsFromMask(1))
sec.SetCreatedAt(1563474077)
sec.SetCreatedBy("octocat")
sec.SetUpdatedAt(1563474079)
sec.SetUpdatedBy("octocat2")
- want := []*library.Secret{sec}
+ want := []*api.Secret{sec}
type args struct {
version string
@@ -196,7 +196,7 @@ func TestVault_List_Repo(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("bar")
sec.SetName("baz")
@@ -205,13 +205,13 @@ func TestVault_List_Repo(t *testing.T) {
sec.SetImages([]string{"foo", "bar"})
sec.SetAllowCommand(true)
sec.SetAllowSubstitution(true)
- sec.SetAllowEvents(library.NewEventsFromMask(3))
+ sec.SetAllowEvents(api.NewEventsFromMask(3))
sec.SetCreatedAt(1563474077)
sec.SetCreatedBy("octocat")
sec.SetUpdatedAt(1563474079)
sec.SetUpdatedBy("octocat2")
- want := []*library.Secret{sec}
+ want := []*api.Secret{sec}
type args struct {
version string
@@ -318,7 +318,7 @@ func TestVault_List_Shared(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetTeam("bar")
sec.SetName("baz")
@@ -327,13 +327,13 @@ func TestVault_List_Shared(t *testing.T) {
sec.SetImages([]string{"foo", "bar"})
sec.SetAllowCommand(false)
sec.SetAllowSubstitution(false)
- sec.SetAllowEvents(library.NewEventsFromMask(1))
+ sec.SetAllowEvents(api.NewEventsFromMask(1))
sec.SetCreatedAt(1563474077)
sec.SetCreatedBy("octocat")
sec.SetUpdatedAt(1563474079)
sec.SetUpdatedBy("octocat2")
- want := []*library.Secret{sec}
+ want := []*api.Secret{sec}
type args struct {
version string
diff --git a/secret/vault/update.go b/secret/vault/update.go
index a269bd8f3..a1c0c7b8a 100644
--- a/secret/vault/update.go
+++ b/secret/vault/update.go
@@ -9,13 +9,13 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
+ database "github.com/go-vela/server/database/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
)
// Update updates a secret.
-func (c *client) Update(ctx context.Context, sType, org, name string, s *library.Secret) (*library.Secret, error) {
+func (c *client) Update(ctx context.Context, sType, org, name string, s *api.Secret) (*api.Secret, error) {
// create log fields from secret metadata
fields := logrus.Fields{
"org": org,
@@ -67,7 +67,7 @@ func (c *client) Update(ctx context.Context, sType, org, name string, s *library
}
// validate the secret
- err = database.SecretFromLibrary(secretFromVault(vault)).Validate()
+ err = database.SecretFromAPI(secretFromVault(vault)).Validate()
if err != nil {
return nil, err
}
@@ -87,25 +87,25 @@ func (c *client) Update(ctx context.Context, sType, org, name string, s *library
// updateOrg is a helper function to update
// the org secret for the provided path.
-func (c *client) updateOrg(org, path string, data map[string]interface{}) (*library.Secret, error) {
+func (c *client) updateOrg(org, path string, data map[string]interface{}) (*api.Secret, error) {
return c.update(fmt.Sprintf("%s/%s/%s/%s", c.config.Prefix, constants.SecretOrg, org, path), data)
}
// updateRepo is a helper function to update
// the repo secret for the provided path.
-func (c *client) updateRepo(org, repo, path string, data map[string]interface{}) (*library.Secret, error) {
+func (c *client) updateRepo(org, repo, path string, data map[string]interface{}) (*api.Secret, error) {
return c.update(fmt.Sprintf("%s/%s/%s/%s/%s", c.config.Prefix, constants.SecretRepo, org, repo, path), data)
}
// updateShared is a helper function to update
// the shared secret for the provided path.
-func (c *client) updateShared(org, team, path string, data map[string]interface{}) (*library.Secret, error) {
+func (c *client) updateShared(org, team, path string, data map[string]interface{}) (*api.Secret, error) {
return c.update(fmt.Sprintf("%s/%s/%s/%s/%s", c.config.Prefix, constants.SecretShared, org, team, path), data)
}
// update is a helper function to update
// the secret for the provided path.
-func (c *client) update(path string, data map[string]interface{}) (*library.Secret, error) {
+func (c *client) update(path string, data map[string]interface{}) (*api.Secret, error) {
if strings.HasPrefix("secret/data", c.config.Prefix) {
data = map[string]interface{}{
"data": data,
diff --git a/secret/vault/update_test.go b/secret/vault/update_test.go
index 39fea7d41..fa245f6cb 100644
--- a/secret/vault/update_test.go
+++ b/secret/vault/update_test.go
@@ -11,7 +11,7 @@ import (
"github.com/gin-gonic/gin"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestVault_Update_Org(t *testing.T) {
@@ -59,7 +59,7 @@ func TestVault_Update_Org(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("*")
sec.SetName("bar")
@@ -68,7 +68,7 @@ func TestVault_Update_Org(t *testing.T) {
sec.SetImages([]string{"foo", "bar"})
sec.SetAllowCommand(true)
sec.SetAllowSubstitution(true)
- sec.SetAllowEvents(library.NewEventsFromMask(1))
+ sec.SetAllowEvents(api.NewEventsFromMask(1))
sec.SetCreatedAt(1563474077)
sec.SetCreatedBy("octocat")
sec.SetUpdatedAt(1563474079)
@@ -165,7 +165,7 @@ func TestVault_Update_Repo(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("bar")
sec.SetName("baz")
@@ -174,7 +174,7 @@ func TestVault_Update_Repo(t *testing.T) {
sec.SetImages([]string{"foo", "bar"})
sec.SetAllowCommand(true)
sec.SetAllowSubstitution(true)
- sec.SetAllowEvents(library.NewEventsFromMask(3))
+ sec.SetAllowEvents(api.NewEventsFromMask(3))
sec.SetCreatedAt(1563474077)
sec.SetCreatedBy("octocat")
sec.SetUpdatedAt(1563474079)
@@ -271,7 +271,7 @@ func TestVault_Update_Shared(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetTeam("bar")
sec.SetName("baz")
@@ -280,7 +280,7 @@ func TestVault_Update_Shared(t *testing.T) {
sec.SetImages([]string{"foo", "bar"})
sec.SetAllowCommand(false)
sec.SetAllowSubstitution(false)
- sec.SetAllowEvents(library.NewEventsFromMask(1))
+ sec.SetAllowEvents(api.NewEventsFromMask(1))
sec.SetCreatedAt(1563474077)
sec.SetCreatedBy("octocat")
sec.SetUpdatedAt(1563474079)
@@ -362,7 +362,7 @@ func TestVault_Update_InvalidSecret(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("bar")
sec.SetName("baz")
@@ -415,7 +415,7 @@ func TestVault_Update_InvalidSecret(t *testing.T) {
func TestVault_Update_InvalidType(t *testing.T) {
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("bar")
sec.SetName("baz")
@@ -466,7 +466,7 @@ func TestVault_Update_InvalidType(t *testing.T) {
func TestVault_Update_ClosedServer(t *testing.T) {
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("bar")
sec.SetName("baz")
@@ -539,7 +539,7 @@ func TestVault_Update_NoWrite(t *testing.T) {
defer fake.Close()
// setup types
- sec := new(library.Secret)
+ sec := new(api.Secret)
sec.SetOrg("foo")
sec.SetRepo("bar")
sec.SetName("baz")
diff --git a/secret/vault/vault.go b/secret/vault/vault.go
index 63745833f..fc88a167f 100644
--- a/secret/vault/vault.go
+++ b/secret/vault/vault.go
@@ -12,8 +12,8 @@ import (
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
+ velaAPI "github.com/go-vela/server/api/types"
"github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
const (
@@ -134,8 +134,8 @@ func New(opts ...ClientOpt) (*client, error) {
// secretFromVault is a helper function to convert a HashiCorp Vault secret to a Vela secret.
//
//nolint:gocyclo,funlen // ignore cyclomatic complexity and function length due to conditionals
-func secretFromVault(vault *api.Secret) *library.Secret {
- s := new(library.Secret)
+func secretFromVault(vault *api.Secret) *velaAPI.Secret {
+ s := new(velaAPI.Secret)
var data map[string]interface{}
// handle k/v v2
@@ -152,7 +152,7 @@ func secretFromVault(vault *api.Secret) *library.Secret {
if ok {
mask, err := maskJSON.Int64()
if err == nil {
- s.SetAllowEvents(library.NewEventsFromMask(mask))
+ s.SetAllowEvents(velaAPI.NewEventsFromMask(mask))
}
}
} else {
@@ -182,7 +182,7 @@ func secretFromVault(vault *api.Secret) *library.Secret {
}
}
- s.SetAllowEvents(library.NewEventsFromMask(allowEventsMask))
+ s.SetAllowEvents(velaAPI.NewEventsFromMask(allowEventsMask))
}
}
@@ -327,7 +327,7 @@ func secretFromVault(vault *api.Secret) *library.Secret {
}
// vaultFromSecret is a helper function to convert a Vela secret to a HashiCorp Vault secret.
-func vaultFromSecret(s *library.Secret) *api.Secret {
+func vaultFromSecret(s *velaAPI.Secret) *api.Secret {
data := make(map[string]interface{})
vault := new(api.Secret)
vault.Data = data
diff --git a/secret/vault/vault_test.go b/secret/vault/vault_test.go
index a60d7bd75..a566c0db1 100644
--- a/secret/vault/vault_test.go
+++ b/secret/vault/vault_test.go
@@ -13,7 +13,7 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/hashicorp/vault/api"
- "github.com/go-vela/types/library"
+ velaAPI "github.com/go-vela/server/api/types"
)
func TestVault_New(t *testing.T) {
@@ -127,14 +127,14 @@ func TestVault_secretFromVault(t *testing.T) {
},
}
- want := new(library.Secret)
+ want := new(velaAPI.Secret)
want.SetOrg("foo")
want.SetRepo("*")
want.SetTeam("foob")
want.SetName("bar")
want.SetValue("baz")
want.SetType("org")
- want.SetAllowEvents(library.NewEventsFromMask(8195))
+ want.SetAllowEvents(velaAPI.NewEventsFromMask(8195))
want.SetImages([]string{"foo", "bar"})
want.SetAllowCommand(true)
want.SetAllowSubstitution(true)
@@ -169,14 +169,14 @@ func TestVault_secretFromVault(t *testing.T) {
func TestVault_vaultFromSecret(t *testing.T) {
// setup types
- s := new(library.Secret)
+ s := new(velaAPI.Secret)
s.SetOrg("foo")
s.SetRepo("*")
s.SetTeam("foob")
s.SetName("bar")
s.SetValue("baz")
s.SetType("org")
- s.SetAllowEvents(library.NewEventsFromMask(1))
+ s.SetAllowEvents(velaAPI.NewEventsFromMask(1))
s.SetImages([]string{"foo", "bar"})
s.SetAllowCommand(true)
s.SetAllowSubstitution(true)
@@ -213,7 +213,7 @@ func TestVault_vaultFromSecret(t *testing.T) {
}
func TestVault_AccurateSecretFields(t *testing.T) {
- testSecret := library.Secret{}
+ testSecret := velaAPI.Secret{}
tSecret := reflect.TypeOf(testSecret)
From c701bd820081a129cef045105d677eddde5a3b1c Mon Sep 17 00:00:00 2001
From: Easton Crupper <65553218+ecrupper@users.noreply.github.com>
Date: Fri, 18 Oct 2024 11:56:15 -0400
Subject: [PATCH 3/6] refactor(steps/services): use server API types for steps
and services (#1210)
* refactor(steps/services): use server API types for steps and services
* gci
---
api/admin/clean.go | 2 +-
api/admin/service.go | 4 +-
api/admin/step.go | 4 +-
api/admin/worker.go | 2 +-
api/auth/logout.go | 2 +-
api/auth/post_token.go | 2 +-
api/badge.go | 2 +-
api/build/approve.go | 2 +-
api/build/auto_cancel.go | 2 +-
api/build/auto_cancel_test.go | 2 +-
api/build/cancel.go | 2 +-
api/build/clean.go | 5 +-
api/build/compile_publish.go | 2 +-
api/build/graph.go | 24 +-
api/build/list_org.go | 2 +-
api/build/list_repo.go | 2 +-
api/build/restart.go | 2 +-
api/build/token.go | 2 +-
api/build/update.go | 7 +-
api/metrics.go | 2 +-
api/repo/create.go | 2 +-
api/repo/list_org.go | 2 +-
api/repo/update.go | 2 +-
api/secret/create.go | 2 +-
api/secret/delete.go | 2 +-
api/secret/get.go | 2 +-
api/secret/list.go | 2 +-
api/secret/update.go | 2 +-
api/service/create.go | 6 +-
api/service/plan.go | 8 +-
api/service/update.go | 4 +-
api/step/create.go | 6 +-
api/step/plan.go | 10 +-
api/step/update.go | 6 +-
api/types/actions/comment.go | 2 +-
api/types/actions/comment_test.go | 2 +-
api/types/actions/deploy.go | 2 +-
api/types/actions/deploy_test.go | 2 +-
api/types/actions/pull.go | 2 +-
api/types/actions/pull_test.go | 2 +-
api/types/actions/push.go | 2 +-
api/types/actions/push_test.go | 2 +-
api/types/actions/schedule.go | 2 +-
api/types/actions/schedule_test.go | 2 +-
api/types/build.go | 2 +-
api/types/events.go | 2 +-
api/types/events_test.go | 2 +-
api/types/repo_test.go | 2 +-
api/types/secret.go | 2 +-
api/types/secret_test.go | 2 +-
api/types/service.go | 645 ++++++++++++++++
api/types/service_test.go | 449 +++++++++++
api/types/step.go | 727 ++++++++++++++++++
api/types/step_test.go | 482 ++++++++++++
api/webhook/post.go | 2 +-
api/worker/create.go | 2 +-
api/worker/refresh.go | 2 +-
cmd/vela-server/main.go | 2 +-
cmd/vela-server/schedule.go | 2 +-
cmd/vela-server/secret.go | 2 +-
cmd/vela-server/validate.go | 2 +-
compiler/native/clone.go | 2 +-
compiler/native/compile.go | 2 +-
compiler/native/compile_test.go | 2 +-
compiler/native/environment.go | 2 +-
compiler/native/expand.go | 2 +-
compiler/native/initialize.go | 2 +-
compiler/native/parse.go | 2 +-
compiler/native/parse_test.go | 2 +-
compiler/native/validate.go | 2 +-
compiler/types/pipeline/build.go | 2 +-
compiler/types/pipeline/build_test.go | 2 +-
compiler/types/pipeline/container.go | 2 +-
compiler/types/pipeline/container_test.go | 2 +-
compiler/types/pipeline/ruleset.go | 2 +-
compiler/types/pipeline/ruleset_test.go | 2 +-
compiler/types/pipeline/secret.go | 2 +-
compiler/types/pipeline/stage.go | 2 +-
compiler/types/pipeline/stage_test.go | 2 +-
compiler/types/yaml/ruleset.go | 2 +-
compiler/types/yaml/secret.go | 2 +-
compiler/types/yaml/service.go | 2 +-
compiler/types/yaml/step.go | 2 +-
constants/action.go | 42 +
constants/allow_events.go | 27 +
constants/badge.go | 98 +++
constants/compression.go | 52 ++
constants/doc.go | 8 +
constants/event.go | 38 +
constants/limit.go | 1 +
constants/matcher.go | 12 +
constants/operator.go | 12 +
constants/pipeline.go | 15 +
constants/pull.go | 22 +
constants/queue.go | 9 +
constants/table.go | 1 +
constants/worker_status.go | 21 +
constants/workspace.go | 12 +
database/build/build.go | 2 +-
database/build/clean.go | 2 +-
database/build/count.go | 2 +-
database/build/count_deployment.go | 2 +-
database/build/count_org.go | 2 +-
database/build/count_org_test.go | 2 +-
database/build/count_repo.go | 2 +-
database/build/count_status.go | 2 +-
database/build/create.go | 2 +-
database/build/delete.go | 2 +-
database/build/get.go | 2 +-
database/build/get_repo.go | 2 +-
database/build/get_repo_test.go | 2 +-
database/build/get_test.go | 2 +-
database/build/last_repo.go | 2 +-
database/build/last_repo_test.go | 2 +-
database/build/list.go | 2 +-
database/build/list_dashboard.go | 2 +-
database/build/list_org.go | 2 +-
database/build/list_org_test.go | 2 +-
database/build/list_pending_running.go | 2 +-
database/build/list_pending_running_repo.go | 2 +-
database/build/list_pending_running_test.go | 2 +-
database/build/list_repo.go | 2 +-
database/build/list_repo_test.go | 2 +-
database/build/list_test.go | 2 +-
database/build/table.go | 2 +-
database/build/update.go | 2 +-
database/dashboard/table.go | 2 +-
database/database.go | 2 +-
database/deployment/count.go | 2 +-
database/deployment/count_repo.go | 2 +-
database/deployment/create.go | 2 +-
database/deployment/delete.go | 2 +-
database/deployment/deployment.go | 2 +-
database/deployment/get.go | 2 +-
database/deployment/get_repo.go | 2 +-
database/deployment/list.go | 2 +-
database/deployment/list_repo.go | 2 +-
database/deployment/table.go | 2 +-
database/deployment/update.go | 2 +-
database/executable/clean.go | 2 +-
database/executable/clean_test.go | 2 +-
database/executable/create.go | 2 +-
database/executable/executable.go | 2 +-
database/executable/executable_test.go | 2 +-
database/executable/pop.go | 2 +-
database/executable/table.go | 2 +-
database/flags.go | 2 +-
database/hook/last_repo.go | 2 +-
database/integration_test.go | 26 +-
database/jwk/table.go | 2 +-
database/log/count.go | 2 +-
database/log/count_build.go | 2 +-
database/log/create.go | 2 +-
database/log/delete.go | 2 +-
database/log/get.go | 2 +-
database/log/get_service.go | 5 +-
database/log/get_step.go | 5 +-
database/log/interface.go | 4 +-
database/log/list.go | 2 +-
database/log/list_build.go | 2 +-
database/log/log.go | 2 +-
database/log/table.go | 2 +-
database/log/update.go | 2 +-
database/pipeline/count.go | 2 +-
database/pipeline/count_repo.go | 2 +-
database/pipeline/create.go | 2 +-
database/pipeline/delete.go | 2 +-
database/pipeline/get.go | 2 +-
database/pipeline/get_repo.go | 2 +-
database/pipeline/list.go | 2 +-
database/pipeline/list_repo.go | 2 +-
database/pipeline/pipeline.go | 2 +-
database/pipeline/table.go | 2 +-
database/pipeline/update.go | 2 +-
database/repo/count.go | 2 +-
database/repo/count_org.go | 2 +-
database/repo/count_user.go | 2 +-
database/repo/create.go | 2 +-
database/repo/delete.go | 2 +-
database/repo/get.go | 2 +-
database/repo/get_org.go | 2 +-
database/repo/get_org_test.go | 2 +-
database/repo/get_test.go | 2 +-
database/repo/list.go | 2 +-
database/repo/list_org.go | 2 +-
database/repo/list_org_test.go | 2 +-
database/repo/list_test.go | 2 +-
database/repo/list_user.go | 2 +-
database/repo/list_user_test.go | 2 +-
database/repo/repo.go | 2 +-
database/repo/table.go | 2 +-
database/repo/update.go | 2 +-
database/repo/update_test.go | 2 +-
database/schedule/count.go | 2 +-
database/schedule/count_active.go | 2 +-
database/schedule/count_active_test.go | 2 +-
database/schedule/count_repo.go | 2 +-
database/schedule/count_repo_test.go | 2 +-
database/schedule/count_test.go | 2 +-
database/schedule/create.go | 2 +-
database/schedule/create_test.go | 2 +-
database/schedule/delete.go | 2 +-
database/schedule/delete_test.go | 2 +-
database/schedule/get.go | 2 +-
database/schedule/get_repo.go | 2 +-
database/schedule/get_repo_test.go | 2 +-
database/schedule/get_test.go | 2 +-
database/schedule/list.go | 2 +-
database/schedule/list_active.go | 2 +-
database/schedule/list_active_test.go | 2 +-
database/schedule/list_repo.go | 2 +-
database/schedule/list_repo_test.go | 2 +-
database/schedule/list_test.go | 2 +-
database/schedule/schedule.go | 2 +-
database/schedule/table.go | 2 +-
database/schedule/update.go | 2 +-
database/schedule/update_test.go | 2 +-
database/secret/count.go | 2 +-
database/secret/count_org.go | 2 +-
database/secret/count_org_test.go | 2 +-
database/secret/count_repo.go | 2 +-
database/secret/count_repo_test.go | 2 +-
database/secret/count_team.go | 2 +-
database/secret/count_team_test.go | 2 +-
database/secret/count_test.go | 1 +
database/secret/create.go | 2 +-
database/secret/delete.go | 2 +-
database/secret/get.go | 2 +-
database/secret/get_org.go | 2 +-
database/secret/get_org_test.go | 2 +-
database/secret/get_repo.go | 2 +-
database/secret/get_repo_test.go | 2 +-
database/secret/get_team.go | 2 +-
database/secret/get_team_test.go | 2 +-
database/secret/list.go | 2 +-
database/secret/list_org.go | 2 +-
database/secret/list_org_test.go | 2 +-
database/secret/list_repo.go | 2 +-
database/secret/list_repo_test.go | 2 +-
database/secret/list_team.go | 2 +-
database/secret/list_team_test.go | 2 +-
database/secret/secret.go | 2 +-
database/secret/table.go | 2 +-
database/secret/update.go | 2 +-
database/service/clean.go | 10 +-
database/service/count.go | 2 +-
database/service/count_build.go | 2 +-
database/service/create.go | 18 +-
database/service/delete.go | 13 +-
database/service/get.go | 15 +-
database/service/get_build.go | 14 +-
database/service/get_build_test.go | 4 +-
database/service/get_test.go | 4 +-
database/service/interface.go | 15 +-
database/service/list.go | 17 +-
database/service/list_build.go | 16 +-
database/service/list_build_test.go | 8 +-
database/service/list_image.go | 2 +-
database/service/list_status.go | 2 +-
database/service/list_test.go | 8 +-
database/service/service.go | 2 +-
database/service/table.go | 2 +-
database/service/update.go | 18 +-
database/settings/table.go | 2 +-
database/step/clean.go | 10 +-
database/step/count.go | 2 +-
database/step/count_build.go | 2 +-
database/step/create.go | 18 +-
database/step/delete.go | 10 +-
database/step/get.go | 15 +-
database/step/get_build.go | 14 +-
database/step/get_build_test.go | 4 +-
database/step/get_test.go | 4 +-
database/step/interface.go | 15 +-
database/step/list.go | 17 +-
database/step/list_build.go | 16 +-
database/step/list_build_test.go | 8 +-
database/step/list_image.go | 2 +-
database/step/list_status.go | 2 +-
database/step/list_test.go | 8 +-
database/step/step.go | 2 +-
database/step/table.go | 2 +-
database/step/update.go | 18 +-
database/testutils/api_resources.go | 8 +-
database/types/deployment.go | 2 +-
database/types/pipeline_test.go | 2 +-
database/types/repo.go | 2 +-
database/types/repo_test.go | 2 +-
database/types/schedule_test.go | 2 +-
database/types/secret.go | 2 +-
database/types/service.go | 231 ++++++
database/types/service_test.go | 221 ++++++
database/types/step.go | 249 ++++++
database/types/step_test.go | 230 ++++++
database/types/worker.go | 2 +-
database/user/count.go | 2 +-
database/user/create.go | 2 +-
database/user/delete.go | 2 +-
database/user/get.go | 2 +-
database/user/get_name.go | 2 +-
database/user/list.go | 2 +-
database/user/list_lite.go | 2 +-
database/user/table.go | 2 +-
database/user/update.go | 2 +-
database/user/user.go | 2 +-
database/validate.go | 2 +-
database/worker/count.go | 2 +-
database/worker/create.go | 2 +-
database/worker/delete.go | 2 +-
database/worker/get.go | 2 +-
database/worker/get_hostname.go | 2 +-
database/worker/list.go | 2 +-
database/worker/table.go | 2 +-
database/worker/update.go | 2 +-
database/worker/worker.go | 2 +-
internal/token/compose.go | 2 +-
internal/token/compose_test.go | 2 +-
internal/token/parse_test.go | 2 +-
internal/token/refresh.go | 2 +-
internal/token/refresh_test.go | 2 +-
internal/webhook.go | 2 +-
internal/webhook_test.go | 2 +-
mock/server/authentication.go | 2 +-
mock/server/service.go | 10 +-
mock/server/service_test.go | 4 +-
mock/server/step.go | 10 +-
mock/server/step_test.go | 4 +-
queue/flags.go | 2 +-
queue/queue.go | 2 +-
queue/redis/driver.go | 2 +-
queue/redis/driver_test.go | 2 +-
queue/redis/route.go | 2 +-
queue/redis/route_test.go | 2 +-
queue/setup.go | 2 +-
router/middleware/auth/auth.go | 2 +-
router/middleware/auth/auth_test.go | 2 +-
router/middleware/claims/claims.go | 2 +-
router/middleware/claims/claims_test.go | 2 +-
router/middleware/claims/context_test.go | 2 +-
.../middleware/default_repo_settings_test.go | 2 +-
router/middleware/executors/executors.go | 2 +-
router/middleware/logger.go | 2 +-
router/middleware/logger_test.go | 5 +-
router/middleware/pipeline/pipeline_test.go | 2 +-
router/middleware/service/context.go | 8 +-
router/middleware/service/context_test.go | 6 +-
router/middleware/service/service.go | 4 +-
router/middleware/service/service_test.go | 7 +-
router/middleware/step/context.go | 8 +-
router/middleware/step/context_test.go | 6 +-
router/middleware/step/step.go | 4 +-
router/middleware/step/step_test.go | 7 +-
router/middleware/user/user.go | 2 +-
router/middleware/user/user_test.go | 2 +-
scm/flags.go | 2 +-
scm/github/driver.go | 2 +-
scm/github/driver_test.go | 2 +-
scm/github/repo.go | 5 +-
scm/github/repo_test.go | 15 +-
scm/github/webhook.go | 2 +-
scm/github/webhook_test.go | 2 +-
scm/scm.go | 2 +-
scm/service.go | 3 +-
scm/setup.go | 2 +-
secret/native/count.go | 2 +-
secret/native/create.go | 2 +-
secret/native/delete.go | 2 +-
secret/native/driver.go | 2 +-
secret/native/driver_test.go | 2 +-
secret/native/get.go | 2 +-
secret/native/list.go | 2 +-
secret/native/update.go | 2 +-
secret/secret.go | 2 +-
secret/setup.go | 2 +-
secret/vault/count.go | 2 +-
secret/vault/create.go | 2 +-
secret/vault/delete.go | 2 +-
secret/vault/driver.go | 2 +-
secret/vault/driver_test.go | 2 +-
secret/vault/get.go | 2 +-
secret/vault/list.go | 2 +-
secret/vault/update.go | 2 +-
secret/vault/vault.go | 2 +-
util/compression_test.go | 2 +-
384 files changed, 4153 insertions(+), 611 deletions(-)
create mode 100644 api/types/service.go
create mode 100644 api/types/service_test.go
create mode 100644 api/types/step.go
create mode 100644 api/types/step_test.go
create mode 100644 constants/action.go
create mode 100644 constants/allow_events.go
create mode 100644 constants/badge.go
create mode 100644 constants/compression.go
create mode 100644 constants/doc.go
create mode 100644 constants/event.go
create mode 100644 constants/matcher.go
create mode 100644 constants/operator.go
create mode 100644 constants/pipeline.go
create mode 100644 constants/pull.go
create mode 100644 constants/queue.go
create mode 100644 constants/worker_status.go
create mode 100644 constants/workspace.go
create mode 100644 database/types/service.go
create mode 100644 database/types/service_test.go
create mode 100644 database/types/step.go
create mode 100644 database/types/step_test.go
diff --git a/api/admin/clean.go b/api/admin/clean.go
index da3949568..86b1fc7cc 100644
--- a/api/admin/clean.go
+++ b/api/admin/clean.go
@@ -11,10 +11,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/util"
"github.com/go-vela/types"
- "github.com/go-vela/types/constants"
)
// swagger:operation PUT /api/v1/admin/clean admin AdminCleanResources
diff --git a/api/admin/service.go b/api/admin/service.go
index 13d33d199..5e5e5dcba 100644
--- a/api/admin/service.go
+++ b/api/admin/service.go
@@ -10,9 +10,9 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation PUT /api/v1/admin/service admin AdminUpdateService
@@ -59,7 +59,7 @@ func UpdateService(c *gin.Context) {
l.Debug("platform admin: updating service")
// capture body from API request
- input := new(library.Service)
+ input := new(types.Service)
err := c.Bind(input)
if err != nil {
diff --git a/api/admin/step.go b/api/admin/step.go
index b29fc57e0..6e7ad4cdb 100644
--- a/api/admin/step.go
+++ b/api/admin/step.go
@@ -10,9 +10,9 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation PUT /api/v1/admin/step admin AdminUpdateStep
@@ -58,7 +58,7 @@ func UpdateStep(c *gin.Context) {
l.Debug("platform admin: updating step")
// capture body from API request
- input := new(library.Step)
+ input := new(types.Step)
err := c.Bind(input)
if err != nil {
diff --git a/api/admin/worker.go b/api/admin/worker.go
index 59ed71a5e..9ff7f5e60 100644
--- a/api/admin/worker.go
+++ b/api/admin/worker.go
@@ -9,9 +9,9 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
"github.com/go-vela/types/library"
)
diff --git a/api/auth/logout.go b/api/auth/logout.go
index 9acb575cd..77ac9c97f 100644
--- a/api/auth/logout.go
+++ b/api/auth/logout.go
@@ -10,11 +10,11 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation GET /logout authenticate GetLogout
diff --git a/api/auth/post_token.go b/api/auth/post_token.go
index d5fc345c9..d23183f2b 100644
--- a/api/auth/post_token.go
+++ b/api/auth/post_token.go
@@ -9,11 +9,11 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
"github.com/go-vela/types/library"
)
diff --git a/api/badge.go b/api/badge.go
index 37ffeb694..ce0ce0d76 100644
--- a/api/badge.go
+++ b/api/badge.go
@@ -8,10 +8,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation GET /badge/{org}/{repo}/status.svg base GetBadge
diff --git a/api/build/approve.go b/api/build/approve.go
index 61b1b6a4e..bab499ae6 100644
--- a/api/build/approve.go
+++ b/api/build/approve.go
@@ -12,6 +12,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/queue"
"github.com/go-vela/server/queue/models"
@@ -19,7 +20,6 @@ import (
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation POST /api/v1/repos/{org}/{repo}/builds/{build}/approve builds ApproveBuild
diff --git a/api/build/auto_cancel.go b/api/build/auto_cancel.go
index 7f8a77f81..c34d24917 100644
--- a/api/build/auto_cancel.go
+++ b/api/build/auto_cancel.go
@@ -16,9 +16,9 @@ import (
"github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler/types/pipeline"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
- "github.com/go-vela/types/constants"
)
// AutoCancel is a helper function that checks to see if any pending or running
diff --git a/api/build/auto_cancel_test.go b/api/build/auto_cancel_test.go
index d3ad75ae7..bcd52ae6d 100644
--- a/api/build/auto_cancel_test.go
+++ b/api/build/auto_cancel_test.go
@@ -7,7 +7,7 @@ import (
"github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler/types/pipeline"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func Test_isCancelable(t *testing.T) {
diff --git a/api/build/cancel.go b/api/build/cancel.go
index 79d186799..3804f5deb 100644
--- a/api/build/cancel.go
+++ b/api/build/cancel.go
@@ -13,6 +13,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/build"
@@ -20,7 +21,6 @@ import (
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation DELETE /api/v1/repos/{org}/{repo}/builds/{build}/cancel builds CancelBuild
diff --git a/api/build/clean.go b/api/build/clean.go
index 5c70b5164..ead0f164b 100644
--- a/api/build/clean.go
+++ b/api/build/clean.go
@@ -10,15 +10,14 @@ import (
"github.com/sirupsen/logrus"
"github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// cleanBuild is a helper function to kill the build
// without execution. This will kill all resources,
// like steps and services, for the build.
-func CleanBuild(ctx context.Context, database database.Interface, b *types.Build, services []*library.Service, steps []*library.Step, e error) {
+func CleanBuild(ctx context.Context, database database.Interface, b *types.Build, services []*types.Service, steps []*types.Step, e error) {
l := logrus.WithFields(logrus.Fields{
"build": b.GetNumber(),
"build_id": b.GetID(),
diff --git a/api/build/compile_publish.go b/api/build/compile_publish.go
index 05111de4a..cc99e8579 100644
--- a/api/build/compile_publish.go
+++ b/api/build/compile_publish.go
@@ -16,12 +16,12 @@ import (
"github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler"
"github.com/go-vela/server/compiler/types/pipeline"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal"
"github.com/go-vela/server/queue"
"github.com/go-vela/server/queue/models"
"github.com/go-vela/server/scm"
- "github.com/go-vela/types/constants"
)
// CompileAndPublishConfig is a struct that contains information for the CompileAndPublish function.
diff --git a/api/build/graph.go b/api/build/graph.go
index 086c9261d..5db83eaa4 100644
--- a/api/build/graph.go
+++ b/api/build/graph.go
@@ -11,8 +11,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler"
"github.com/go-vela/server/compiler/types/pipeline"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal"
"github.com/go-vela/server/router/middleware/build"
@@ -20,8 +22,6 @@ import (
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// Graph contains nodes, and relationships between nodes, or edges.
@@ -46,10 +46,10 @@ type node struct {
Name string `json:"name"`
// vela metadata
- Status string `json:"status"`
- StartedAt int `json:"started_at"`
- FinishedAt int `json:"finished_at"`
- Steps []*library.Step `json:"steps"`
+ Status string `json:"status"`
+ StartedAt int `json:"started_at"`
+ FinishedAt int `json:"finished_at"`
+ Steps []*types.Step `json:"steps"`
// unexported data used for building edges
Stage *pipeline.Stage `json:"-"`
@@ -67,7 +67,7 @@ type edge struct {
// stg represents a stage's steps and some metadata for producing node/edge information.
type stg struct {
- steps []*library.Step
+ steps []*types.Step
// used for tracking stage status
success int
running int
@@ -241,7 +241,7 @@ func GetBuildGraph(c *gin.Context) {
}
// retrieve the steps for the build from the step table
- steps := []*library.Step{}
+ steps := []*types.Step{}
page := 1
perPage := 100
@@ -279,7 +279,7 @@ func GetBuildGraph(c *gin.Context) {
}
// retrieve the services for the build from the service table
- services := []*library.Service{}
+ services := []*types.Service{}
page = 1
perPage = 100
@@ -359,7 +359,7 @@ func GetBuildGraph(c *gin.Context) {
// initialize a stage tracker
if _, ok := stageMap[name]; !ok {
stageMap[name] = &stg{
- steps: []*library.Step{},
+ steps: []*types.Step{},
}
}
@@ -615,13 +615,13 @@ func nodeFromStage(nodeID, cluster int, stage *pipeline.Stage, s *stg) *node {
}
// nodeFromService returns a new node from a service.
-func nodeFromService(nodeID int, service *library.Service) *node {
+func nodeFromService(nodeID int, service *types.Service) *node {
return &node{
ID: nodeID,
Cluster: ServiceCluster,
Name: service.GetName(),
Stage: nil,
- Steps: []*library.Step{},
+ Steps: []*types.Step{},
Status: service.GetStatus(),
StartedAt: int(service.GetStarted()),
FinishedAt: int(service.GetFinished()),
diff --git a/api/build/list_org.go b/api/build/list_org.go
index 6dca24e1b..fd00559ef 100644
--- a/api/build/list_org.go
+++ b/api/build/list_org.go
@@ -12,12 +12,12 @@ import (
"github.com/go-vela/server/api"
"github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/org"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation GET /api/v1/repos/{org}/builds builds ListBuildsForOrg
diff --git a/api/build/list_repo.go b/api/build/list_repo.go
index 44ffee206..1d7fae833 100644
--- a/api/build/list_repo.go
+++ b/api/build/list_repo.go
@@ -13,10 +13,10 @@ import (
"github.com/go-vela/server/api"
"github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation GET /api/v1/repos/{org}/{repo}/builds builds ListBuildsForRepo
diff --git a/api/build/restart.go b/api/build/restart.go
index 24b30409d..56cffae38 100644
--- a/api/build/restart.go
+++ b/api/build/restart.go
@@ -12,6 +12,7 @@ import (
"github.com/sirupsen/logrus"
"github.com/go-vela/server/compiler"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal"
"github.com/go-vela/server/queue"
@@ -21,7 +22,6 @@ import (
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation POST /api/v1/repos/{org}/{repo}/builds/{build} builds RestartBuild
diff --git a/api/build/token.go b/api/build/token.go
index b2126bb84..e626b9379 100644
--- a/api/build/token.go
+++ b/api/build/token.go
@@ -11,12 +11,12 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
"github.com/go-vela/types/library"
)
diff --git a/api/build/update.go b/api/build/update.go
index eabe94981..83fc3f9b3 100644
--- a/api/build/update.go
+++ b/api/build/update.go
@@ -10,13 +10,12 @@ import (
"github.com/sirupsen/logrus"
"github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// swagger:operation PUT /api/v1/repos/{org}/{repo}/builds/{build} builds UpdateBuild
@@ -191,7 +190,7 @@ func UpdateComponentStatuses(c *gin.Context, b *types.Build, status string) erro
l.Debug("updating component statuses")
// retrieve the steps for the build from the step table
- steps := []*library.Step{}
+ steps := []*types.Step{}
page := 1
perPage := 100
@@ -230,7 +229,7 @@ func UpdateComponentStatuses(c *gin.Context, b *types.Build, status string) erro
}
// retrieve the services for the build from the service table
- services := []*library.Service{}
+ services := []*types.Service{}
page = 1
for page > 0 {
diff --git a/api/metrics.go b/api/metrics.go
index e23fa1d62..77609c497 100644
--- a/api/metrics.go
+++ b/api/metrics.go
@@ -12,9 +12,9 @@ import (
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/queue"
- "github.com/go-vela/types/constants"
)
// MetricsQueryParameters holds query parameter information pertaining to requested metrics.
diff --git a/api/repo/create.go b/api/repo/create.go
index cdd6848a3..3e35be3f0 100644
--- a/api/repo/create.go
+++ b/api/repo/create.go
@@ -14,12 +14,12 @@ import (
"github.com/go-vela/server/api/types"
"github.com/go-vela/server/api/types/actions"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/settings"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation POST /api/v1/repos repos CreateRepo
diff --git a/api/repo/list_org.go b/api/repo/list_org.go
index ba306e942..75f6a2aa1 100644
--- a/api/repo/list_org.go
+++ b/api/repo/list_org.go
@@ -11,12 +11,12 @@ import (
"github.com/sirupsen/logrus"
"github.com/go-vela/server/api"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/org"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation GET /api/v1/repos/{org} repos ListReposForOrg
diff --git a/api/repo/update.go b/api/repo/update.go
index 683df18bc..001a67626 100644
--- a/api/repo/update.go
+++ b/api/repo/update.go
@@ -13,12 +13,12 @@ import (
"github.com/sirupsen/logrus"
"github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation PUT /api/v1/repos/{org}/{repo} repos UpdateRepo
diff --git a/api/secret/create.go b/api/secret/create.go
index 2a2ee8af8..fd89341b9 100644
--- a/api/secret/create.go
+++ b/api/secret/create.go
@@ -13,11 +13,11 @@ import (
"github.com/go-vela/server/api/types"
"github.com/go-vela/server/api/types/actions"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/secret"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation POST /api/v1/secrets/{engine}/{type}/{org}/{name} secrets CreateSecret
diff --git a/api/secret/delete.go b/api/secret/delete.go
index c038c1a08..f50e1e619 100644
--- a/api/secret/delete.go
+++ b/api/secret/delete.go
@@ -10,9 +10,9 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/secret"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation DELETE /api/v1/secrets/{engine}/{type}/{org}/{name}/{secret} secrets DeleteSecret
diff --git a/api/secret/get.go b/api/secret/get.go
index 72a84fc18..71f0f3d60 100644
--- a/api/secret/get.go
+++ b/api/secret/get.go
@@ -10,10 +10,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/secret"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation GET /api/v1/secrets/{engine}/{type}/{org}/{name}/{secret} secrets GetSecret
diff --git a/api/secret/list.go b/api/secret/list.go
index 7f1ac50b5..f7e21e706 100644
--- a/api/secret/list.go
+++ b/api/secret/list.go
@@ -13,11 +13,11 @@ import (
"github.com/go-vela/server/api"
"github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/secret"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// swagger:operation GET /api/v1/secrets/{engine}/{type}/{org}/{name} secrets ListSecrets
diff --git a/api/secret/update.go b/api/secret/update.go
index a5226c3bc..dbd5eb971 100644
--- a/api/secret/update.go
+++ b/api/secret/update.go
@@ -12,10 +12,10 @@ import (
"github.com/sirupsen/logrus"
"github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/secret"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
//
diff --git a/api/service/create.go b/api/service/create.go
index 4e3ee47c7..fd8909f20 100644
--- a/api/service/create.go
+++ b/api/service/create.go
@@ -10,12 +10,12 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// swagger:operation POST /api/v1/repos/{org}/{repo}/builds/{build}/services services CreateService
@@ -85,7 +85,7 @@ func CreateService(c *gin.Context) {
l.Debugf("creating new service for build %s", entry)
// capture body from API request
- input := new(library.Service)
+ input := new(types.Service)
err := c.Bind(input)
if err != nil {
diff --git a/api/service/plan.go b/api/service/plan.go
index 6efa6b2a5..afe7c0c32 100644
--- a/api/service/plan.go
+++ b/api/service/plan.go
@@ -11,22 +11,22 @@ import (
"github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler/types/pipeline"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/constants"
"github.com/go-vela/types/library"
)
// PlanServices is a helper function to plan all services
// in the build for execution. This creates the services
// for the build.
-func PlanServices(ctx context.Context, database database.Interface, p *pipeline.Build, b *types.Build) ([]*library.Service, error) {
+func PlanServices(ctx context.Context, database database.Interface, p *pipeline.Build, b *types.Build) ([]*types.Service, error) {
// variable to store planned services
- services := []*library.Service{}
+ services := []*types.Service{}
// iterate through all pipeline services
for _, service := range p.Services {
// create the service object
- s := new(library.Service)
+ s := new(types.Service)
s.SetBuildID(b.GetID())
s.SetRepoID(b.GetRepo().GetID())
s.SetName(service.Name)
diff --git a/api/service/update.go b/api/service/update.go
index a7e047a60..5815f1abb 100644
--- a/api/service/update.go
+++ b/api/service/update.go
@@ -9,12 +9,12 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/router/middleware/service"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
//
@@ -91,7 +91,7 @@ func UpdateService(c *gin.Context) {
l.Debugf("updating service %s", entry)
// capture body from API request
- input := new(library.Service)
+ input := new(types.Service)
err := c.Bind(input)
if err != nil {
diff --git a/api/step/create.go b/api/step/create.go
index b9a113de4..6bbbe7746 100644
--- a/api/step/create.go
+++ b/api/step/create.go
@@ -10,12 +10,12 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// swagger:operation POST /api/v1/repos/{org}/{repo}/builds/{build}/steps steps CreateStep
@@ -85,7 +85,7 @@ func CreateStep(c *gin.Context) {
l.Debugf("creating new step for build %s", entry)
// capture body from API request
- input := new(library.Step)
+ input := new(types.Step)
err := c.Bind(input)
if err != nil {
diff --git a/api/step/plan.go b/api/step/plan.go
index 5bbc1ac84..9b6356fec 100644
--- a/api/step/plan.go
+++ b/api/step/plan.go
@@ -11,18 +11,18 @@ import (
"github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler/types/pipeline"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/scm"
- "github.com/go-vela/types/constants"
"github.com/go-vela/types/library"
)
// PlanSteps is a helper function to plan all steps
// in the build for execution. This creates the steps
// for the build.
-func PlanSteps(ctx context.Context, database database.Interface, scm scm.Service, p *pipeline.Build, b *types.Build) ([]*library.Step, error) {
+func PlanSteps(ctx context.Context, database database.Interface, scm scm.Service, p *pipeline.Build, b *types.Build) ([]*types.Step, error) {
// variable to store planned steps
- steps := []*library.Step{}
+ steps := []*types.Step{}
// iterate through all pipeline stages
for _, stage := range p.Stages {
@@ -51,9 +51,9 @@ func PlanSteps(ctx context.Context, database database.Interface, scm scm.Service
return steps, nil
}
-func planStep(ctx context.Context, database database.Interface, scm scm.Service, b *types.Build, c *pipeline.Container, stage string) (*library.Step, error) {
+func planStep(ctx context.Context, database database.Interface, scm scm.Service, b *types.Build, c *pipeline.Container, stage string) (*types.Step, error) {
// create the step object
- s := new(library.Step)
+ s := new(types.Step)
s.SetBuildID(b.GetID())
s.SetRepoID(b.GetRepo().GetID())
s.SetNumber(c.Number)
diff --git a/api/step/update.go b/api/step/update.go
index c543de2c8..d456956d6 100644
--- a/api/step/update.go
+++ b/api/step/update.go
@@ -9,14 +9,14 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/router/middleware/step"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
)
// swagger:operation PUT /api/v1/repos/{org}/{repo}/builds/{build}/steps/{step} steps UpdateStep
@@ -92,7 +92,7 @@ func UpdateStep(c *gin.Context) {
l.Debugf("updating step %s", entry)
// capture body from API request
- input := new(library.Step)
+ input := new(types.Step)
err := c.Bind(input)
if err != nil {
diff --git a/api/types/actions/comment.go b/api/types/actions/comment.go
index 552aa3800..716d87a3c 100644
--- a/api/types/actions/comment.go
+++ b/api/types/actions/comment.go
@@ -2,7 +2,7 @@
package actions
-import "github.com/go-vela/types/constants"
+import "github.com/go-vela/server/constants"
// Comment is the API representation of the various actions associated
// with the comment event webhook from the SCM.
diff --git a/api/types/actions/comment_test.go b/api/types/actions/comment_test.go
index 1ffc465b8..2344f1d3b 100644
--- a/api/types/actions/comment_test.go
+++ b/api/types/actions/comment_test.go
@@ -6,7 +6,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestTypes_Comment_Getters(t *testing.T) {
diff --git a/api/types/actions/deploy.go b/api/types/actions/deploy.go
index 5dd7a4242..1664c39d3 100644
--- a/api/types/actions/deploy.go
+++ b/api/types/actions/deploy.go
@@ -3,7 +3,7 @@
//nolint:dupl // similar code to schedule.go
package actions
-import "github.com/go-vela/types/constants"
+import "github.com/go-vela/server/constants"
// Deploy is the API representation of the various actions associated
// with the deploy event webhook from the SCM.
diff --git a/api/types/actions/deploy_test.go b/api/types/actions/deploy_test.go
index 373407c7f..05809764c 100644
--- a/api/types/actions/deploy_test.go
+++ b/api/types/actions/deploy_test.go
@@ -6,7 +6,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestTypes_Deploy_Getters(t *testing.T) {
diff --git a/api/types/actions/pull.go b/api/types/actions/pull.go
index fd35fe7eb..1635709d5 100644
--- a/api/types/actions/pull.go
+++ b/api/types/actions/pull.go
@@ -2,7 +2,7 @@
package actions
-import "github.com/go-vela/types/constants"
+import "github.com/go-vela/server/constants"
// Pull is the API representation of the various actions associated
// with the pull_request event webhook from the SCM.
diff --git a/api/types/actions/pull_test.go b/api/types/actions/pull_test.go
index 0ff17d6ad..4be4b0b60 100644
--- a/api/types/actions/pull_test.go
+++ b/api/types/actions/pull_test.go
@@ -6,7 +6,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestActions_Pull_Getters(t *testing.T) {
diff --git a/api/types/actions/push.go b/api/types/actions/push.go
index 6d5b24a6f..e48eb0f3d 100644
--- a/api/types/actions/push.go
+++ b/api/types/actions/push.go
@@ -2,7 +2,7 @@
package actions
-import "github.com/go-vela/types/constants"
+import "github.com/go-vela/server/constants"
// Push is the API representation of the various actions associated
// with the push event webhook from the SCM.
diff --git a/api/types/actions/push_test.go b/api/types/actions/push_test.go
index 259f7db2b..1d1be093a 100644
--- a/api/types/actions/push_test.go
+++ b/api/types/actions/push_test.go
@@ -6,7 +6,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestTypes_Push_Getters(t *testing.T) {
diff --git a/api/types/actions/schedule.go b/api/types/actions/schedule.go
index bc4588d2f..296f0ba16 100644
--- a/api/types/actions/schedule.go
+++ b/api/types/actions/schedule.go
@@ -3,7 +3,7 @@
//nolint:dupl // similar code to deploy.go
package actions
-import "github.com/go-vela/types/constants"
+import "github.com/go-vela/server/constants"
// Schedule is the API representation of the various actions associated
// with the schedule event.
diff --git a/api/types/actions/schedule_test.go b/api/types/actions/schedule_test.go
index 8a06b0d75..5d3c9fa03 100644
--- a/api/types/actions/schedule_test.go
+++ b/api/types/actions/schedule_test.go
@@ -6,7 +6,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestTypes_Schedule_Getters(t *testing.T) {
diff --git a/api/types/build.go b/api/types/build.go
index f9ba8ea49..f5af28911 100644
--- a/api/types/build.go
+++ b/api/types/build.go
@@ -8,7 +8,7 @@ import (
"time"
"github.com/go-vela/server/compiler/types/raw"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Build is the API types representation of a build for a pipeline.
diff --git a/api/types/events.go b/api/types/events.go
index 8bf27db8c..0bc0b10ee 100644
--- a/api/types/events.go
+++ b/api/types/events.go
@@ -6,7 +6,7 @@ import (
"fmt"
"github.com/go-vela/server/api/types/actions"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Events is the API representation of the various events that generate a
diff --git a/api/types/events_test.go b/api/types/events_test.go
index 68f6f5709..882364f97 100644
--- a/api/types/events_test.go
+++ b/api/types/events_test.go
@@ -9,7 +9,7 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/go-vela/server/api/types/actions"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestTypes_Events_Getters(t *testing.T) {
diff --git a/api/types/repo_test.go b/api/types/repo_test.go
index 2cbe84639..c7e20407d 100644
--- a/api/types/repo_test.go
+++ b/api/types/repo_test.go
@@ -9,7 +9,7 @@ import (
"github.com/google/go-cmp/cmp"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestTypes_Repo_Environment(t *testing.T) {
diff --git a/api/types/secret.go b/api/types/secret.go
index ef82e9e9f..53f3b8163 100644
--- a/api/types/secret.go
+++ b/api/types/secret.go
@@ -6,7 +6,7 @@ import (
"fmt"
"strings"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/pipeline"
)
diff --git a/api/types/secret_test.go b/api/types/secret_test.go
index ffa4aa107..e84f4f6d5 100644
--- a/api/types/secret_test.go
+++ b/api/types/secret_test.go
@@ -11,7 +11,7 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/go-vela/server/api/types/actions"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/pipeline"
)
diff --git a/api/types/service.go b/api/types/service.go
new file mode 100644
index 000000000..075beb44f
--- /dev/null
+++ b/api/types/service.go
@@ -0,0 +1,645 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "strconv"
+ "time"
+
+ "github.com/go-vela/server/compiler/types/pipeline"
+ "github.com/go-vela/server/constants"
+)
+
+// Service is the API representation of a service in a build.
+//
+// swagger:model Service
+type Service struct {
+ ID *int64 `json:"id,omitempty"`
+ BuildID *int64 `json:"build_id,omitempty"`
+ RepoID *int64 `json:"repo_id,omitempty"`
+ Number *int `json:"number,omitempty"`
+ Name *string `json:"name,omitempty"`
+ Image *string `json:"image,omitempty"`
+ Status *string `json:"status,omitempty"`
+ Error *string `json:"error,omitempty"`
+ ExitCode *int `json:"exit_code,omitempty"`
+ Created *int64 `json:"created,omitempty"`
+ Started *int64 `json:"started,omitempty"`
+ Finished *int64 `json:"finished,omitempty"`
+ Host *string `json:"host,omitempty"`
+ Runtime *string `json:"runtime,omitempty"`
+ Distribution *string `json:"distribution,omitempty"`
+}
+
+// Duration calculates and returns the total amount of
+// time the service ran for in a human-readable format.
+func (s *Service) Duration() string {
+ // check if the service doesn't have a started timestamp
+ if s.GetStarted() == 0 {
+ return "..."
+ }
+
+ // capture started unix timestamp from the service
+ started := time.Unix(s.GetStarted(), 0)
+
+ // check if the service doesn't have a finished timestamp
+ if s.GetFinished() == 0 {
+ // return the duration in a human-readable form by
+ // subtracting the service started time from the
+ // current time rounded to the nearest second
+ return time.Since(started).Round(time.Second).String()
+ }
+
+ // capture finished unix timestamp from the service
+ finished := time.Unix(s.GetFinished(), 0)
+
+ // calculate the duration by subtracting the service
+ // started time from the service finished time
+ duration := finished.Sub(started)
+
+ // return the duration in a human-readable form
+ return duration.String()
+}
+
+// Environment returns a list of environment variables
+// provided from the fields of the Service type.
+func (s *Service) Environment() map[string]string {
+ return map[string]string{
+ "VELA_SERVICE_CREATED": ToString(s.GetCreated()),
+ "VELA_SERVICE_DISTRIBUTION": ToString(s.GetDistribution()),
+ "VELA_SERVICE_EXIT_CODE": ToString(s.GetExitCode()),
+ "VELA_SERVICE_HOST": ToString(s.GetHost()),
+ "VELA_SERVICE_IMAGE": ToString(s.GetImage()),
+ "VELA_SERVICE_NAME": ToString(s.GetName()),
+ "VELA_SERVICE_NUMBER": ToString(s.GetNumber()),
+ "VELA_SERVICE_RUNTIME": ToString(s.GetRuntime()),
+ "VELA_SERVICE_STARTED": ToString(s.GetStarted()),
+ "VELA_SERVICE_STATUS": ToString(s.GetStatus()),
+ }
+}
+
+// GetID returns the ID field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetID() int64 {
+ // return zero value if Service type or ID field is nil
+ if s == nil || s.ID == nil {
+ return 0
+ }
+
+ return *s.ID
+}
+
+// GetBuildID returns the BuildID field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetBuildID() int64 {
+ // return zero value if Service type or BuildID field is nil
+ if s == nil || s.BuildID == nil {
+ return 0
+ }
+
+ return *s.BuildID
+}
+
+// GetRepoID returns the RepoID field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetRepoID() int64 {
+ // return zero value if Service type or RepoID field is nil
+ if s == nil || s.RepoID == nil {
+ return 0
+ }
+
+ return *s.RepoID
+}
+
+// GetNumber returns the Number field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetNumber() int {
+ // return zero value if Service type or Number field is nil
+ if s == nil || s.Number == nil {
+ return 0
+ }
+
+ return *s.Number
+}
+
+// GetName returns the Name field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetName() string {
+ // return zero value if Service type or Name field is nil
+ if s == nil || s.Name == nil {
+ return ""
+ }
+
+ return *s.Name
+}
+
+// GetImage returns the Image field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetImage() string {
+ // return zero value if Service type or Image field is nil
+ if s == nil || s.Image == nil {
+ return ""
+ }
+
+ return *s.Image
+}
+
+// GetStatus returns the Status field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetStatus() string {
+ // return zero value if Service type or Status field is nil
+ if s == nil || s.Status == nil {
+ return ""
+ }
+
+ return *s.Status
+}
+
+// GetError returns the Error field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetError() string {
+ // return zero value if Service type or Error field is nil
+ if s == nil || s.Error == nil {
+ return ""
+ }
+
+ return *s.Error
+}
+
+// GetExitCode returns the ExitCode field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetExitCode() int {
+ // return zero value if Service type or ExitCode field is nil
+ if s == nil || s.ExitCode == nil {
+ return 0
+ }
+
+ return *s.ExitCode
+}
+
+// GetCreated returns the Created field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetCreated() int64 {
+ // return zero value if Service type or Created field is nil
+ if s == nil || s.Created == nil {
+ return 0
+ }
+
+ return *s.Created
+}
+
+// GetStarted returns the Started field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetStarted() int64 {
+ // return zero value if Service type or Started field is nil
+ if s == nil || s.Started == nil {
+ return 0
+ }
+
+ return *s.Started
+}
+
+// GetFinished returns the Finished field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetFinished() int64 {
+ // return zero value if Service type or Finished field is nil
+ if s == nil || s.Finished == nil {
+ return 0
+ }
+
+ return *s.Finished
+}
+
+// GetHost returns the Host field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetHost() string {
+ // return zero value if Service type or Host field is nil
+ if s == nil || s.Host == nil {
+ return ""
+ }
+
+ return *s.Host
+}
+
+// GetRuntime returns the Runtime field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetRuntime() string {
+ // return zero value if Service type or Runtime field is nil
+ if s == nil || s.Runtime == nil {
+ return ""
+ }
+
+ return *s.Runtime
+}
+
+// GetDistribution returns the Runtime field.
+//
+// When the provided Service type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Service) GetDistribution() string {
+ // return zero value if Service type or Distribution field is nil
+ if s == nil || s.Distribution == nil {
+ return ""
+ }
+
+ return *s.Distribution
+}
+
+// SetID sets the ID field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetID(v int64) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.ID = &v
+}
+
+// SetBuildID sets the BuildID field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetBuildID(v int64) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.BuildID = &v
+}
+
+// SetRepoID sets the RepoID field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetRepoID(v int64) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.RepoID = &v
+}
+
+// SetNumber sets the Number field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetNumber(v int) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Number = &v
+}
+
+// SetName sets the Name field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetName(v string) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Name = &v
+}
+
+// SetImage sets the Image field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetImage(v string) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Image = &v
+}
+
+// SetStatus sets the Status field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetStatus(v string) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Status = &v
+}
+
+// SetError sets the Error field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetError(v string) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Error = &v
+}
+
+// SetExitCode sets the ExitCode field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetExitCode(v int) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.ExitCode = &v
+}
+
+// SetCreated sets the Created field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetCreated(v int64) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Created = &v
+}
+
+// SetStarted sets the Started field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetStarted(v int64) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Started = &v
+}
+
+// SetFinished sets the Finished field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetFinished(v int64) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Finished = &v
+}
+
+// SetHost sets the Host field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetHost(v string) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Host = &v
+}
+
+// SetRuntime sets the Runtime field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetRuntime(v string) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Runtime = &v
+}
+
+// SetDistribution sets the Runtime field.
+//
+// When the provided Service type is nil, it
+// will set nothing and immediately return.
+func (s *Service) SetDistribution(v string) {
+ // return if Service type is nil
+ if s == nil {
+ return
+ }
+
+ s.Distribution = &v
+}
+
+// String implements the Stringer interface for the Service type.
+func (s *Service) String() string {
+ return fmt.Sprintf(`{
+ BuildID: %d,
+ Created: %d,
+ Distribution: %s,
+ Error: %s,
+ ExitCode: %d,
+ Finished: %d,
+ Host: %s,
+ ID: %d,
+ Image: %s,
+ Name: %s,
+ Number: %d,
+ RepoID: %d,
+ Runtime: %s,
+ Started: %d,
+ Status: %s,
+}`,
+ s.GetBuildID(),
+ s.GetCreated(),
+ s.GetDistribution(),
+ s.GetError(),
+ s.GetExitCode(),
+ s.GetFinished(),
+ s.GetHost(),
+ s.GetID(),
+ s.GetImage(),
+ s.GetName(),
+ s.GetNumber(),
+ s.GetRepoID(),
+ s.GetRuntime(),
+ s.GetStarted(),
+ s.GetStatus(),
+ )
+}
+
+// ServiceFromBuildContainer creates a new Service based on a Build and pipeline Container.
+func ServiceFromBuildContainer(build *Build, ctn *pipeline.Container) *Service {
+ // create new service type we want to return
+ s := new(Service)
+
+ // default status to Pending
+ s.SetStatus(constants.StatusPending)
+
+ // copy fields from build
+ if build != nil {
+ // set values from the build
+ s.SetHost(build.GetHost())
+ s.SetRuntime(build.GetRuntime())
+ s.SetDistribution(build.GetDistribution())
+ }
+
+ // copy fields from container
+ if ctn != nil && ctn.Name != "" {
+ // set values from the container
+ s.SetName(ctn.Name)
+ s.SetNumber(ctn.Number)
+ s.SetImage(ctn.Image)
+ }
+
+ return s
+}
+
+// ServiceFromContainerEnvironment converts the pipeline Container
+// to an API Service using the container's Environment.
+func ServiceFromContainerEnvironment(ctn *pipeline.Container) *Service {
+ // check if container or container environment are nil
+ if ctn == nil || ctn.Environment == nil {
+ return nil
+ }
+
+ // create new service type we want to return
+ s := new(Service)
+
+ // check if the VELA_SERVICE_DISTRIBUTION environment variable exists
+ value, ok := ctn.Environment["VELA_SERVICE_DISTRIBUTION"]
+ if ok {
+ // set the Distribution field to the value from environment variable
+ s.SetDistribution(value)
+ }
+
+ // check if the VELA_SERVICE_HOST environment variable exists
+ value, ok = ctn.Environment["VELA_SERVICE_HOST"]
+ if ok {
+ // set the Host field to the value from environment variable
+ s.SetHost(value)
+ }
+
+ // check if the VELA_SERVICE_IMAGE environment variable exists
+ value, ok = ctn.Environment["VELA_SERVICE_IMAGE"]
+ if ok {
+ // set the Image field to the value from environment variable
+ s.SetImage(value)
+ }
+
+ // check if the VELA_SERVICE_NAME environment variable exists
+ value, ok = ctn.Environment["VELA_SERVICE_NAME"]
+ if ok {
+ // set the Name field to the value from environment variable
+ s.SetName(value)
+ }
+
+ // check if the VELA_SERVICE_RUNTIME environment variable exists
+ value, ok = ctn.Environment["VELA_SERVICE_RUNTIME"]
+ if ok {
+ // set the Runtime field to the value from environment variable
+ s.SetRuntime(value)
+ }
+
+ // check if the VELA_SERVICE_STATUS environment variable exists
+ value, ok = ctn.Environment["VELA_SERVICE_STATUS"]
+ if ok {
+ // set the Status field to the value from environment variable
+ s.SetStatus(value)
+ }
+
+ // check if the VELA_SERVICE_CREATED environment variable exists
+ value, ok = ctn.Environment["VELA_SERVICE_CREATED"]
+ if ok {
+ // parse the environment variable value into an int64
+ i, err := strconv.ParseInt(value, 10, 64)
+ if err == nil {
+ // set the Created field to the parsed int64
+ s.SetCreated(i)
+ }
+ }
+
+ // check if the VELA_SERVICE_EXIT_CODE environment variable exists
+ value, ok = ctn.Environment["VELA_SERVICE_EXIT_CODE"]
+ if ok {
+ // parse the environment variable value into an int
+ i, err := strconv.ParseInt(value, 10, 0)
+ if err == nil {
+ // set the ExitCode field to the parsed int
+ s.SetExitCode(int(i))
+ }
+ }
+
+ // check if the VELA_SERVICE_FINISHED environment variable exists
+ value, ok = ctn.Environment["VELA_SERVICE_FINISHED"]
+ if ok {
+ // parse the environment variable value into an int64
+ i, err := strconv.ParseInt(value, 10, 64)
+ if err == nil {
+ // set the Finished field to the parsed int64
+ s.SetFinished(i)
+ }
+ }
+
+ // check if the VELA_SERVICE_NUMBER environment variable exists
+ value, ok = ctn.Environment["VELA_SERVICE_NUMBER"]
+ if ok {
+ // parse the environment variable value into an int
+ i, err := strconv.ParseInt(value, 10, 0)
+ if err == nil {
+ // set the Number field to the parsed int
+ s.SetNumber(int(i))
+ }
+ }
+
+ // check if the VELA_SERVICE_STARTED environment variable exists
+ value, ok = ctn.Environment["VELA_SERVICE_STARTED"]
+ if ok {
+ // parse the environment variable value into an int64
+ i, err := strconv.ParseInt(value, 10, 64)
+ if err == nil {
+ // set the Started field to the parsed int64
+ s.SetStarted(i)
+ }
+ }
+
+ return s
+}
diff --git a/api/types/service_test.go b/api/types/service_test.go
new file mode 100644
index 000000000..41e93bf21
--- /dev/null
+++ b/api/types/service_test.go
@@ -0,0 +1,449 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "reflect"
+ "testing"
+ "time"
+
+ "github.com/go-vela/server/compiler/types/pipeline"
+)
+
+func TestTypes_Service_Duration(t *testing.T) {
+ // setup types
+ unfinished := testService()
+ unfinished.SetFinished(0)
+
+ // setup tests
+ tests := []struct {
+ service *Service
+ want string
+ }{
+ {
+ service: testService(),
+ want: "1s",
+ },
+ {
+ service: unfinished,
+ want: time.Since(time.Unix(unfinished.GetStarted(), 0)).Round(time.Second).String(),
+ },
+ {
+ service: new(Service),
+ want: "...",
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := test.service.Duration()
+
+ if got != test.want {
+ t.Errorf("Duration is %v, want %v", got, test.want)
+ }
+ }
+}
+
+func TestTypes_Service_Environment(t *testing.T) {
+ // setup types
+ want := map[string]string{
+ "VELA_SERVICE_CREATED": "1563474076",
+ "VELA_SERVICE_DISTRIBUTION": "linux",
+ "VELA_SERVICE_EXIT_CODE": "0",
+ "VELA_SERVICE_HOST": "example.company.com",
+ "VELA_SERVICE_IMAGE": "postgres:12-alpine",
+ "VELA_SERVICE_NAME": "postgres",
+ "VELA_SERVICE_NUMBER": "1",
+ "VELA_SERVICE_RUNTIME": "docker",
+ "VELA_SERVICE_STARTED": "1563474078",
+ "VELA_SERVICE_STATUS": "running",
+ }
+
+ // run test
+ got := testService().Environment()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("Environment is %v, want %v", got, want)
+ }
+}
+
+func TestTypes_Service_Getters(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ service *Service
+ want *Service
+ }{
+ {
+ service: testService(),
+ want: testService(),
+ },
+ {
+ service: new(Service),
+ want: new(Service),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ if test.service.GetID() != test.want.GetID() {
+ t.Errorf("GetID is %v, want %v", test.service.GetID(), test.want.GetID())
+ }
+
+ if test.service.GetBuildID() != test.want.GetBuildID() {
+ t.Errorf("GetBuildID is %v, want %v", test.service.GetBuildID(), test.want.GetBuildID())
+ }
+
+ if test.service.GetRepoID() != test.want.GetRepoID() {
+ t.Errorf("GetRepoID is %v, want %v", test.service.GetRepoID(), test.want.GetRepoID())
+ }
+
+ if test.service.GetNumber() != test.want.GetNumber() {
+ t.Errorf("GetNumber is %v, want %v", test.service.GetNumber(), test.want.GetNumber())
+ }
+
+ if test.service.GetName() != test.want.GetName() {
+ t.Errorf("GetName is %v, want %v", test.service.GetName(), test.want.GetName())
+ }
+
+ if test.service.GetImage() != test.want.GetImage() {
+ t.Errorf("GetImage is %v, want %v", test.service.GetImage(), test.want.GetImage())
+ }
+
+ if test.service.GetStatus() != test.want.GetStatus() {
+ t.Errorf("GetStatus is %v, want %v", test.service.GetStatus(), test.want.GetStatus())
+ }
+
+ if test.service.GetError() != test.want.GetError() {
+ t.Errorf("GetError is %v, want %v", test.service.GetError(), test.want.GetError())
+ }
+
+ if test.service.GetExitCode() != test.want.GetExitCode() {
+ t.Errorf("GetExitCode is %v, want %v", test.service.GetExitCode(), test.want.GetExitCode())
+ }
+
+ if test.service.GetCreated() != test.want.GetCreated() {
+ t.Errorf("GetCreated is %v, want %v", test.service.GetCreated(), test.want.GetCreated())
+ }
+
+ if test.service.GetStarted() != test.want.GetStarted() {
+ t.Errorf("GetStarted is %v, want %v", test.service.GetStarted(), test.want.GetStarted())
+ }
+
+ if test.service.GetFinished() != test.want.GetFinished() {
+ t.Errorf("GetFinished is %v, want %v", test.service.GetFinished(), test.want.GetFinished())
+ }
+
+ if test.service.GetHost() != test.want.GetHost() {
+ t.Errorf("GetHost is %v, want %v", test.service.GetHost(), test.want.GetHost())
+ }
+
+ if test.service.GetRuntime() != test.want.GetRuntime() {
+ t.Errorf("GetRuntime is %v, want %v", test.service.GetRuntime(), test.want.GetRuntime())
+ }
+
+ if test.service.GetDistribution() != test.want.GetDistribution() {
+ t.Errorf("GetDistribution is %v, want %v", test.service.GetDistribution(), test.want.GetDistribution())
+ }
+ }
+}
+
+func TestTypes_Service_Setters(t *testing.T) {
+ // setup types
+ var s *Service
+
+ // setup tests
+ tests := []struct {
+ service *Service
+ want *Service
+ }{
+ {
+ service: testService(),
+ want: testService(),
+ },
+ {
+ service: s,
+ want: new(Service),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ test.want.SetID(test.service.GetID())
+ test.want.SetBuildID(test.service.GetBuildID())
+ test.want.SetRepoID(test.service.GetRepoID())
+ test.want.SetNumber(test.service.GetNumber())
+ test.want.SetName(test.service.GetName())
+ test.want.SetImage(test.service.GetImage())
+ test.want.SetStatus(test.service.GetStatus())
+ test.want.SetError(test.service.GetError())
+ test.want.SetExitCode(test.service.GetExitCode())
+ test.want.SetCreated(test.service.GetCreated())
+ test.want.SetStarted(test.service.GetStarted())
+ test.want.SetFinished(test.service.GetFinished())
+ test.want.SetHost(test.service.GetHost())
+ test.want.SetRuntime(test.service.GetRuntime())
+ test.want.SetDistribution(test.service.GetDistribution())
+
+ if test.want.GetID() != test.service.GetID() {
+ t.Errorf("SetID is %v, want %v", test.service.GetID(), test.service.GetID())
+ }
+
+ if test.want.GetBuildID() != test.service.GetBuildID() {
+ t.Errorf("SetBuildID is %v, want %v", test.service.GetBuildID(), test.service.GetBuildID())
+ }
+
+ if test.want.GetRepoID() != test.service.GetRepoID() {
+ t.Errorf("SetRepoID is %v, want %v", test.service.GetRepoID(), test.service.GetRepoID())
+ }
+
+ if test.want.GetNumber() != test.service.GetNumber() {
+ t.Errorf("SetNumber is %v, want %v", test.service.GetNumber(), test.service.GetNumber())
+ }
+
+ if test.want.GetName() != test.service.GetName() {
+ t.Errorf("SetName is %v, want %v", test.service.GetName(), test.service.GetName())
+ }
+
+ if test.want.GetImage() != test.service.GetImage() {
+ t.Errorf("SetImage is %v, want %v", test.service.GetImage(), test.service.GetImage())
+ }
+
+ if test.want.GetStatus() != test.service.GetStatus() {
+ t.Errorf("SetStatus is %v, want %v", test.service.GetStatus(), test.service.GetStatus())
+ }
+
+ if test.want.GetError() != test.service.GetError() {
+ t.Errorf("SetError is %v, want %v", test.service.GetError(), test.service.GetError())
+ }
+
+ if test.want.GetExitCode() != test.service.GetExitCode() {
+ t.Errorf("SetExitCode is %v, want %v", test.service.GetExitCode(), test.service.GetExitCode())
+ }
+
+ if test.want.GetCreated() != test.service.GetCreated() {
+ t.Errorf("SetCreated is %v, want %v", test.service.GetCreated(), test.service.GetCreated())
+ }
+
+ if test.want.GetStarted() != test.service.GetStarted() {
+ t.Errorf("SetStarted is %v, want %v", test.service.GetStarted(), test.service.GetStarted())
+ }
+
+ if test.want.GetFinished() != test.service.GetFinished() {
+ t.Errorf("SetFinished is %v, want %v", test.service.GetFinished(), test.service.GetFinished())
+ }
+
+ if test.want.GetHost() != test.service.GetHost() {
+ t.Errorf("SetHost is %v, want %v", test.service.GetHost(), test.service.GetHost())
+ }
+
+ if test.want.GetRuntime() != test.service.GetRuntime() {
+ t.Errorf("SetRuntime is %v, want %v", test.service.GetRuntime(), test.service.GetRuntime())
+ }
+
+ if test.want.GetDistribution() != test.service.GetDistribution() {
+ t.Errorf("SetDistribution is %v, want %v", test.service.GetDistribution(), test.service.GetDistribution())
+ }
+ }
+}
+
+func TestTypes_Service_String(t *testing.T) {
+ // setup types
+ s := testService()
+
+ want := fmt.Sprintf(`{
+ BuildID: %d,
+ Created: %d,
+ Distribution: %s,
+ Error: %s,
+ ExitCode: %d,
+ Finished: %d,
+ Host: %s,
+ ID: %d,
+ Image: %s,
+ Name: %s,
+ Number: %d,
+ RepoID: %d,
+ Runtime: %s,
+ Started: %d,
+ Status: %s,
+}`,
+ s.GetBuildID(),
+ s.GetCreated(),
+ s.GetDistribution(),
+ s.GetError(),
+ s.GetExitCode(),
+ s.GetFinished(),
+ s.GetHost(),
+ s.GetID(),
+ s.GetImage(),
+ s.GetName(),
+ s.GetNumber(),
+ s.GetRepoID(),
+ s.GetRuntime(),
+ s.GetStarted(),
+ s.GetStatus(),
+ )
+
+ // run test
+ got := s.String()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}
+
+func TestTypes_ServiceFromBuildContainer(t *testing.T) {
+ // setup types
+ s := testService()
+ s.SetStatus("pending")
+
+ // modify fields that aren't set
+ s.ID = nil
+ s.BuildID = nil
+ s.RepoID = nil
+ s.ExitCode = nil
+ s.Created = nil
+ s.Started = nil
+ s.Finished = nil
+
+ tests := []struct {
+ name string
+ container *pipeline.Container
+ build *Build
+ want *Service
+ }{
+ {
+ name: "nil container with nil build",
+ container: nil,
+ build: nil,
+ want: &Service{Status: s.Status},
+ },
+ {
+ name: "empty container with nil build",
+ container: new(pipeline.Container),
+ build: nil,
+ want: &Service{Status: s.Status},
+ },
+ {
+ name: "nil container with build",
+ container: nil,
+ build: testBuild(),
+ want: &Service{
+ Status: s.Status,
+ Host: s.Host,
+ Runtime: s.Runtime,
+ Distribution: s.Distribution,
+ },
+ },
+ {
+ name: "empty container with build",
+ container: new(pipeline.Container),
+ build: testBuild(),
+ want: &Service{
+ Status: s.Status,
+ Host: s.Host,
+ Runtime: s.Runtime,
+ Distribution: s.Distribution,
+ },
+ },
+ {
+ name: "container with build",
+ container: &pipeline.Container{
+ Name: s.GetName(),
+ Number: s.GetNumber(),
+ Image: s.GetImage(),
+ },
+ build: testBuild(),
+ want: s,
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := ServiceFromBuildContainer(test.build, test.container)
+
+ if !reflect.DeepEqual(got, test.want) {
+ t.Errorf("ServiceFromBuildContainer for %s is %v, want %v", test.name, got, test.want)
+ }
+ }
+}
+
+func TestTypes_ServiceFromContainerEnvironment(t *testing.T) {
+ // setup types
+ s := testService()
+
+ // modify fields that aren't set via environment variables
+ s.ID = nil
+ s.BuildID = nil
+ s.RepoID = nil
+
+ // setup tests
+ tests := []struct {
+ name string
+ container *pipeline.Container
+ want *Service
+ }{
+ {
+ name: "nil container",
+ container: nil,
+ want: nil,
+ },
+ {
+ name: "empty container",
+ container: new(pipeline.Container),
+ want: nil,
+ },
+ {
+ name: "container",
+ container: &pipeline.Container{
+ Environment: map[string]string{
+ "VELA_SERVICE_CREATED": "1563474076",
+ "VELA_SERVICE_DISTRIBUTION": "linux",
+ "VELA_SERVICE_EXIT_CODE": "0",
+ "VELA_SERVICE_FINISHED": "1563474079",
+ "VELA_SERVICE_HOST": "example.company.com",
+ "VELA_SERVICE_IMAGE": "postgres:12-alpine",
+ "VELA_SERVICE_NAME": "postgres",
+ "VELA_SERVICE_NUMBER": "1",
+ "VELA_SERVICE_RUNTIME": "docker",
+ "VELA_SERVICE_STARTED": "1563474078",
+ "VELA_SERVICE_STATUS": "running",
+ },
+ },
+ want: s,
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := ServiceFromContainerEnvironment(test.container)
+
+ if !reflect.DeepEqual(got, test.want) {
+ t.Errorf("ServiceFromContainerEnvironment for %s is %v, want %v", test.name, got, test.want)
+ }
+ }
+}
+
+// testService is a test helper function to create a Service
+// type with all fields set to a fake value.
+func testService() *Service {
+ s := new(Service)
+
+ s.SetID(1)
+ s.SetBuildID(1)
+ s.SetRepoID(1)
+ s.SetNumber(1)
+ s.SetName("postgres")
+ s.SetImage("postgres:12-alpine")
+ s.SetStatus("running")
+ s.SetExitCode(0)
+ s.SetCreated(1563474076)
+ s.SetStarted(1563474078)
+ s.SetFinished(1563474079)
+ s.SetHost("example.company.com")
+ s.SetRuntime("docker")
+ s.SetDistribution("linux")
+
+ return s
+}
diff --git a/api/types/step.go b/api/types/step.go
new file mode 100644
index 000000000..52d96f45c
--- /dev/null
+++ b/api/types/step.go
@@ -0,0 +1,727 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "strconv"
+ "time"
+
+ "github.com/go-vela/server/compiler/types/pipeline"
+ "github.com/go-vela/server/constants"
+)
+
+// Step is the API representation of a step in a build.
+//
+// swagger:model Step
+type Step struct {
+ ID *int64 `json:"id,omitempty"`
+ BuildID *int64 `json:"build_id,omitempty"`
+ RepoID *int64 `json:"repo_id,omitempty"`
+ Number *int `json:"number,omitempty"`
+ Name *string `json:"name,omitempty"`
+ Image *string `json:"image,omitempty"`
+ Stage *string `json:"stage,omitempty"`
+ Status *string `json:"status,omitempty"`
+ Error *string `json:"error,omitempty"`
+ ExitCode *int `json:"exit_code,omitempty"`
+ Created *int64 `json:"created,omitempty"`
+ Started *int64 `json:"started,omitempty"`
+ Finished *int64 `json:"finished,omitempty"`
+ Host *string `json:"host,omitempty"`
+ Runtime *string `json:"runtime,omitempty"`
+ Distribution *string `json:"distribution,omitempty"`
+ ReportAs *string `json:"report_as,omitempty"`
+}
+
+// Duration calculates and returns the total amount of
+// time the step ran for in a human-readable format.
+func (s *Step) Duration() string {
+ // check if the step doesn't have a started timestamp
+ if s.GetStarted() == 0 {
+ return "..."
+ }
+
+ // capture started unix timestamp from the step
+ started := time.Unix(s.GetStarted(), 0)
+
+ // check if the step doesn't have a finished timestamp
+ if s.GetFinished() == 0 {
+ // return the duration in a human-readable form by
+ // subtracting the step started time from the
+ // current time rounded to the nearest second
+ return time.Since(started).Round(time.Second).String()
+ }
+
+ // capture finished unix timestamp from the step
+ finished := time.Unix(s.GetFinished(), 0)
+
+ // calculate the duration by subtracting the step
+ // started time from the step finished time
+ duration := finished.Sub(started)
+
+ // return the duration in a human-readable form
+ return duration.String()
+}
+
+// Environment returns a list of environment variables
+// provided from the fields of the Step type.
+func (s *Step) Environment() map[string]string {
+ return map[string]string{
+ "VELA_STEP_CREATED": ToString(s.GetCreated()),
+ "VELA_STEP_DISTRIBUTION": ToString(s.GetDistribution()),
+ "VELA_STEP_EXIT_CODE": ToString(s.GetExitCode()),
+ "VELA_STEP_HOST": ToString(s.GetHost()),
+ "VELA_STEP_IMAGE": ToString(s.GetImage()),
+ "VELA_STEP_NAME": ToString(s.GetName()),
+ "VELA_STEP_NUMBER": ToString(s.GetNumber()),
+ "VELA_STEP_RUNTIME": ToString(s.GetRuntime()),
+ "VELA_STEP_STAGE": ToString(s.GetStage()),
+ "VELA_STEP_STARTED": ToString(s.GetStarted()),
+ "VELA_STEP_STATUS": ToString(s.GetStatus()),
+ "VELA_STEP_REPORT_AS": ToString(s.GetReportAs()),
+ }
+}
+
+// GetID returns the ID field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetID() int64 {
+ // return zero value if Step type or ID field is nil
+ if s == nil || s.ID == nil {
+ return 0
+ }
+
+ return *s.ID
+}
+
+// GetBuildID returns the BuildID field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetBuildID() int64 {
+ // return zero value if Step type or BuildID field is nil
+ if s == nil || s.BuildID == nil {
+ return 0
+ }
+
+ return *s.BuildID
+}
+
+// GetRepoID returns the RepoID field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetRepoID() int64 {
+ // return zero value if Step type or RepoID field is nil
+ if s == nil || s.RepoID == nil {
+ return 0
+ }
+
+ return *s.RepoID
+}
+
+// GetNumber returns the Number field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetNumber() int {
+ // return zero value if Step type or Number field is nil
+ if s == nil || s.Number == nil {
+ return 0
+ }
+
+ return *s.Number
+}
+
+// GetName returns the Name field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetName() string {
+ // return zero value if Step type or Name field is nil
+ if s == nil || s.Name == nil {
+ return ""
+ }
+
+ return *s.Name
+}
+
+// GetImage returns the Image field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetImage() string {
+ // return zero value if Step type of Image field is nil
+ if s == nil || s.Image == nil {
+ return ""
+ }
+
+ return *s.Image
+}
+
+// GetStage returns the Stage field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetStage() string {
+ // return zero value if Step type or Stage field is nil
+ if s == nil || s.Stage == nil {
+ return ""
+ }
+
+ return *s.Stage
+}
+
+// GetStatus returns the Status field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetStatus() string {
+ // return zero value if Step type or Status field is nil
+ if s == nil || s.Status == nil {
+ return ""
+ }
+
+ return *s.Status
+}
+
+// GetError returns the Error field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetError() string {
+ // return zero value if Step type or Error field is nil
+ if s == nil || s.Error == nil {
+ return ""
+ }
+
+ return *s.Error
+}
+
+// GetExitCode returns the ExitCode field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetExitCode() int {
+ // return zero value if Step type or ExitCode field is nil
+ if s == nil || s.ExitCode == nil {
+ return 0
+ }
+
+ return *s.ExitCode
+}
+
+// GetCreated returns the Created field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetCreated() int64 {
+ // return zero value if Step type or Created field is nil
+ if s == nil || s.Created == nil {
+ return 0
+ }
+
+ return *s.Created
+}
+
+// GetStarted returns the Started field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetStarted() int64 {
+ // return zero value if Step type or Started field is nil
+ if s == nil || s.Started == nil {
+ return 0
+ }
+
+ return *s.Started
+}
+
+// GetFinished returns the Finished field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetFinished() int64 {
+ // return zero value if Step type or Finished field is nil
+ if s == nil || s.Finished == nil {
+ return 0
+ }
+
+ return *s.Finished
+}
+
+// GetHost returns the Host field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetHost() string {
+ // return zero value if Step type or Host field is nil
+ if s == nil || s.Host == nil {
+ return ""
+ }
+
+ return *s.Host
+}
+
+// GetRuntime returns the Runtime field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetRuntime() string {
+ // return zero value if Step type or Runtime field is nil
+ if s == nil || s.Runtime == nil {
+ return ""
+ }
+
+ return *s.Runtime
+}
+
+// GetDistribution returns the Runtime field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetDistribution() string {
+ // return zero value if Step type or Distribution field is nil
+ if s == nil || s.Distribution == nil {
+ return ""
+ }
+
+ return *s.Distribution
+}
+
+// GetReportAs returns the ReportAs field.
+//
+// When the provided Step type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (s *Step) GetReportAs() string {
+ // return zero value if Step type or ReportAs field is nil
+ if s == nil || s.ReportAs == nil {
+ return ""
+ }
+
+ return *s.ReportAs
+}
+
+// SetID sets the ID field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetID(v int64) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.ID = &v
+}
+
+// SetBuildID sets the BuildID field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetBuildID(v int64) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.BuildID = &v
+}
+
+// SetRepoID sets the RepoID field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetRepoID(v int64) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.RepoID = &v
+}
+
+// SetNumber sets the Number field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetNumber(v int) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Number = &v
+}
+
+// SetName sets the Name field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetName(v string) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Name = &v
+}
+
+// SetImage sets the Image field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetImage(v string) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Image = &v
+}
+
+// SetStage sets the Stage field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetStage(v string) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Stage = &v
+}
+
+// SetStatus sets the Status field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetStatus(v string) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Status = &v
+}
+
+// SetError sets the Error field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetError(v string) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Error = &v
+}
+
+// SetExitCode sets the ExitCode field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetExitCode(v int) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.ExitCode = &v
+}
+
+// SetCreated sets the Created field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetCreated(v int64) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Created = &v
+}
+
+// SetStarted sets the Started field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetStarted(v int64) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Started = &v
+}
+
+// SetFinished sets the Finished field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetFinished(v int64) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Finished = &v
+}
+
+// SetHost sets the Host field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetHost(v string) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Host = &v
+}
+
+// SetRuntime sets the Runtime field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetRuntime(v string) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Runtime = &v
+}
+
+// SetDistribution sets the Distribution field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetDistribution(v string) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.Distribution = &v
+}
+
+// SetReportAs sets the ReportAs field.
+//
+// When the provided Step type is nil, it
+// will set nothing and immediately return.
+func (s *Step) SetReportAs(v string) {
+ // return if Step type is nil
+ if s == nil {
+ return
+ }
+
+ s.ReportAs = &v
+}
+
+// String implements the Stringer interface for the Step type.
+func (s *Step) String() string {
+ return fmt.Sprintf(`{
+ BuildID: %d,
+ Created: %d,
+ Distribution: %s,
+ Error: %s,
+ ExitCode: %d,
+ Finished: %d,
+ Host: %s,
+ ID: %d,
+ Image: %s,
+ Name: %s,
+ Number: %d,
+ RepoID: %d,
+ ReportAs: %s,
+ Runtime: %s,
+ Stage: %s,
+ Started: %d,
+ Status: %s,
+}`,
+ s.GetBuildID(),
+ s.GetCreated(),
+ s.GetDistribution(),
+ s.GetError(),
+ s.GetExitCode(),
+ s.GetFinished(),
+ s.GetHost(),
+ s.GetID(),
+ s.GetImage(),
+ s.GetName(),
+ s.GetNumber(),
+ s.GetRepoID(),
+ s.GetReportAs(),
+ s.GetRuntime(),
+ s.GetStage(),
+ s.GetStarted(),
+ s.GetStatus(),
+ )
+}
+
+// StepFromBuildContainer creates a new Step based on a Build and pipeline Container.
+func StepFromBuildContainer(build *Build, ctn *pipeline.Container) *Step {
+ // create new step type we want to return
+ s := new(Step)
+
+ // default status to Pending
+ s.SetStatus(constants.StatusPending)
+
+ // copy fields from build
+ if build != nil {
+ // set values from the build
+ s.SetHost(build.GetHost())
+ s.SetRuntime(build.GetRuntime())
+ s.SetDistribution(build.GetDistribution())
+ }
+
+ // copy fields from container
+ if ctn != nil && ctn.Name != "" {
+ // set values from the container
+ s.SetName(ctn.Name)
+ s.SetNumber(ctn.Number)
+ s.SetImage(ctn.Image)
+ s.SetReportAs(ctn.ReportAs)
+
+ // check if the VELA_STEP_STAGE environment variable exists
+ value, ok := ctn.Environment["VELA_STEP_STAGE"]
+ if ok {
+ // set the Stage field to the value from environment variable
+ s.SetStage(value)
+ }
+ }
+
+ return s
+}
+
+// StepFromContainerEnvironment converts the pipeline Container
+// to an API Step using the container's Environment.
+func StepFromContainerEnvironment(ctn *pipeline.Container) *Step {
+ // check if container or container environment are nil
+ if ctn == nil || ctn.Environment == nil {
+ return nil
+ }
+
+ // create new step type we want to return
+ s := new(Step)
+
+ // check if the VELA_STEP_DISTRIBUTION environment variable exists
+ value, ok := ctn.Environment["VELA_STEP_DISTRIBUTION"]
+ if ok {
+ // set the Distribution field to the value from environment variable
+ s.SetDistribution(value)
+ }
+
+ // check if the VELA_STEP_HOST environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_HOST"]
+ if ok {
+ // set the Host field to the value from environment variable
+ s.SetHost(value)
+ }
+
+ // check if the VELA_STEP_IMAGE environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_IMAGE"]
+ if ok {
+ // set the Image field to the value from environment variable
+ s.SetImage(value)
+ }
+
+ // check if the VELA_STEP_NAME environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_NAME"]
+ if ok {
+ // set the Name field to the value from environment variable
+ s.SetName(value)
+ }
+
+ // check if the VELA_STEP_REPORT_AS environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_REPORT_AS"]
+ if ok {
+ // set the ReportAs field to the value from environment variable
+ s.SetReportAs(value)
+ }
+
+ // check if the VELA_STEP_RUNTIME environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_RUNTIME"]
+ if ok {
+ // set the Runtime field to the value from environment variable
+ s.SetRuntime(value)
+ }
+
+ // check if the VELA_STEP_STAGE environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_STAGE"]
+ if ok {
+ // set the Stage field to the value from environment variable
+ s.SetStage(value)
+ }
+
+ // check if the VELA_STEP_STATUS environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_STATUS"]
+ if ok {
+ // set the Status field to the value from environment variable
+ s.SetStatus(value)
+ }
+
+ // check if the VELA_STEP_CREATED environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_CREATED"]
+ if ok {
+ // parse the environment variable value into an int64
+ i, err := strconv.ParseInt(value, 10, 64)
+ if err == nil {
+ // set the Created field to the parsed int64
+ s.SetCreated(i)
+ }
+ }
+
+ // check if the VELA_STEP_EXIT_CODE environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_EXIT_CODE"]
+ if ok {
+ // parse the environment variable value into an int
+ i, err := strconv.ParseInt(value, 10, 0)
+ if err == nil {
+ // set the ExitCode field to the parsed int
+ s.SetExitCode(int(i))
+ }
+ }
+
+ // check if the VELA_STEP_FINISHED environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_FINISHED"]
+ if ok {
+ // parse the environment variable value into an int64
+ i, err := strconv.ParseInt(value, 10, 64)
+ if err == nil {
+ // set the Finished field to the parsed int64
+ s.SetFinished(i)
+ }
+ }
+
+ // check if the VELA_STEP_NUMBER environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_NUMBER"]
+ if ok {
+ // parse the environment variable value into an int
+ i, err := strconv.ParseInt(value, 10, 0)
+ if err == nil {
+ // set the Number field to the parsed int
+ s.SetNumber(int(i))
+ }
+ }
+
+ // check if the VELA_STEP_STARTED environment variable exists
+ value, ok = ctn.Environment["VELA_STEP_STARTED"]
+ if ok {
+ // parse the environment variable value into an int64
+ i, err := strconv.ParseInt(value, 10, 64)
+ if err == nil {
+ // set the Started field to the parsed int64
+ s.SetStarted(i)
+ }
+ }
+
+ return s
+}
diff --git a/api/types/step_test.go b/api/types/step_test.go
new file mode 100644
index 000000000..861f50f23
--- /dev/null
+++ b/api/types/step_test.go
@@ -0,0 +1,482 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "reflect"
+ "testing"
+ "time"
+
+ "github.com/go-vela/server/compiler/types/pipeline"
+)
+
+func TestTypes_Step_Duration(t *testing.T) {
+ // setup types
+ unfinished := testStep()
+ unfinished.SetFinished(0)
+
+ // setup tests
+ tests := []struct {
+ step *Step
+ want string
+ }{
+ {
+ step: testStep(),
+ want: "1s",
+ },
+ {
+ step: unfinished,
+ want: time.Since(time.Unix(unfinished.GetStarted(), 0)).Round(time.Second).String(),
+ },
+ {
+ step: new(Step),
+ want: "...",
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := test.step.Duration()
+
+ if got != test.want {
+ t.Errorf("Duration is %v, want %v", got, test.want)
+ }
+ }
+}
+
+func TestTypes_Step_Environment(t *testing.T) {
+ // setup types
+ want := map[string]string{
+ "VELA_STEP_CREATED": "1563474076",
+ "VELA_STEP_DISTRIBUTION": "linux",
+ "VELA_STEP_EXIT_CODE": "0",
+ "VELA_STEP_HOST": "example.company.com",
+ "VELA_STEP_IMAGE": "target/vela-git:v0.3.0",
+ "VELA_STEP_NAME": "clone",
+ "VELA_STEP_NUMBER": "1",
+ "VELA_STEP_REPORT_AS": "test",
+ "VELA_STEP_RUNTIME": "docker",
+ "VELA_STEP_STAGE": "",
+ "VELA_STEP_STARTED": "1563474078",
+ "VELA_STEP_STATUS": "running",
+ }
+
+ // run test
+ got := testStep().Environment()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("Environment is %v, want %v", got, want)
+ }
+}
+
+func TestTypes_Step_Getters(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ step *Step
+ want *Step
+ }{
+ {
+ step: testStep(),
+ want: testStep(),
+ },
+ {
+ step: new(Step),
+ want: new(Step),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ if test.step.GetID() != test.want.GetID() {
+ t.Errorf("GetID is %v, want %v", test.step.GetID(), test.want.GetID())
+ }
+
+ if test.step.GetBuildID() != test.want.GetBuildID() {
+ t.Errorf("GetBuildID is %v, want %v", test.step.GetBuildID(), test.want.GetBuildID())
+ }
+
+ if test.step.GetRepoID() != test.want.GetRepoID() {
+ t.Errorf("GetRepoID is %v, want %v", test.step.GetRepoID(), test.want.GetRepoID())
+ }
+
+ if test.step.GetNumber() != test.want.GetNumber() {
+ t.Errorf("GetNumber is %v, want %v", test.step.GetNumber(), test.want.GetNumber())
+ }
+
+ if test.step.GetName() != test.want.GetName() {
+ t.Errorf("GetName is %v, want %v", test.step.GetName(), test.want.GetName())
+ }
+
+ if test.step.GetImage() != test.want.GetImage() {
+ t.Errorf("GetImage is %v, want %v", test.step.GetImage(), test.want.GetImage())
+ }
+
+ if test.step.GetStage() != test.want.GetStage() {
+ t.Errorf("GetStage is %v, want %v", test.step.GetStage(), test.want.GetStage())
+ }
+
+ if test.step.GetStatus() != test.want.GetStatus() {
+ t.Errorf("GetStatus is %v, want %v", test.step.GetStatus(), test.want.GetStatus())
+ }
+
+ if test.step.GetError() != test.want.GetError() {
+ t.Errorf("GetError is %v, want %v", test.step.GetError(), test.want.GetError())
+ }
+
+ if test.step.GetExitCode() != test.want.GetExitCode() {
+ t.Errorf("GetExitCode is %v, want %v", test.step.GetExitCode(), test.want.GetExitCode())
+ }
+
+ if test.step.GetCreated() != test.want.GetCreated() {
+ t.Errorf("GetCreated is %v, want %v", test.step.GetCreated(), test.want.GetCreated())
+ }
+
+ if test.step.GetStarted() != test.want.GetStarted() {
+ t.Errorf("GetStarted is %v, want %v", test.step.GetStarted(), test.want.GetStarted())
+ }
+
+ if test.step.GetFinished() != test.want.GetFinished() {
+ t.Errorf("GetFinished is %v, want %v", test.step.GetFinished(), test.want.GetFinished())
+ }
+
+ if test.step.GetHost() != test.want.GetHost() {
+ t.Errorf("GetHost is %v, want %v", test.step.GetHost(), test.want.GetHost())
+ }
+
+ if test.step.GetRuntime() != test.want.GetRuntime() {
+ t.Errorf("GetRuntime is %v, want %v", test.step.GetRuntime(), test.want.GetRuntime())
+ }
+
+ if test.step.GetDistribution() != test.want.GetDistribution() {
+ t.Errorf("GetDistribution is %v, want %v", test.step.GetDistribution(), test.want.GetDistribution())
+ }
+
+ if test.step.GetReportAs() != test.want.GetReportAs() {
+ t.Errorf("GetReportAs is %v, want %v", test.step.GetReportAs(), test.want.GetReportAs())
+ }
+ }
+}
+
+func TestTypes_Step_Setters(t *testing.T) {
+ // setup types
+ var s *Step
+
+ // setup tests
+ tests := []struct {
+ step *Step
+ want *Step
+ }{
+ {
+ step: testStep(),
+ want: testStep(),
+ },
+ {
+ step: s,
+ want: new(Step),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ test.step.SetID(test.want.GetID())
+ test.step.SetBuildID(test.want.GetBuildID())
+ test.step.SetRepoID(test.want.GetRepoID())
+ test.step.SetNumber(test.want.GetNumber())
+ test.step.SetName(test.want.GetName())
+ test.step.SetImage(test.want.GetImage())
+ test.step.SetStage(test.want.GetStage())
+ test.step.SetStatus(test.want.GetStatus())
+ test.step.SetError(test.want.GetError())
+ test.step.SetExitCode(test.want.GetExitCode())
+ test.step.SetCreated(test.want.GetCreated())
+ test.step.SetStarted(test.want.GetStarted())
+ test.step.SetFinished(test.want.GetFinished())
+ test.step.SetHost(test.want.GetHost())
+ test.step.SetRuntime(test.want.GetRuntime())
+ test.step.SetDistribution(test.want.GetDistribution())
+ test.step.SetReportAs(test.want.GetReportAs())
+
+ if test.step.GetID() != test.want.GetID() {
+ t.Errorf("SetID is %v, want %v", test.step.GetID(), test.want.GetID())
+ }
+
+ if test.step.GetBuildID() != test.want.GetBuildID() {
+ t.Errorf("SetBuildID is %v, want %v", test.step.GetBuildID(), test.want.GetBuildID())
+ }
+
+ if test.step.GetRepoID() != test.want.GetRepoID() {
+ t.Errorf("SetRepoID is %v, want %v", test.step.GetRepoID(), test.want.GetRepoID())
+ }
+
+ if test.step.GetNumber() != test.want.GetNumber() {
+ t.Errorf("SetNumber is %v, want %v", test.step.GetNumber(), test.want.GetNumber())
+ }
+
+ if test.step.GetName() != test.want.GetName() {
+ t.Errorf("SetName is %v, want %v", test.step.GetName(), test.want.GetName())
+ }
+
+ if test.step.GetImage() != test.want.GetImage() {
+ t.Errorf("SetImage is %v, want %v", test.step.GetImage(), test.want.GetImage())
+ }
+
+ if test.step.GetStage() != test.want.GetStage() {
+ t.Errorf("SetStage is %v, want %v", test.step.GetStage(), test.want.GetStage())
+ }
+
+ if test.step.GetStatus() != test.want.GetStatus() {
+ t.Errorf("SetStatus is %v, want %v", test.step.GetStatus(), test.want.GetStatus())
+ }
+
+ if test.step.GetError() != test.want.GetError() {
+ t.Errorf("SetError is %v, want %v", test.step.GetError(), test.want.GetError())
+ }
+
+ if test.step.GetExitCode() != test.want.GetExitCode() {
+ t.Errorf("SetExitCode is %v, want %v", test.step.GetExitCode(), test.want.GetExitCode())
+ }
+
+ if test.step.GetCreated() != test.want.GetCreated() {
+ t.Errorf("SetCreated is %v, want %v", test.step.GetCreated(), test.want.GetCreated())
+ }
+
+ if test.step.GetStarted() != test.want.GetStarted() {
+ t.Errorf("SetStarted is %v, want %v", test.step.GetStarted(), test.want.GetStarted())
+ }
+
+ if test.step.GetFinished() != test.want.GetFinished() {
+ t.Errorf("SetFinished is %v, want %v", test.step.GetFinished(), test.want.GetFinished())
+ }
+
+ if test.step.GetHost() != test.want.GetHost() {
+ t.Errorf("SetHost is %v, want %v", test.step.GetHost(), test.want.GetHost())
+ }
+
+ if test.step.GetRuntime() != test.want.GetRuntime() {
+ t.Errorf("SetRuntime is %v, want %v", test.step.GetRuntime(), test.want.GetRuntime())
+ }
+
+ if test.step.GetDistribution() != test.want.GetDistribution() {
+ t.Errorf("SetDistribution is %v, want %v", test.step.GetDistribution(), test.want.GetDistribution())
+ }
+
+ if test.step.GetReportAs() != test.want.GetReportAs() {
+ t.Errorf("SetReportAs is %v, want %v", test.step.GetReportAs(), test.want.GetReportAs())
+ }
+ }
+}
+
+func TestTypes_Step_String(t *testing.T) {
+ // setup types
+ s := testStep()
+
+ want := fmt.Sprintf(`{
+ BuildID: %d,
+ Created: %d,
+ Distribution: %s,
+ Error: %s,
+ ExitCode: %d,
+ Finished: %d,
+ Host: %s,
+ ID: %d,
+ Image: %s,
+ Name: %s,
+ Number: %d,
+ RepoID: %d,
+ ReportAs: %s,
+ Runtime: %s,
+ Stage: %s,
+ Started: %d,
+ Status: %s,
+}`,
+ s.GetBuildID(),
+ s.GetCreated(),
+ s.GetDistribution(),
+ s.GetError(),
+ s.GetExitCode(),
+ s.GetFinished(),
+ s.GetHost(),
+ s.GetID(),
+ s.GetImage(),
+ s.GetName(),
+ s.GetNumber(),
+ s.GetRepoID(),
+ s.GetReportAs(),
+ s.GetRuntime(),
+ s.GetStage(),
+ s.GetStarted(),
+ s.GetStatus(),
+ )
+
+ // run test
+ got := s.String()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}
+
+func TestTypes_StepFromBuildContainer(t *testing.T) {
+ // setup types
+ s := testStep()
+ s.SetStage("clone")
+ s.SetStatus("pending")
+
+ // modify fields that aren't set
+ s.ID = nil
+ s.BuildID = nil
+ s.RepoID = nil
+ s.ExitCode = nil
+ s.Created = nil
+ s.Started = nil
+ s.Finished = nil
+
+ tests := []struct {
+ name string
+ container *pipeline.Container
+ build *Build
+ want *Step
+ }{
+ {
+ name: "nil container with nil build",
+ container: nil,
+ build: nil,
+ want: &Step{Status: s.Status},
+ },
+ {
+ name: "empty container with nil build",
+ container: new(pipeline.Container),
+ build: nil,
+ want: &Step{Status: s.Status},
+ },
+ {
+ name: "nil container with build",
+ container: nil,
+ build: testBuild(),
+ want: &Step{
+ Status: s.Status,
+ Host: s.Host,
+ Runtime: s.Runtime,
+ Distribution: s.Distribution,
+ },
+ },
+ {
+ name: "empty container with build",
+ container: new(pipeline.Container),
+ build: testBuild(),
+ want: &Step{
+ Status: s.Status,
+ Host: s.Host,
+ Runtime: s.Runtime,
+ Distribution: s.Distribution,
+ },
+ },
+ {
+ name: "container with build",
+ container: &pipeline.Container{
+ Name: s.GetName(),
+ Number: s.GetNumber(),
+ Image: s.GetImage(),
+ ReportAs: s.GetReportAs(),
+ Environment: map[string]string{
+ "VELA_STEP_STAGE": "clone",
+ },
+ },
+ build: testBuild(),
+ want: s,
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := StepFromBuildContainer(test.build, test.container)
+
+ if !reflect.DeepEqual(got, test.want) {
+ t.Errorf("StepFromBuildContainer for %s is %v, want %v", test.name, got, test.want)
+ }
+ }
+}
+
+func TestTypes_StepFromContainerEnvironment(t *testing.T) {
+ // setup types
+ s := testStep()
+ s.SetStage("clone")
+
+ // modify fields that aren't set via environment variables
+ s.ID = nil
+ s.BuildID = nil
+ s.RepoID = nil
+
+ // setup tests
+ tests := []struct {
+ name string
+ container *pipeline.Container
+ want *Step
+ }{
+ {
+ name: "nil container",
+ container: nil,
+ want: nil,
+ },
+ {
+ name: "empty container",
+ container: new(pipeline.Container),
+ want: nil,
+ },
+ {
+ name: "container",
+ container: &pipeline.Container{
+ Environment: map[string]string{
+ "VELA_STEP_CREATED": "1563474076",
+ "VELA_STEP_DISTRIBUTION": "linux",
+ "VELA_STEP_EXIT_CODE": "0",
+ "VELA_STEP_FINISHED": "1563474079",
+ "VELA_STEP_HOST": "example.company.com",
+ "VELA_STEP_IMAGE": "target/vela-git:v0.3.0",
+ "VELA_STEP_NAME": "clone",
+ "VELA_STEP_NUMBER": "1",
+ "VELA_STEP_REPORT_AS": "test",
+ "VELA_STEP_RUNTIME": "docker",
+ "VELA_STEP_STAGE": "clone",
+ "VELA_STEP_STARTED": "1563474078",
+ "VELA_STEP_STATUS": "running",
+ },
+ },
+ want: s,
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := StepFromContainerEnvironment(test.container)
+
+ if !reflect.DeepEqual(got, test.want) {
+ t.Errorf("StepFromContainerEnvironment for %s is %v, want %v", test.name, got, test.want)
+ }
+ }
+}
+
+// testStep is a test helper function to create a Step
+// type with all fields set to a fake value.
+func testStep() *Step {
+ s := new(Step)
+
+ s.SetID(1)
+ s.SetBuildID(1)
+ s.SetRepoID(1)
+ s.SetNumber(1)
+ s.SetName("clone")
+ s.SetImage("target/vela-git:v0.3.0")
+ s.SetStatus("running")
+ s.SetExitCode(0)
+ s.SetCreated(1563474076)
+ s.SetStarted(1563474078)
+ s.SetFinished(1563474079)
+ s.SetHost("example.company.com")
+ s.SetRuntime("docker")
+ s.SetDistribution("linux")
+ s.SetReportAs("test")
+
+ return s
+}
diff --git a/api/webhook/post.go b/api/webhook/post.go
index 65feda064..d8ca86ab7 100644
--- a/api/webhook/post.go
+++ b/api/webhook/post.go
@@ -20,12 +20,12 @@ import (
"github.com/go-vela/server/api/build"
"github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal"
"github.com/go-vela/server/queue"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
var baseErr = "unable to process webhook"
diff --git a/api/worker/create.go b/api/worker/create.go
index cfac76e54..7b577e3e5 100644
--- a/api/worker/create.go
+++ b/api/worker/create.go
@@ -12,11 +12,11 @@ import (
"github.com/sirupsen/logrus"
"github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
"github.com/go-vela/types/library"
)
diff --git a/api/worker/refresh.go b/api/worker/refresh.go
index 51098efe2..6b8d69fe6 100644
--- a/api/worker/refresh.go
+++ b/api/worker/refresh.go
@@ -11,12 +11,12 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/router/middleware/worker"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
"github.com/go-vela/types/library"
)
diff --git a/cmd/vela-server/main.go b/cmd/vela-server/main.go
index d1207328f..5af8a852c 100644
--- a/cmd/vela-server/main.go
+++ b/cmd/vela-server/main.go
@@ -13,13 +13,13 @@ import (
_ "github.com/joho/godotenv/autoload"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/queue"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/secret"
"github.com/go-vela/server/tracing"
"github.com/go-vela/server/version"
- "github.com/go-vela/types/constants"
)
//nolint:funlen // ignore line length
diff --git a/cmd/vela-server/schedule.go b/cmd/vela-server/schedule.go
index 21729bed9..a06c724a1 100644
--- a/cmd/vela-server/schedule.go
+++ b/cmd/vela-server/schedule.go
@@ -16,12 +16,12 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/api/types/settings"
"github.com/go-vela/server/compiler"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal"
"github.com/go-vela/server/queue"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
const (
diff --git a/cmd/vela-server/secret.go b/cmd/vela-server/secret.go
index 2ca65615a..474b4d0d9 100644
--- a/cmd/vela-server/secret.go
+++ b/cmd/vela-server/secret.go
@@ -6,9 +6,9 @@ import (
"github.com/sirupsen/logrus"
"github.com/urfave/cli/v2"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/secret"
- "github.com/go-vela/types/constants"
)
// helper function to setup the secrets engines from the CLI arguments.
diff --git a/cmd/vela-server/validate.go b/cmd/vela-server/validate.go
index a8ba5e064..4dd9509df 100644
--- a/cmd/vela-server/validate.go
+++ b/cmd/vela-server/validate.go
@@ -10,7 +10,7 @@ import (
"github.com/sirupsen/logrus"
"github.com/urfave/cli/v2"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func validate(c *cli.Context) error {
diff --git a/compiler/native/clone.go b/compiler/native/clone.go
index da1aacdf3..f6f4ffdbc 100644
--- a/compiler/native/clone.go
+++ b/compiler/native/clone.go
@@ -4,7 +4,7 @@ package native
import (
"github.com/go-vela/server/compiler/types/yaml"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/compiler/native/compile.go b/compiler/native/compile.go
index 088dbca15..00620e3f2 100644
--- a/compiler/native/compile.go
+++ b/compiler/native/compile.go
@@ -20,7 +20,7 @@ import (
"github.com/go-vela/server/compiler/types/pipeline"
"github.com/go-vela/server/compiler/types/raw"
"github.com/go-vela/server/compiler/types/yaml"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// ModifyRequest contains the payload passed to the modification endpoint.
diff --git a/compiler/native/compile_test.go b/compiler/native/compile_test.go
index c575a3494..7b3ad7e6d 100644
--- a/compiler/native/compile_test.go
+++ b/compiler/native/compile_test.go
@@ -23,8 +23,8 @@ import (
"github.com/go-vela/server/compiler/types/pipeline"
"github.com/go-vela/server/compiler/types/raw"
"github.com/go-vela/server/compiler/types/yaml"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/internal"
- "github.com/go-vela/types/constants"
)
func TestNative_Compile_StagesPipeline(t *testing.T) {
diff --git a/compiler/native/environment.go b/compiler/native/environment.go
index d9a82ed55..d0c6ab0b8 100644
--- a/compiler/native/environment.go
+++ b/compiler/native/environment.go
@@ -10,8 +10,8 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler/types/raw"
"github.com/go-vela/server/compiler/types/yaml"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/internal"
- "github.com/go-vela/types/constants"
"github.com/go-vela/types/library"
)
diff --git a/compiler/native/expand.go b/compiler/native/expand.go
index a971b8efd..0420338c0 100644
--- a/compiler/native/expand.go
+++ b/compiler/native/expand.go
@@ -16,7 +16,7 @@ import (
"github.com/go-vela/server/compiler/types/pipeline"
"github.com/go-vela/server/compiler/types/raw"
"github.com/go-vela/server/compiler/types/yaml"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// ExpandStages injects the template for each
diff --git a/compiler/native/initialize.go b/compiler/native/initialize.go
index 21c9e3b16..bbfdb071c 100644
--- a/compiler/native/initialize.go
+++ b/compiler/native/initialize.go
@@ -4,7 +4,7 @@ package native
import (
"github.com/go-vela/server/compiler/types/yaml"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/compiler/native/parse.go b/compiler/native/parse.go
index 47924ac0a..7afeefef3 100644
--- a/compiler/native/parse.go
+++ b/compiler/native/parse.go
@@ -13,7 +13,7 @@ import (
"github.com/go-vela/server/compiler/template/starlark"
typesRaw "github.com/go-vela/server/compiler/types/raw"
types "github.com/go-vela/server/compiler/types/yaml"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// ParseRaw converts an object to a string.
diff --git a/compiler/native/parse_test.go b/compiler/native/parse_test.go
index 91b13c9cb..fa2635a48 100644
--- a/compiler/native/parse_test.go
+++ b/compiler/native/parse_test.go
@@ -16,7 +16,7 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler/types/raw"
"github.com/go-vela/server/compiler/types/yaml"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestNative_Parse_Metadata_Bytes(t *testing.T) {
diff --git a/compiler/native/validate.go b/compiler/native/validate.go
index cabe3f602..0c0775019 100644
--- a/compiler/native/validate.go
+++ b/compiler/native/validate.go
@@ -8,7 +8,7 @@ import (
"github.com/hashicorp/go-multierror"
"github.com/go-vela/server/compiler/types/yaml"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Validate verifies the yaml configuration is valid.
diff --git a/compiler/types/pipeline/build.go b/compiler/types/pipeline/build.go
index 681269d5d..aef5eaea8 100644
--- a/compiler/types/pipeline/build.go
+++ b/compiler/types/pipeline/build.go
@@ -8,7 +8,7 @@ import (
"unicode/utf8"
"github.com/go-vela/server/compiler/types/raw"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Build is the pipeline representation of a build for a pipeline.
diff --git a/compiler/types/pipeline/build_test.go b/compiler/types/pipeline/build_test.go
index a693a89be..a94d05f85 100644
--- a/compiler/types/pipeline/build_test.go
+++ b/compiler/types/pipeline/build_test.go
@@ -6,7 +6,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestPipeline_Build_Purge(t *testing.T) {
diff --git a/compiler/types/pipeline/container.go b/compiler/types/pipeline/container.go
index 85a96d8b8..246076bd3 100644
--- a/compiler/types/pipeline/container.go
+++ b/compiler/types/pipeline/container.go
@@ -14,7 +14,7 @@ import (
"github.com/drone/envsubst"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/compiler/types/pipeline/container_test.go b/compiler/types/pipeline/container_test.go
index a7ae573c2..8d581f464 100644
--- a/compiler/types/pipeline/container_test.go
+++ b/compiler/types/pipeline/container_test.go
@@ -6,7 +6,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestPipeline_ContainerSlice_Purge(t *testing.T) {
diff --git a/compiler/types/pipeline/ruleset.go b/compiler/types/pipeline/ruleset.go
index 53126e6c5..a6e5101f6 100644
--- a/compiler/types/pipeline/ruleset.go
+++ b/compiler/types/pipeline/ruleset.go
@@ -8,7 +8,7 @@ import (
"regexp"
"strings"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/compiler/types/pipeline/ruleset_test.go b/compiler/types/pipeline/ruleset_test.go
index 26a23823e..d6618d444 100644
--- a/compiler/types/pipeline/ruleset_test.go
+++ b/compiler/types/pipeline/ruleset_test.go
@@ -5,7 +5,7 @@ package pipeline
import (
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestPipeline_Ruleset_Match(t *testing.T) {
diff --git a/compiler/types/pipeline/secret.go b/compiler/types/pipeline/secret.go
index bbc5e2602..2f28821a7 100644
--- a/compiler/types/pipeline/secret.go
+++ b/compiler/types/pipeline/secret.go
@@ -7,7 +7,7 @@ import (
"fmt"
"strings"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/compiler/types/pipeline/stage.go b/compiler/types/pipeline/stage.go
index 2325f340f..4a7001327 100644
--- a/compiler/types/pipeline/stage.go
+++ b/compiler/types/pipeline/stage.go
@@ -5,7 +5,7 @@ package pipeline
import (
"fmt"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/compiler/types/pipeline/stage_test.go b/compiler/types/pipeline/stage_test.go
index 3ae29b10f..fb1071d81 100644
--- a/compiler/types/pipeline/stage_test.go
+++ b/compiler/types/pipeline/stage_test.go
@@ -6,7 +6,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestPipeline_StageSlice_Purge(t *testing.T) {
diff --git a/compiler/types/yaml/ruleset.go b/compiler/types/yaml/ruleset.go
index f0d4078d8..348f6315b 100644
--- a/compiler/types/yaml/ruleset.go
+++ b/compiler/types/yaml/ruleset.go
@@ -5,7 +5,7 @@ package yaml
import (
"github.com/go-vela/server/compiler/types/pipeline"
"github.com/go-vela/server/compiler/types/raw"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/compiler/types/yaml/secret.go b/compiler/types/yaml/secret.go
index 887e1a21c..a99f452e8 100644
--- a/compiler/types/yaml/secret.go
+++ b/compiler/types/yaml/secret.go
@@ -9,7 +9,7 @@ import (
"github.com/go-vela/server/compiler/types/pipeline"
"github.com/go-vela/server/compiler/types/raw"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/compiler/types/yaml/service.go b/compiler/types/yaml/service.go
index 38fa87a90..f5d5103cc 100644
--- a/compiler/types/yaml/service.go
+++ b/compiler/types/yaml/service.go
@@ -8,7 +8,7 @@ import (
"github.com/go-vela/server/compiler/types/pipeline"
"github.com/go-vela/server/compiler/types/raw"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/compiler/types/yaml/step.go b/compiler/types/yaml/step.go
index 42dd7c320..0b579f614 100644
--- a/compiler/types/yaml/step.go
+++ b/compiler/types/yaml/step.go
@@ -8,7 +8,7 @@ import (
"github.com/go-vela/server/compiler/types/pipeline"
"github.com/go-vela/server/compiler/types/raw"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/constants/action.go b/constants/action.go
new file mode 100644
index 000000000..67e4e8354
--- /dev/null
+++ b/constants/action.go
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Build and repo events.
+const (
+ // ActionOpened defines the action for opening pull requests.
+ ActionOpened = "opened"
+
+ // ActionCreated defines the action for creating deployments or issue comments.
+ ActionCreated = "created"
+
+ // ActionEdited defines the action for the editing of pull requests or issue comments.
+ ActionEdited = "edited"
+
+ // ActionRenamed defines the action for renaming a repository.
+ ActionRenamed = "renamed"
+
+ // ActionReopened defines the action for re-opening a pull request (or issue).
+ ActionReopened = "reopened"
+
+ // ActionSynchronize defines the action for the synchronizing of pull requests.
+ ActionSynchronize = "synchronize"
+
+ // ActionLabeled defines the action for the labeling of pull requests.
+ ActionLabeled = "labeled"
+
+ // ActionUnlabeled defines the action for the unlabeling of pull requests.
+ ActionUnlabeled = "unlabeled"
+
+ // ActionTransferred defines the action for transferring repository ownership.
+ ActionTransferred = "transferred"
+
+ // ActionBranch defines the action for deleting a branch.
+ ActionBranch = "branch"
+
+ // ActionTag defines the action for deleting a tag.
+ ActionTag = "tag"
+
+ // ActionRun defines the action for running a schedule.
+ ActionRun = "run"
+)
diff --git a/constants/allow_events.go b/constants/allow_events.go
new file mode 100644
index 000000000..5df539264
--- /dev/null
+++ b/constants/allow_events.go
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Allowed repo events. NOTE: these can NOT change order. New events must be added at the end.
+const (
+ AllowPushBranch = 1 << iota // 00000001 = 1
+ AllowPushTag // 00000010 = 2
+ AllowPullOpen // 00000100 = 4
+ AllowPullEdit // ...
+ AllowPullSync
+ _ // AllowPullAssigned - Not Implemented
+ _ // AllowPullMilestoned - Not Implemented
+ AllowPullLabel
+ _ // AllowPullLocked - Not Implemented
+ _ // AllowPullReady - Not Implemented
+ AllowPullReopen
+ _ // AllowPullReviewRequest - Not Implemented
+ _ // AllowPullClosed - Not Implemented
+ AllowDeployCreate
+ AllowCommentCreate
+ AllowCommentEdit
+ AllowSchedule
+ AllowPushDeleteBranch
+ AllowPushDeleteTag
+ AllowPullUnlabel
+)
diff --git a/constants/badge.go b/constants/badge.go
new file mode 100644
index 000000000..b92638ac0
--- /dev/null
+++ b/constants/badge.go
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Constants for build badges.
+//
+//nolint:godot // due to providing pretty printed svgs
+const (
+ // Badge for unknown state
+ //
+ BadgeUnknown = ``
+
+ // Badge for success state
+ //
+ BadgeSuccess = ``
+
+ // Badge for failed state
+ //
+ BadgeFailed = ``
+
+ // Badge for error state
+ //
+ BadgeError = ``
+
+ // Badge for running status
+ //
+ BadgeRunning = ``
+)
diff --git a/constants/compression.go b/constants/compression.go
new file mode 100644
index 000000000..6a1d11a6d
--- /dev/null
+++ b/constants/compression.go
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Log Compression Levels.
+const (
+ // The default compression level for the compress/zlib library
+ // for log data stored in the database.
+ CompressionNegOne = -1
+
+ // Enables no compression for log data stored in the database.
+ //
+ // This produces no compression for the log data.
+ CompressionZero = 0
+
+ // Enables the best speed for log data stored in the database.
+ //
+ // This produces compression for the log data the fastest but
+ // has a tradeoff of producing the largest amounts of data.
+ CompressionOne = 1
+
+ // Second compression level for log data stored in the database.
+ CompressionTwo = 2
+
+ // Third compression level for log data stored in the database.
+ CompressionThree = 3
+
+ // Fourth compression level for log data stored in the database.
+ CompressionFour = 4
+
+ // Enables an even balance of speed and compression for log
+ // data stored in the database.
+ //
+ // This produces compression for the log data with an even
+ // balance of speed while producing smaller amounts of data.
+ CompressionFive = 5
+
+ // Sixth compression level for log data stored in the database.
+ CompressionSix = 6
+
+ // Seventh compression level for log data stored in the database.
+ CompressionSeven = 7
+
+ // Eighth compression level for log data stored in the database.
+ CompressionEight = 8
+
+ // Enables the best compression for log data stored in the database.
+ //
+ // This produces compression for the log data the slowest but
+ // has a tradeoff of producing the smallest amounts of data.
+ CompressionNine = 9
+)
diff --git a/constants/doc.go b/constants/doc.go
new file mode 100644
index 000000000..0e748959b
--- /dev/null
+++ b/constants/doc.go
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: Apache-2.0
+
+// Package constants provides the defined constant types for Vela.
+//
+// Usage:
+//
+// import "github.com/go-vela/types/constants"
+package constants
diff --git a/constants/event.go b/constants/event.go
new file mode 100644
index 000000000..c2ec26aad
--- /dev/null
+++ b/constants/event.go
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Build and repo events.
+const (
+ // EventComment defines the event type for comments added to a pull request.
+ EventComment = "comment"
+
+ // EventDelete defines the event type for build and repo delete events.
+ EventDelete = "delete"
+
+ // EventDeploy defines the event type for build and repo deployment events.
+ EventDeploy = "deployment"
+
+ // EventPull defines the event type for build and repo pull_request events.
+ EventPull = "pull_request"
+
+ // EventPush defines the event type for build and repo push events.
+ EventPush = "push"
+
+ // EventRepository defines the general event type for repo management.
+ EventRepository = "repository"
+
+ // EventSchedule defines the event type for build and repo schedule events.
+ EventSchedule = "schedule"
+
+ // EventTag defines the event type for build and repo tag events.
+ EventTag = "tag"
+
+ // Alternates for common user inputs that do not match our set constants.
+
+ // EventPullAlternate defines the alternate event type for build and repo pull_request events.
+ EventPullAlternate = "pull"
+
+ // EventDeployAlternate defines the alternate event type for build and repo deployment events.
+ EventDeployAlternate = "deploy"
+)
diff --git a/constants/limit.go b/constants/limit.go
index 8b492ec3e..4321c4e79 100644
--- a/constants/limit.go
+++ b/constants/limit.go
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
+
package constants
// Limits and constraints.
diff --git a/constants/matcher.go b/constants/matcher.go
new file mode 100644
index 000000000..ef4c79470
--- /dev/null
+++ b/constants/matcher.go
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Ruleset matchers.
+const (
+ // MatcherFilepath defines the ruleset type for the filepath matcher.
+ MatcherFilepath = "filepath"
+
+ // MatcherRegex defines the ruleset type for the regex matcher.
+ MatcherRegex = "regexp"
+)
diff --git a/constants/operator.go b/constants/operator.go
new file mode 100644
index 000000000..f6a209016
--- /dev/null
+++ b/constants/operator.go
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Ruleset operators.
+const (
+ // OperatorAnd defines the ruleset type for the and operator.
+ OperatorAnd = "and"
+
+ // OperatorOr defines the ruleset type for the or operator.
+ OperatorOr = "or"
+)
diff --git a/constants/pipeline.go b/constants/pipeline.go
new file mode 100644
index 000000000..f3f49ff38
--- /dev/null
+++ b/constants/pipeline.go
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Pipeline types.
+const (
+ // PipelineStages defines the type for a pipeline with stages.
+ PipelineStage = "stages"
+
+ // PipelineStep defines the type for a pipeline with steps.
+ PipelineStep = "steps"
+
+ // PipelineTemplate defines the type for a pipeline as a template.
+ PipelineTemplate = "template"
+)
diff --git a/constants/pull.go b/constants/pull.go
new file mode 100644
index 000000000..131679984
--- /dev/null
+++ b/constants/pull.go
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Service and step pull policies.
+const (
+ // PullAlways defines the pull policy type for
+ // a service or step to always pull an image.
+ PullAlways = "always"
+
+ // PullNotPresent defines the pull policy type for
+ // a service or step to only pull an image if it doesn't exist.
+ PullNotPresent = "not_present"
+
+ // PullOnStart defines the pull policy type for
+ // a service or step to only pull an image before the container starts.
+ PullOnStart = "on_start"
+
+ // PullNever defines the pull policy type for
+ // a service or step to never pull an image.
+ PullNever = "never"
+)
diff --git a/constants/queue.go b/constants/queue.go
new file mode 100644
index 000000000..fe3b8087e
--- /dev/null
+++ b/constants/queue.go
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Queue types.
+const (
+ // DefaultRoute defines the default route all workers listen on.
+ DefaultRoute = "vela"
+)
diff --git a/constants/table.go b/constants/table.go
index 871225fe1..be640a576 100644
--- a/constants/table.go
+++ b/constants/table.go
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
+
package constants
// Database tables.
diff --git a/constants/worker_status.go b/constants/worker_status.go
new file mode 100644
index 000000000..70d17111c
--- /dev/null
+++ b/constants/worker_status.go
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Worker statuses.
+const (
+ // WorkerStatusIdle defines the status for a worker
+ // where worker RunningBuildIDs.length = 0.
+ WorkerStatusIdle = "idle"
+
+ // WorkerStatusAvailable defines the status type for a worker in an available state,
+ // where worker RunningBuildIDs.length > 0 and < worker BuildLimit.
+ WorkerStatusAvailable = "available"
+
+ // WorkerStatusBusy defines the status type for a worker in an unavailable state,
+ // where worker BuildLimit == worker RunningBuildIDs.length.
+ WorkerStatusBusy = "busy"
+
+ // WorkerStatusError defines the status for a worker in an error state.
+ WorkerStatusError = "error"
+)
diff --git a/constants/workspace.go b/constants/workspace.go
new file mode 100644
index 000000000..9efb1b984
--- /dev/null
+++ b/constants/workspace.go
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package constants
+
+// Service and Step workspace paths.
+const (
+ // WorkspaceDefault defines the default workspace path for a service or a step.
+ WorkspaceDefault = "/vela/src"
+
+ // WorkspaceMount defines the mount workspace path for a service or a step.
+ WorkspaceMount = "/vela"
+)
diff --git a/database/build/build.go b/database/build/build.go
index b425731f3..1dc82d36e 100644
--- a/database/build/build.go
+++ b/database/build/build.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/build/clean.go b/database/build/clean.go
index 81a461469..521e24121 100644
--- a/database/build/clean.go
+++ b/database/build/clean.go
@@ -9,8 +9,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// CleanBuilds updates builds to an error with a provided message with a created timestamp prior to a defined moment.
diff --git a/database/build/count.go b/database/build/count.go
index 6b26c3f28..3d50bde6e 100644
--- a/database/build/count.go
+++ b/database/build/count.go
@@ -5,7 +5,7 @@ package build
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountBuilds gets the count of all builds from the database.
diff --git a/database/build/count_deployment.go b/database/build/count_deployment.go
index 631228915..f8ac7a061 100644
--- a/database/build/count_deployment.go
+++ b/database/build/count_deployment.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountBuildsForDeployment gets the count of builds by deployment URL from the database.
diff --git a/database/build/count_org.go b/database/build/count_org.go
index 5a349c730..e78e22480 100644
--- a/database/build/count_org.go
+++ b/database/build/count_org.go
@@ -7,7 +7,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountBuildsForOrg gets the count of builds by org name from the database.
diff --git a/database/build/count_org_test.go b/database/build/count_org_test.go
index 546e59678..5454b82dd 100644
--- a/database/build/count_org_test.go
+++ b/database/build/count_org_test.go
@@ -9,9 +9,9 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestBuild_Engine_CountBuildsForOrg(t *testing.T) {
diff --git a/database/build/count_repo.go b/database/build/count_repo.go
index 138b4d6d4..df59ee2fe 100644
--- a/database/build/count_repo.go
+++ b/database/build/count_repo.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountBuildsForRepo gets the count of builds by repo ID from the database.
diff --git a/database/build/count_status.go b/database/build/count_status.go
index 8fb401ffb..e3f199d2b 100644
--- a/database/build/count_status.go
+++ b/database/build/count_status.go
@@ -5,7 +5,7 @@ package build
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountBuildsForStatus gets the count of builds by status from the database.
diff --git a/database/build/create.go b/database/build/create.go
index 7789434cb..d8f122470 100644
--- a/database/build/create.go
+++ b/database/build/create.go
@@ -9,8 +9,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// CreateBuild creates a new build in the database.
diff --git a/database/build/delete.go b/database/build/delete.go
index f03387a5f..a5ba38ef2 100644
--- a/database/build/delete.go
+++ b/database/build/delete.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// DeleteBuild deletes an existing build from the database.
diff --git a/database/build/get.go b/database/build/get.go
index dc7f0e2de..42aa5b8af 100644
--- a/database/build/get.go
+++ b/database/build/get.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetBuild gets a build by ID from the database.
diff --git a/database/build/get_repo.go b/database/build/get_repo.go
index 1bc9dfb39..66250ef48 100644
--- a/database/build/get_repo.go
+++ b/database/build/get_repo.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetBuildForRepo gets a build by repo ID and number from the database.
diff --git a/database/build/get_repo_test.go b/database/build/get_repo_test.go
index 327b2f14d..2be48a249 100644
--- a/database/build/get_repo_test.go
+++ b/database/build/get_repo_test.go
@@ -10,8 +10,8 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestBuild_Engine_GetBuildForRepo(t *testing.T) {
diff --git a/database/build/get_test.go b/database/build/get_test.go
index e4a26d852..3dc2e95e8 100644
--- a/database/build/get_test.go
+++ b/database/build/get_test.go
@@ -10,9 +10,9 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestBuild_Engine_GetBuild(t *testing.T) {
diff --git a/database/build/last_repo.go b/database/build/last_repo.go
index 517579240..c001bbf0d 100644
--- a/database/build/last_repo.go
+++ b/database/build/last_repo.go
@@ -10,8 +10,8 @@ import (
"gorm.io/gorm"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// LastBuildForRepo gets the last build by repo ID and branch from the database.
diff --git a/database/build/last_repo_test.go b/database/build/last_repo_test.go
index 7b518afee..55b74e5b6 100644
--- a/database/build/last_repo_test.go
+++ b/database/build/last_repo_test.go
@@ -10,8 +10,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestBuild_Engine_LastBuildForRepo(t *testing.T) {
diff --git a/database/build/list.go b/database/build/list.go
index 4074618c7..1a3e22a5b 100644
--- a/database/build/list.go
+++ b/database/build/list.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListBuilds gets a list of all builds from the database.
diff --git a/database/build/list_dashboard.go b/database/build/list_dashboard.go
index 7ba0c379a..65fc8549e 100644
--- a/database/build/list_dashboard.go
+++ b/database/build/list_dashboard.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListBuildsForDashboardRepo gets a list of builds by repo ID from the database.
diff --git a/database/build/list_org.go b/database/build/list_org.go
index d1c33a7a7..5f8259753 100644
--- a/database/build/list_org.go
+++ b/database/build/list_org.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListBuildsForOrg gets a list of builds by org name from the database.
diff --git a/database/build/list_org_test.go b/database/build/list_org_test.go
index 4d25d6062..965955891 100644
--- a/database/build/list_org_test.go
+++ b/database/build/list_org_test.go
@@ -10,9 +10,9 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestBuild_Engine_ListBuildsForOrg(t *testing.T) {
diff --git a/database/build/list_pending_running.go b/database/build/list_pending_running.go
index 6a08dcbac..9e7d1e244 100644
--- a/database/build/list_pending_running.go
+++ b/database/build/list_pending_running.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListPendingAndRunningBuilds gets a list of all pending and running builds in the provided timeframe from the database.
diff --git a/database/build/list_pending_running_repo.go b/database/build/list_pending_running_repo.go
index c475ccc1a..36a41d69a 100644
--- a/database/build/list_pending_running_repo.go
+++ b/database/build/list_pending_running_repo.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListPendingAndRunningBuilds gets a list of all pending and running builds in the provided timeframe from the database.
diff --git a/database/build/list_pending_running_test.go b/database/build/list_pending_running_test.go
index c164827d8..840b30622 100644
--- a/database/build/list_pending_running_test.go
+++ b/database/build/list_pending_running_test.go
@@ -10,9 +10,9 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestBuild_Engine_ListPendingAndRunningBuilds(t *testing.T) {
diff --git a/database/build/list_repo.go b/database/build/list_repo.go
index 772a7ee6b..470b448d3 100644
--- a/database/build/list_repo.go
+++ b/database/build/list_repo.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListBuildsForRepo gets a list of builds by repo ID from the database.
diff --git a/database/build/list_repo_test.go b/database/build/list_repo_test.go
index 0933d0ea3..8071e3a67 100644
--- a/database/build/list_repo_test.go
+++ b/database/build/list_repo_test.go
@@ -11,8 +11,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestBuild_Engine_ListBuildsForRepo(t *testing.T) {
diff --git a/database/build/list_test.go b/database/build/list_test.go
index 15688d252..e440a162c 100644
--- a/database/build/list_test.go
+++ b/database/build/list_test.go
@@ -10,9 +10,9 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestBuild_Engine_ListBuilds(t *testing.T) {
diff --git a/database/build/table.go b/database/build/table.go
index 2a7af528c..756a621cb 100644
--- a/database/build/table.go
+++ b/database/build/table.go
@@ -5,7 +5,7 @@ package build
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/build/update.go b/database/build/update.go
index 07b029093..2d838d9db 100644
--- a/database/build/update.go
+++ b/database/build/update.go
@@ -9,8 +9,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// UpdateBuild updates an existing build in the database.
diff --git a/database/dashboard/table.go b/database/dashboard/table.go
index cef302382..b10917a27 100644
--- a/database/dashboard/table.go
+++ b/database/dashboard/table.go
@@ -5,7 +5,7 @@ package dashboard
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/database.go b/database/database.go
index 6f21ec40a..3976edad1 100644
--- a/database/database.go
+++ b/database/database.go
@@ -13,6 +13,7 @@ import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/build"
"github.com/go-vela/server/database/dashboard"
"github.com/go-vela/server/database/deployment"
@@ -30,7 +31,6 @@ import (
"github.com/go-vela/server/database/user"
"github.com/go-vela/server/database/worker"
"github.com/go-vela/server/tracing"
- "github.com/go-vela/types/constants"
)
type (
diff --git a/database/deployment/count.go b/database/deployment/count.go
index f1c9e5b14..124990d0e 100644
--- a/database/deployment/count.go
+++ b/database/deployment/count.go
@@ -5,7 +5,7 @@ package deployment
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountDeployments gets the count of all deployments from the database.
diff --git a/database/deployment/count_repo.go b/database/deployment/count_repo.go
index 8a2afd6fc..1746b876c 100644
--- a/database/deployment/count_repo.go
+++ b/database/deployment/count_repo.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountDeploymentsForRepo gets the count of deployments by repo ID from the database.
diff --git a/database/deployment/create.go b/database/deployment/create.go
index b3c85a188..d58feda5f 100644
--- a/database/deployment/create.go
+++ b/database/deployment/create.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// CreateDeployment creates a new deployment in the database.
diff --git a/database/deployment/delete.go b/database/deployment/delete.go
index b0f76c7fc..d668f5ef0 100644
--- a/database/deployment/delete.go
+++ b/database/deployment/delete.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// DeleteDeployment deletes an existing deployment from the database.
diff --git a/database/deployment/deployment.go b/database/deployment/deployment.go
index e1fbefad0..ce890809e 100644
--- a/database/deployment/deployment.go
+++ b/database/deployment/deployment.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/deployment/get.go b/database/deployment/get.go
index aef68bc7f..7e51a4ef5 100644
--- a/database/deployment/get.go
+++ b/database/deployment/get.go
@@ -7,8 +7,8 @@ import (
"strconv"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetDeployment gets a deployment by ID from the database.
diff --git a/database/deployment/get_repo.go b/database/deployment/get_repo.go
index f9894789a..43615e798 100644
--- a/database/deployment/get_repo.go
+++ b/database/deployment/get_repo.go
@@ -9,8 +9,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetDeploymentForRepo gets a deployment by repo ID and number from the database.
diff --git a/database/deployment/list.go b/database/deployment/list.go
index b5101eb06..6c2b7f0a8 100644
--- a/database/deployment/list.go
+++ b/database/deployment/list.go
@@ -7,8 +7,8 @@ import (
"strconv"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListDeployments gets a list of all deployments from the database.
diff --git a/database/deployment/list_repo.go b/database/deployment/list_repo.go
index 08419397a..b4d11c3a9 100644
--- a/database/deployment/list_repo.go
+++ b/database/deployment/list_repo.go
@@ -9,8 +9,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListDeploymentsForRepo gets a list of deployments by repo ID from the database.
diff --git a/database/deployment/table.go b/database/deployment/table.go
index 9baef0284..13ad4248b 100644
--- a/database/deployment/table.go
+++ b/database/deployment/table.go
@@ -5,7 +5,7 @@ package deployment
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/deployment/update.go b/database/deployment/update.go
index 0cb7c8b51..7179ce87d 100644
--- a/database/deployment/update.go
+++ b/database/deployment/update.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// UpdateDeployment updates an existing deployment in the database.
diff --git a/database/executable/clean.go b/database/executable/clean.go
index ba4c06172..4a770f3dd 100644
--- a/database/executable/clean.go
+++ b/database/executable/clean.go
@@ -7,7 +7,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const CleanExecutablesPostgres = `
diff --git a/database/executable/clean_test.go b/database/executable/clean_test.go
index 92c8be8e8..56d837c2e 100644
--- a/database/executable/clean_test.go
+++ b/database/executable/clean_test.go
@@ -9,7 +9,7 @@ import (
"github.com/DATA-DOG/go-sqlmock"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
diff --git a/database/executable/create.go b/database/executable/create.go
index e231f01fb..5246eccb1 100644
--- a/database/executable/create.go
+++ b/database/executable/create.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
diff --git a/database/executable/executable.go b/database/executable/executable.go
index 8ac0475ef..cb32b2a52 100644
--- a/database/executable/executable.go
+++ b/database/executable/executable.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/executable/executable_test.go b/database/executable/executable_test.go
index 2869001a8..141323ee8 100644
--- a/database/executable/executable_test.go
+++ b/database/executable/executable_test.go
@@ -13,7 +13,7 @@ import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/library"
)
diff --git a/database/executable/pop.go b/database/executable/pop.go
index 9625ad984..e3a2445e8 100644
--- a/database/executable/pop.go
+++ b/database/executable/pop.go
@@ -7,7 +7,7 @@ import (
"gorm.io/gorm/clause"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
diff --git a/database/executable/table.go b/database/executable/table.go
index 0a7a3c147..bbe8e615b 100644
--- a/database/executable/table.go
+++ b/database/executable/table.go
@@ -5,7 +5,7 @@ package executable
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/flags.go b/database/flags.go
index 129143655..035b016aa 100644
--- a/database/flags.go
+++ b/database/flags.go
@@ -7,7 +7,7 @@ import (
"github.com/urfave/cli/v2"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Flags represents all supported command line interface (CLI) flags for the database.
diff --git a/database/hook/last_repo.go b/database/hook/last_repo.go
index 0073d8a8b..8d17aef0b 100644
--- a/database/hook/last_repo.go
+++ b/database/hook/last_repo.go
@@ -10,8 +10,8 @@ import (
"gorm.io/gorm"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// LastHookForRepo gets the last hook by repo ID from the database.
diff --git a/database/integration_test.go b/database/integration_test.go
index 85f5a2318..2f5646aa2 100644
--- a/database/integration_test.go
+++ b/database/integration_test.go
@@ -17,6 +17,7 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/api/types/settings"
"github.com/go-vela/server/compiler/types/raw"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/build"
"github.com/go-vela/server/database/dashboard"
"github.com/go-vela/server/database/deployment"
@@ -35,7 +36,6 @@ import (
"github.com/go-vela/server/database/user"
"github.com/go-vela/server/database/worker"
"github.com/go-vela/server/tracing"
- "github.com/go-vela/types/constants"
"github.com/go-vela/types/library"
)
@@ -52,8 +52,8 @@ type Resources struct {
Repos []*api.Repo
Schedules []*api.Schedule
Secrets []*api.Secret
- Services []*library.Service
- Steps []*library.Step
+ Services []*api.Service
+ Steps []*api.Step
Users []*api.User
Workers []*api.Worker
Platform []*settings.Platform
@@ -1935,8 +1935,8 @@ func testServices(t *testing.T, db Interface, resources *Resources) {
if err != nil {
t.Errorf("unable to list services for build %d: %v", resources.Builds[0].GetID(), err)
}
- if !cmp.Equal(list, []*library.Service{resources.Services[1], resources.Services[0]}) {
- t.Errorf("ListServicesForBuild() is %v, want %v", list, []*library.Service{resources.Services[1], resources.Services[0]})
+ if !cmp.Equal(list, []*api.Service{resources.Services[1], resources.Services[0]}) {
+ t.Errorf("ListServicesForBuild() is %v, want %v", list, []*api.Service{resources.Services[1], resources.Services[0]})
}
if int(count) != len(resources.Services) {
t.Errorf("ListServicesForBuild() is %v, want %v", count, len(resources.Services))
@@ -2090,8 +2090,8 @@ func testSteps(t *testing.T, db Interface, resources *Resources) {
if err != nil {
t.Errorf("unable to list steps for build %d: %v", resources.Builds[0].GetID(), err)
}
- if !cmp.Equal(list, []*library.Step{resources.Steps[1], resources.Steps[0]}) {
- t.Errorf("ListStepsForBuild() is %v, want %v", list, []*library.Step{resources.Steps[1], resources.Steps[0]})
+ if !cmp.Equal(list, []*api.Step{resources.Steps[1], resources.Steps[0]}) {
+ t.Errorf("ListStepsForBuild() is %v, want %v", list, []*api.Step{resources.Steps[1], resources.Steps[0]})
}
if int(count) != len(resources.Steps) {
t.Errorf("ListStepsForBuild() is %v, want %v", count, len(resources.Steps))
@@ -2877,7 +2877,7 @@ func newResources() *Resources {
secretShared.SetUpdatedAt(time.Now().Add(time.Hour * 1).UTC().Unix())
secretShared.SetUpdatedBy("octokitty")
- serviceOne := new(library.Service)
+ serviceOne := new(api.Service)
serviceOne.SetID(1)
serviceOne.SetBuildID(1)
serviceOne.SetRepoID(1)
@@ -2894,7 +2894,7 @@ func newResources() *Resources {
serviceOne.SetRuntime("docker")
serviceOne.SetDistribution("linux")
- serviceTwo := new(library.Service)
+ serviceTwo := new(api.Service)
serviceTwo.SetID(2)
serviceTwo.SetBuildID(1)
serviceTwo.SetRepoID(1)
@@ -2911,7 +2911,7 @@ func newResources() *Resources {
serviceTwo.SetRuntime("docker")
serviceTwo.SetDistribution("linux")
- stepOne := new(library.Step)
+ stepOne := new(api.Step)
stepOne.SetID(1)
stepOne.SetBuildID(1)
stepOne.SetRepoID(1)
@@ -2930,7 +2930,7 @@ func newResources() *Resources {
stepOne.SetDistribution("linux")
stepOne.SetReportAs("")
- stepTwo := new(library.Step)
+ stepTwo := new(api.Step)
stepTwo.SetID(2)
stepTwo.SetBuildID(1)
stepTwo.SetRepoID(1)
@@ -2995,8 +2995,8 @@ func newResources() *Resources {
Repos: []*api.Repo{repoOne, repoTwo},
Schedules: []*api.Schedule{scheduleOne, scheduleTwo},
Secrets: []*api.Secret{secretOrg, secretRepo, secretShared},
- Services: []*library.Service{serviceOne, serviceTwo},
- Steps: []*library.Step{stepOne, stepTwo},
+ Services: []*api.Service{serviceOne, serviceTwo},
+ Steps: []*api.Step{stepOne, stepTwo},
Users: []*api.User{userOne, userTwo},
Workers: []*api.Worker{workerOne, workerTwo},
}
diff --git a/database/jwk/table.go b/database/jwk/table.go
index ee5895fcb..81f8ccfc2 100644
--- a/database/jwk/table.go
+++ b/database/jwk/table.go
@@ -5,7 +5,7 @@ package jwk
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/log/count.go b/database/log/count.go
index d31c37f62..dd30fe00f 100644
--- a/database/log/count.go
+++ b/database/log/count.go
@@ -5,7 +5,7 @@ package log
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountLogs gets the count of all logs from the database.
diff --git a/database/log/count_build.go b/database/log/count_build.go
index 36cd2984f..ff6eb84fb 100644
--- a/database/log/count_build.go
+++ b/database/log/count_build.go
@@ -6,7 +6,7 @@ import (
"context"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountLogsForBuild gets the count of logs by build ID from the database.
diff --git a/database/log/create.go b/database/log/create.go
index 4d0ee3428..385bca9fd 100644
--- a/database/log/create.go
+++ b/database/log/create.go
@@ -7,7 +7,7 @@ import (
"context"
"fmt"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
diff --git a/database/log/delete.go b/database/log/delete.go
index 394321159..1ee187bbc 100644
--- a/database/log/delete.go
+++ b/database/log/delete.go
@@ -5,7 +5,7 @@ package log
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
diff --git a/database/log/get.go b/database/log/get.go
index cf66dbfd7..19f78f0dc 100644
--- a/database/log/get.go
+++ b/database/log/get.go
@@ -5,7 +5,7 @@ package log
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
diff --git a/database/log/get_service.go b/database/log/get_service.go
index ad4156a8d..2fd0f6c40 100644
--- a/database/log/get_service.go
+++ b/database/log/get_service.go
@@ -6,13 +6,14 @@ package log
import (
"context"
- "github.com/go-vela/types/constants"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
// GetLogForService gets a log by service ID from the database.
-func (e *engine) GetLogForService(ctx context.Context, s *library.Service) (*library.Log, error) {
+func (e *engine) GetLogForService(ctx context.Context, s *api.Service) (*library.Log, error) {
e.logger.Tracef("getting log for service %d for build %d", s.GetID(), s.GetBuildID())
// variable to store query results
diff --git a/database/log/get_step.go b/database/log/get_step.go
index 6d0084712..526023b51 100644
--- a/database/log/get_step.go
+++ b/database/log/get_step.go
@@ -6,13 +6,14 @@ package log
import (
"context"
- "github.com/go-vela/types/constants"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
// GetLogForStep gets a log by step ID from the database.
-func (e *engine) GetLogForStep(ctx context.Context, s *library.Step) (*library.Log, error) {
+func (e *engine) GetLogForStep(ctx context.Context, s *api.Step) (*library.Log, error) {
e.logger.Tracef("getting log for step %d for build %d", s.GetID(), s.GetBuildID())
// variable to store query results
diff --git a/database/log/interface.go b/database/log/interface.go
index 97ace05c6..4cd0bdabf 100644
--- a/database/log/interface.go
+++ b/database/log/interface.go
@@ -38,9 +38,9 @@ type LogInterface interface {
// GetLog defines a function that gets a log by ID.
GetLog(context.Context, int64) (*library.Log, error)
// GetLogForService defines a function that gets a log by service ID.
- GetLogForService(context.Context, *library.Service) (*library.Log, error)
+ GetLogForService(context.Context, *api.Service) (*library.Log, error)
// GetLogForStep defines a function that gets a log by step ID.
- GetLogForStep(context.Context, *library.Step) (*library.Log, error)
+ GetLogForStep(context.Context, *api.Step) (*library.Log, error)
// ListLogs defines a function that gets a list of all logs.
ListLogs(context.Context) ([]*library.Log, error)
// ListLogsForBuild defines a function that gets a list of logs by build ID.
diff --git a/database/log/list.go b/database/log/list.go
index ed6ecdcb7..34a57db4a 100644
--- a/database/log/list.go
+++ b/database/log/list.go
@@ -5,7 +5,7 @@ package log
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
diff --git a/database/log/list_build.go b/database/log/list_build.go
index f27798b78..c5013d17c 100644
--- a/database/log/list_build.go
+++ b/database/log/list_build.go
@@ -6,7 +6,7 @@ import (
"context"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
diff --git a/database/log/log.go b/database/log/log.go
index e95dc6d04..f990eff40 100644
--- a/database/log/log.go
+++ b/database/log/log.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/log/table.go b/database/log/table.go
index fbf74cd28..6ac0e53f9 100644
--- a/database/log/table.go
+++ b/database/log/table.go
@@ -5,7 +5,7 @@ package log
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/log/update.go b/database/log/update.go
index ae9819e4a..13a65d4ee 100644
--- a/database/log/update.go
+++ b/database/log/update.go
@@ -7,7 +7,7 @@ import (
"context"
"fmt"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types/database"
"github.com/go-vela/types/library"
)
diff --git a/database/pipeline/count.go b/database/pipeline/count.go
index 818982b52..b7f3d83f7 100644
--- a/database/pipeline/count.go
+++ b/database/pipeline/count.go
@@ -5,7 +5,7 @@ package pipeline
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountPipelines gets the count of all pipelines from the database.
diff --git a/database/pipeline/count_repo.go b/database/pipeline/count_repo.go
index 147ae552b..3c174e340 100644
--- a/database/pipeline/count_repo.go
+++ b/database/pipeline/count_repo.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountPipelinesForRepo gets the count of pipelines by repo ID from the database.
diff --git a/database/pipeline/create.go b/database/pipeline/create.go
index d6ce01cd0..032742533 100644
--- a/database/pipeline/create.go
+++ b/database/pipeline/create.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// CreatePipeline creates a new pipeline in the database.
diff --git a/database/pipeline/delete.go b/database/pipeline/delete.go
index ecd87611e..fb9ad8407 100644
--- a/database/pipeline/delete.go
+++ b/database/pipeline/delete.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// DeletePipeline deletes an existing pipeline from the database.
diff --git a/database/pipeline/get.go b/database/pipeline/get.go
index 0721ba36d..e7d570ece 100644
--- a/database/pipeline/get.go
+++ b/database/pipeline/get.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetPipeline gets a pipeline by ID from the database.
diff --git a/database/pipeline/get_repo.go b/database/pipeline/get_repo.go
index b84c320f3..5da0f9281 100644
--- a/database/pipeline/get_repo.go
+++ b/database/pipeline/get_repo.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetPipelineForRepo gets a pipeline by number and repo ID from the database.
diff --git a/database/pipeline/list.go b/database/pipeline/list.go
index e288965bd..85e39a3cd 100644
--- a/database/pipeline/list.go
+++ b/database/pipeline/list.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListPipelines gets a list of all pipelines from the database.
diff --git a/database/pipeline/list_repo.go b/database/pipeline/list_repo.go
index 5476cd925..cc179febe 100644
--- a/database/pipeline/list_repo.go
+++ b/database/pipeline/list_repo.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListPipelinesForRepo gets a list of pipelines by repo ID from the database.
diff --git a/database/pipeline/pipeline.go b/database/pipeline/pipeline.go
index 433f9d2fc..18beb9cf8 100644
--- a/database/pipeline/pipeline.go
+++ b/database/pipeline/pipeline.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/pipeline/table.go b/database/pipeline/table.go
index 919b1b652..4bd874c83 100644
--- a/database/pipeline/table.go
+++ b/database/pipeline/table.go
@@ -5,7 +5,7 @@ package pipeline
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/pipeline/update.go b/database/pipeline/update.go
index 23251f1a1..66eecaefa 100644
--- a/database/pipeline/update.go
+++ b/database/pipeline/update.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// UpdatePipeline updates an existing pipeline in the database.
diff --git a/database/repo/count.go b/database/repo/count.go
index 6db509b06..585b2417b 100644
--- a/database/repo/count.go
+++ b/database/repo/count.go
@@ -5,7 +5,7 @@ package repo
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountRepos gets the count of all repos from the database.
diff --git a/database/repo/count_org.go b/database/repo/count_org.go
index 915a0d9a7..cb5c53868 100644
--- a/database/repo/count_org.go
+++ b/database/repo/count_org.go
@@ -7,7 +7,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountReposForOrg gets the count of repos by org name from the database.
diff --git a/database/repo/count_user.go b/database/repo/count_user.go
index 57f3ecb3c..7fd8c212d 100644
--- a/database/repo/count_user.go
+++ b/database/repo/count_user.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountReposForUser gets the count of repos by user ID from the database.
diff --git a/database/repo/create.go b/database/repo/create.go
index 7500b4101..618ff3a2c 100644
--- a/database/repo/create.go
+++ b/database/repo/create.go
@@ -10,8 +10,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// CreateRepo creates a new repo in the database.
diff --git a/database/repo/delete.go b/database/repo/delete.go
index cfd6dffa3..ad0ac6299 100644
--- a/database/repo/delete.go
+++ b/database/repo/delete.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// DeleteRepo deletes an existing repo from the database.
diff --git a/database/repo/get.go b/database/repo/get.go
index 15a301290..f1b80f30b 100644
--- a/database/repo/get.go
+++ b/database/repo/get.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetRepo gets a repo by ID from the database.
diff --git a/database/repo/get_org.go b/database/repo/get_org.go
index 38b32d4ca..368832eb5 100644
--- a/database/repo/get_org.go
+++ b/database/repo/get_org.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetRepoForOrg gets a repo by org and repo name from the database.
diff --git a/database/repo/get_org_test.go b/database/repo/get_org_test.go
index 1570398c0..ed912ca1f 100644
--- a/database/repo/get_org_test.go
+++ b/database/repo/get_org_test.go
@@ -10,9 +10,9 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestRepo_Engine_GetRepoForOrg(t *testing.T) {
diff --git a/database/repo/get_test.go b/database/repo/get_test.go
index bab82c6f3..720f9bf07 100644
--- a/database/repo/get_test.go
+++ b/database/repo/get_test.go
@@ -10,9 +10,9 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestRepo_Engine_GetRepo(t *testing.T) {
diff --git a/database/repo/list.go b/database/repo/list.go
index 980044d97..84e5c5c95 100644
--- a/database/repo/list.go
+++ b/database/repo/list.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListRepos gets a list of all repos from the database.
diff --git a/database/repo/list_org.go b/database/repo/list_org.go
index 1b39feea8..b390192d4 100644
--- a/database/repo/list_org.go
+++ b/database/repo/list_org.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListReposForOrg gets a list of repos by org name from the database.
diff --git a/database/repo/list_org_test.go b/database/repo/list_org_test.go
index 9a7bb5aa6..9aad55864 100644
--- a/database/repo/list_org_test.go
+++ b/database/repo/list_org_test.go
@@ -11,9 +11,9 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestRepo_Engine_ListReposForOrg(t *testing.T) {
diff --git a/database/repo/list_test.go b/database/repo/list_test.go
index a4f40dcbe..176d70369 100644
--- a/database/repo/list_test.go
+++ b/database/repo/list_test.go
@@ -10,9 +10,9 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestRepo_Engine_ListRepos(t *testing.T) {
diff --git a/database/repo/list_user.go b/database/repo/list_user.go
index 997fe15f4..c32d5d05e 100644
--- a/database/repo/list_user.go
+++ b/database/repo/list_user.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListReposForUser gets a list of repos by user ID from the database.
diff --git a/database/repo/list_user_test.go b/database/repo/list_user_test.go
index 49261c95e..5b9fda28a 100644
--- a/database/repo/list_user_test.go
+++ b/database/repo/list_user_test.go
@@ -11,9 +11,9 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestRepo_Engine_ListReposForUser(t *testing.T) {
diff --git a/database/repo/repo.go b/database/repo/repo.go
index 2a915192f..55e47587b 100644
--- a/database/repo/repo.go
+++ b/database/repo/repo.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/repo/table.go b/database/repo/table.go
index 0b16bae94..f49c26933 100644
--- a/database/repo/table.go
+++ b/database/repo/table.go
@@ -5,7 +5,7 @@ package repo
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/repo/update.go b/database/repo/update.go
index 05af67470..1e4fe88fa 100644
--- a/database/repo/update.go
+++ b/database/repo/update.go
@@ -10,8 +10,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// UpdateRepo updates an existing repo in the database.
diff --git a/database/repo/update_test.go b/database/repo/update_test.go
index e175a349a..a447d6973 100644
--- a/database/repo/update_test.go
+++ b/database/repo/update_test.go
@@ -10,8 +10,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestRepo_Engine_UpdateRepo(t *testing.T) {
diff --git a/database/schedule/count.go b/database/schedule/count.go
index e199e8ed0..e55ef0175 100644
--- a/database/schedule/count.go
+++ b/database/schedule/count.go
@@ -5,7 +5,7 @@ package schedule
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountSchedules gets the count of all schedules from the database.
diff --git a/database/schedule/count_active.go b/database/schedule/count_active.go
index 5aa6e7209..5f8197e28 100644
--- a/database/schedule/count_active.go
+++ b/database/schedule/count_active.go
@@ -5,7 +5,7 @@ package schedule
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountActiveSchedules gets the count of all active schedules from the database.
diff --git a/database/schedule/count_active_test.go b/database/schedule/count_active_test.go
index a94af19c6..5cb6efb4f 100644
--- a/database/schedule/count_active_test.go
+++ b/database/schedule/count_active_test.go
@@ -12,8 +12,8 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_CountActiveSchedules(t *testing.T) {
diff --git a/database/schedule/count_repo.go b/database/schedule/count_repo.go
index 41246b800..79b4eef98 100644
--- a/database/schedule/count_repo.go
+++ b/database/schedule/count_repo.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountSchedulesForRepo gets the count of schedules by repo ID from the database.
diff --git a/database/schedule/count_repo_test.go b/database/schedule/count_repo_test.go
index 2b95abd10..847b341cc 100644
--- a/database/schedule/count_repo_test.go
+++ b/database/schedule/count_repo_test.go
@@ -12,8 +12,8 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_CountSchedulesForRepo(t *testing.T) {
diff --git a/database/schedule/count_test.go b/database/schedule/count_test.go
index 13be42a30..df58cdd45 100644
--- a/database/schedule/count_test.go
+++ b/database/schedule/count_test.go
@@ -12,8 +12,8 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_CountSchedules(t *testing.T) {
diff --git a/database/schedule/create.go b/database/schedule/create.go
index 891237c26..ac2ded2b2 100644
--- a/database/schedule/create.go
+++ b/database/schedule/create.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// CreateSchedule creates a new schedule in the database.
diff --git a/database/schedule/create_test.go b/database/schedule/create_test.go
index ac028099e..cb29cd8aa 100644
--- a/database/schedule/create_test.go
+++ b/database/schedule/create_test.go
@@ -12,8 +12,8 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_CreateSchedule(t *testing.T) {
diff --git a/database/schedule/delete.go b/database/schedule/delete.go
index 8f28c1173..6ce7db101 100644
--- a/database/schedule/delete.go
+++ b/database/schedule/delete.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// DeleteSchedule deletes an existing schedule from the database.
diff --git a/database/schedule/delete_test.go b/database/schedule/delete_test.go
index 971377d92..ca7351863 100644
--- a/database/schedule/delete_test.go
+++ b/database/schedule/delete_test.go
@@ -11,8 +11,8 @@ import (
"github.com/adhocore/gronx"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_DeleteSchedule(t *testing.T) {
diff --git a/database/schedule/get.go b/database/schedule/get.go
index 887d4e002..db02cb521 100644
--- a/database/schedule/get.go
+++ b/database/schedule/get.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetSchedule gets a schedule by ID from the database.
diff --git a/database/schedule/get_repo.go b/database/schedule/get_repo.go
index 8f0cff429..6602ea5a8 100644
--- a/database/schedule/get_repo.go
+++ b/database/schedule/get_repo.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetScheduleForRepo gets a schedule by repo ID and name from the database.
diff --git a/database/schedule/get_repo_test.go b/database/schedule/get_repo_test.go
index 346119b3b..07f49bcf3 100644
--- a/database/schedule/get_repo_test.go
+++ b/database/schedule/get_repo_test.go
@@ -12,8 +12,8 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_GetScheduleForRepo(t *testing.T) {
diff --git a/database/schedule/get_test.go b/database/schedule/get_test.go
index 5d6f44fca..88ad9df3c 100644
--- a/database/schedule/get_test.go
+++ b/database/schedule/get_test.go
@@ -12,9 +12,9 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_GetSchedule(t *testing.T) {
diff --git a/database/schedule/list.go b/database/schedule/list.go
index 44f548352..53e3c6361 100644
--- a/database/schedule/list.go
+++ b/database/schedule/list.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListSchedules gets a list of all schedules from the database.
diff --git a/database/schedule/list_active.go b/database/schedule/list_active.go
index 8952de929..665682e2c 100644
--- a/database/schedule/list_active.go
+++ b/database/schedule/list_active.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListActiveSchedules gets a list of all active schedules from the database.
diff --git a/database/schedule/list_active_test.go b/database/schedule/list_active_test.go
index 385cdf595..d015f0e38 100644
--- a/database/schedule/list_active_test.go
+++ b/database/schedule/list_active_test.go
@@ -12,9 +12,9 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_ListActiveSchedules(t *testing.T) {
diff --git a/database/schedule/list_repo.go b/database/schedule/list_repo.go
index 766e5e1c0..2f23d985d 100644
--- a/database/schedule/list_repo.go
+++ b/database/schedule/list_repo.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListSchedulesForRepo gets a list of schedules by repo ID from the database.
diff --git a/database/schedule/list_repo_test.go b/database/schedule/list_repo_test.go
index d73107f6e..a1b8f7131 100644
--- a/database/schedule/list_repo_test.go
+++ b/database/schedule/list_repo_test.go
@@ -12,8 +12,8 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_ListSchedulesForRepo(t *testing.T) {
diff --git a/database/schedule/list_test.go b/database/schedule/list_test.go
index b699a12c4..5d8b5d738 100644
--- a/database/schedule/list_test.go
+++ b/database/schedule/list_test.go
@@ -12,9 +12,9 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_ListSchedules(t *testing.T) {
diff --git a/database/schedule/schedule.go b/database/schedule/schedule.go
index b7a83b2dd..66d345f1d 100644
--- a/database/schedule/schedule.go
+++ b/database/schedule/schedule.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/schedule/table.go b/database/schedule/table.go
index 86eda10bc..c6db79c4a 100644
--- a/database/schedule/table.go
+++ b/database/schedule/table.go
@@ -5,7 +5,7 @@ package schedule
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/schedule/update.go b/database/schedule/update.go
index d2f9cbf33..8ff3c478c 100644
--- a/database/schedule/update.go
+++ b/database/schedule/update.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// UpdateSchedule updates an existing schedule in the database.
diff --git a/database/schedule/update_test.go b/database/schedule/update_test.go
index c936b2ab1..bcf675edb 100644
--- a/database/schedule/update_test.go
+++ b/database/schedule/update_test.go
@@ -12,8 +12,8 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSchedule_Engine_UpdateSchedule_Config(t *testing.T) {
diff --git a/database/secret/count.go b/database/secret/count.go
index 2b9b36ad0..0af09e015 100644
--- a/database/secret/count.go
+++ b/database/secret/count.go
@@ -5,7 +5,7 @@ package secret
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountSecrets gets the count of all secrets from the database.
diff --git a/database/secret/count_org.go b/database/secret/count_org.go
index 85fb17624..ecea526c1 100644
--- a/database/secret/count_org.go
+++ b/database/secret/count_org.go
@@ -7,7 +7,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountSecretsForOrg gets the count of secrets by org name from the database.
diff --git a/database/secret/count_org_test.go b/database/secret/count_org_test.go
index 315862543..bcad30bc0 100644
--- a/database/secret/count_org_test.go
+++ b/database/secret/count_org_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSecret_Engine_CountSecretsForOrg(t *testing.T) {
diff --git a/database/secret/count_repo.go b/database/secret/count_repo.go
index 6430f7fe9..08772e47f 100644
--- a/database/secret/count_repo.go
+++ b/database/secret/count_repo.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountSecretsForRepo gets the count of secrets by org and repo name from the database.
diff --git a/database/secret/count_repo_test.go b/database/secret/count_repo_test.go
index 41fa3f8a5..fad58a926 100644
--- a/database/secret/count_repo_test.go
+++ b/database/secret/count_repo_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSecret_Engine_CountSecretsForRepo(t *testing.T) {
diff --git a/database/secret/count_team.go b/database/secret/count_team.go
index af158dcbc..03346756d 100644
--- a/database/secret/count_team.go
+++ b/database/secret/count_team.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountSecretsForTeam gets the count of secrets by org and team name from the database.
diff --git a/database/secret/count_team_test.go b/database/secret/count_team_test.go
index f38cbbd3b..316510b43 100644
--- a/database/secret/count_team_test.go
+++ b/database/secret/count_team_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSecret_Engine_CountSecretsForTeam(t *testing.T) {
diff --git a/database/secret/count_test.go b/database/secret/count_test.go
index 87b1d5662..5ae0944c4 100644
--- a/database/secret/count_test.go
+++ b/database/secret/count_test.go
@@ -8,6 +8,7 @@ import (
"testing"
"github.com/DATA-DOG/go-sqlmock"
+
"github.com/go-vela/server/database/testutils"
)
diff --git a/database/secret/create.go b/database/secret/create.go
index ec38cc748..c0ac65dc7 100644
--- a/database/secret/create.go
+++ b/database/secret/create.go
@@ -10,8 +10,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// CreateSecret creates a new secret in the database.
diff --git a/database/secret/delete.go b/database/secret/delete.go
index 309a0cf61..59c781237 100644
--- a/database/secret/delete.go
+++ b/database/secret/delete.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// DeleteSecret deletes an existing secret from the database.
diff --git a/database/secret/get.go b/database/secret/get.go
index c43cf2bb2..7b546a035 100644
--- a/database/secret/get.go
+++ b/database/secret/get.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetSecret gets a secret by ID from the database.
diff --git a/database/secret/get_org.go b/database/secret/get_org.go
index ee4c3391c..9782391b0 100644
--- a/database/secret/get_org.go
+++ b/database/secret/get_org.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetSecretForOrg gets a secret by org name from the database.
diff --git a/database/secret/get_org_test.go b/database/secret/get_org_test.go
index 5261c49f5..71298a4ab 100644
--- a/database/secret/get_org_test.go
+++ b/database/secret/get_org_test.go
@@ -10,8 +10,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSecret_Engine_GetSecretForOrg(t *testing.T) {
diff --git a/database/secret/get_repo.go b/database/secret/get_repo.go
index b22264482..dc83a60fa 100644
--- a/database/secret/get_repo.go
+++ b/database/secret/get_repo.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetSecretForRepo gets a secret by org and repo name from the database.
diff --git a/database/secret/get_repo_test.go b/database/secret/get_repo_test.go
index e9ccb8550..f2ab5b8ef 100644
--- a/database/secret/get_repo_test.go
+++ b/database/secret/get_repo_test.go
@@ -10,8 +10,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSecret_Engine_GetSecretForRepo(t *testing.T) {
diff --git a/database/secret/get_team.go b/database/secret/get_team.go
index 6c4a0f285..baae49f70 100644
--- a/database/secret/get_team.go
+++ b/database/secret/get_team.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetSecretForTeam gets a secret by org and team name from the database.
diff --git a/database/secret/get_team_test.go b/database/secret/get_team_test.go
index 1b2cf0777..757f0ed39 100644
--- a/database/secret/get_team_test.go
+++ b/database/secret/get_team_test.go
@@ -10,8 +10,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSecret_Engine_GetSecretForTeam(t *testing.T) {
diff --git a/database/secret/list.go b/database/secret/list.go
index 876f90281..0f11b750f 100644
--- a/database/secret/list.go
+++ b/database/secret/list.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListSecrets gets a list of all secrets from the database.
diff --git a/database/secret/list_org.go b/database/secret/list_org.go
index b02a466c6..a32ddda34 100644
--- a/database/secret/list_org.go
+++ b/database/secret/list_org.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListSecretsForOrg gets a list of secrets by org name from the database.
diff --git a/database/secret/list_org_test.go b/database/secret/list_org_test.go
index a4da8ab07..f5a274679 100644
--- a/database/secret/list_org_test.go
+++ b/database/secret/list_org_test.go
@@ -10,8 +10,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSecret_Engine_ListSecretsForOrg(t *testing.T) {
diff --git a/database/secret/list_repo.go b/database/secret/list_repo.go
index 8b69b6a17..59520ea12 100644
--- a/database/secret/list_repo.go
+++ b/database/secret/list_repo.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListSecretsForRepo gets a list of secrets by org name from the database.
diff --git a/database/secret/list_repo_test.go b/database/secret/list_repo_test.go
index aa0b6df0f..685cc52bb 100644
--- a/database/secret/list_repo_test.go
+++ b/database/secret/list_repo_test.go
@@ -10,8 +10,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSecret_Engine_ListSecretsForRepo(t *testing.T) {
diff --git a/database/secret/list_team.go b/database/secret/list_team.go
index 16787a2e7..ae56a3da4 100644
--- a/database/secret/list_team.go
+++ b/database/secret/list_team.go
@@ -9,8 +9,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListSecretsForTeam gets a list of secrets by org and team name from the database.
diff --git a/database/secret/list_team_test.go b/database/secret/list_team_test.go
index f49c206a8..382f6864c 100644
--- a/database/secret/list_team_test.go
+++ b/database/secret/list_team_test.go
@@ -10,8 +10,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestSecret_Engine_ListSecretsForTeam(t *testing.T) {
diff --git a/database/secret/secret.go b/database/secret/secret.go
index 4a7c772e8..b0119503f 100644
--- a/database/secret/secret.go
+++ b/database/secret/secret.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/secret/table.go b/database/secret/table.go
index 650a3f3f4..f521459a2 100644
--- a/database/secret/table.go
+++ b/database/secret/table.go
@@ -5,7 +5,7 @@ package secret
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/secret/update.go b/database/secret/update.go
index e88c9fc54..d512e7e33 100644
--- a/database/secret/update.go
+++ b/database/secret/update.go
@@ -10,8 +10,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// UpdateSecret updates an existing secret in the database.
diff --git a/database/service/clean.go b/database/service/clean.go
index d234b4478..ac3bce1be 100644
--- a/database/service/clean.go
+++ b/database/service/clean.go
@@ -8,21 +8,21 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// CleanServices updates services to an error with a created timestamp prior to a defined moment.
func (e *engine) CleanServices(ctx context.Context, msg string, before int64) (int64, error) {
logrus.Tracef("cleaning pending or running steps in the database created prior to %d", before)
- s := new(library.Service)
+ s := new(api.Service)
s.SetStatus(constants.StatusError)
s.SetError(msg)
s.SetFinished(time.Now().UTC().Unix())
- service := database.ServiceFromLibrary(s)
+ service := types.ServiceFromAPI(s)
// send query to the database
result := e.client.
diff --git a/database/service/count.go b/database/service/count.go
index 86e76cfe2..dabefecc2 100644
--- a/database/service/count.go
+++ b/database/service/count.go
@@ -5,7 +5,7 @@ package service
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountServices gets the count of all services from the database.
diff --git a/database/service/count_build.go b/database/service/count_build.go
index 0f00403e2..0bf016e6e 100644
--- a/database/service/count_build.go
+++ b/database/service/count_build.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountServicesForBuild gets the count of services by build ID from the database.
diff --git a/database/service/create.go b/database/service/create.go
index 3ecb96e04..dfe32683b 100644
--- a/database/service/create.go
+++ b/database/service/create.go
@@ -7,25 +7,19 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// CreateService creates a new service in the database.
-func (e *engine) CreateService(ctx context.Context, s *library.Service) (*library.Service, error) {
+func (e *engine) CreateService(ctx context.Context, s *api.Service) (*api.Service, error) {
e.logger.WithFields(logrus.Fields{
"service": s.GetNumber(),
}).Tracef("creating service %s in the database", s.GetName())
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#ServiceFromLibrary
- service := database.ServiceFromLibrary(s)
+ service := types.ServiceFromAPI(s)
- // validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Service.Validate
err := service.Validate()
if err != nil {
return nil, err
@@ -37,5 +31,5 @@ func (e *engine) CreateService(ctx context.Context, s *library.Service) (*librar
Table(constants.TableService).
Create(service)
- return service.ToLibrary(), result.Error
+ return service.ToAPI(), result.Error
}
diff --git a/database/service/delete.go b/database/service/delete.go
index 835a25992..3fd77c9c7 100644
--- a/database/service/delete.go
+++ b/database/service/delete.go
@@ -7,21 +7,18 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// DeleteService deletes an existing service from the database.
-func (e *engine) DeleteService(ctx context.Context, s *library.Service) error {
+func (e *engine) DeleteService(ctx context.Context, s *api.Service) error {
e.logger.WithFields(logrus.Fields{
"service": s.GetNumber(),
}).Tracef("deleting service %s", s.GetName())
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#ServiceFromLibrary
- service := database.ServiceFromLibrary(s)
+ service := types.ServiceFromAPI(s)
// send query to the database
return e.client.
diff --git a/database/service/get.go b/database/service/get.go
index 37cf9a5d0..fc5697405 100644
--- a/database/service/get.go
+++ b/database/service/get.go
@@ -5,17 +5,17 @@ package service
import (
"context"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// GetService gets a service by ID from the database.
-func (e *engine) GetService(ctx context.Context, id int64) (*library.Service, error) {
+func (e *engine) GetService(ctx context.Context, id int64) (*api.Service, error) {
e.logger.Tracef("getting service %d", id)
// variable to store query results
- s := new(database.Service)
+ s := new(types.Service)
// send query to the database and store result in variable
err := e.client.
@@ -28,8 +28,5 @@ func (e *engine) GetService(ctx context.Context, id int64) (*library.Service, er
return nil, err
}
- // return the service
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Service.ToLibrary
- return s.ToLibrary(), nil
+ return s.ToAPI(), nil
}
diff --git a/database/service/get_build.go b/database/service/get_build.go
index e85ddc368..b6a77915d 100644
--- a/database/service/get_build.go
+++ b/database/service/get_build.go
@@ -8,20 +8,19 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// GetServiceForBuild gets a service by number and build ID from the database.
-func (e *engine) GetServiceForBuild(ctx context.Context, b *api.Build, number int) (*library.Service, error) {
+func (e *engine) GetServiceForBuild(ctx context.Context, b *api.Build, number int) (*api.Service, error) {
e.logger.WithFields(logrus.Fields{
"build": b.GetNumber(),
"service": number,
}).Tracef("getting service %d", number)
// variable to store query results
- s := new(database.Service)
+ s := new(types.Service)
// send query to the database and store result in variable
err := e.client.
@@ -35,8 +34,5 @@ func (e *engine) GetServiceForBuild(ctx context.Context, b *api.Build, number in
return nil, err
}
- // return the service
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Service.ToLibrary
- return s.ToLibrary(), nil
+ return s.ToAPI(), nil
}
diff --git a/database/service/get_build_test.go b/database/service/get_build_test.go
index da26e4ce9..8afa50390 100644
--- a/database/service/get_build_test.go
+++ b/database/service/get_build_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestService_Engine_GetServiceForBuild(t *testing.T) {
@@ -52,7 +52,7 @@ func TestService_Engine_GetServiceForBuild(t *testing.T) {
failure bool
name string
database *engine
- want *library.Service
+ want *api.Service
}{
{
failure: false,
diff --git a/database/service/get_test.go b/database/service/get_test.go
index 612811eed..a07d26c43 100644
--- a/database/service/get_test.go
+++ b/database/service/get_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestService_Engine_GetService(t *testing.T) {
@@ -47,7 +47,7 @@ func TestService_Engine_GetService(t *testing.T) {
failure bool
name string
database *engine
- want *library.Service
+ want *api.Service
}{
{
failure: false,
diff --git a/database/service/interface.go b/database/service/interface.go
index 40fc30293..161103d26 100644
--- a/database/service/interface.go
+++ b/database/service/interface.go
@@ -6,7 +6,6 @@ import (
"context"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/library"
)
// ServiceInterface represents the Vela interface for service
@@ -32,21 +31,21 @@ type ServiceInterface interface {
// CountServicesForBuild defines a function that gets the count of services by build ID.
CountServicesForBuild(context.Context, *api.Build, map[string]interface{}) (int64, error)
// CreateService defines a function that creates a new service.
- CreateService(context.Context, *library.Service) (*library.Service, error)
+ CreateService(context.Context, *api.Service) (*api.Service, error)
// DeleteService defines a function that deletes an existing service.
- DeleteService(context.Context, *library.Service) error
+ DeleteService(context.Context, *api.Service) error
// GetService defines a function that gets a service by ID.
- GetService(context.Context, int64) (*library.Service, error)
+ GetService(context.Context, int64) (*api.Service, error)
// GetServiceForBuild defines a function that gets a service by number and build ID.
- GetServiceForBuild(context.Context, *api.Build, int) (*library.Service, error)
+ GetServiceForBuild(context.Context, *api.Build, int) (*api.Service, error)
// ListServices defines a function that gets a list of all services.
- ListServices(context.Context) ([]*library.Service, error)
+ ListServices(context.Context) ([]*api.Service, error)
// ListServicesForBuild defines a function that gets a list of services by build ID.
- ListServicesForBuild(context.Context, *api.Build, map[string]interface{}, int, int) ([]*library.Service, int64, error)
+ ListServicesForBuild(context.Context, *api.Build, map[string]interface{}, int, int) ([]*api.Service, int64, error)
// ListServiceImageCount defines a function that gets a list of all service images and the count of their occurrence.
ListServiceImageCount(context.Context) (map[string]float64, error)
// ListServiceStatusCount defines a function that gets a list of all service statuses and the count of their occurrence.
ListServiceStatusCount(context.Context) (map[string]float64, error)
// UpdateService defines a function that updates an existing service.
- UpdateService(context.Context, *library.Service) (*library.Service, error)
+ UpdateService(context.Context, *api.Service) (*api.Service, error)
}
diff --git a/database/service/list.go b/database/service/list.go
index 6dd70fdd1..6f09c6dcd 100644
--- a/database/service/list.go
+++ b/database/service/list.go
@@ -5,19 +5,19 @@ package service
import (
"context"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// ListServices gets a list of all services from the database.
-func (e *engine) ListServices(ctx context.Context) ([]*library.Service, error) {
+func (e *engine) ListServices(ctx context.Context) ([]*api.Service, error) {
e.logger.Trace("listing all services")
// variables to store query results and return value
count := int64(0)
- w := new([]database.Service)
- services := []*library.Service{}
+ w := new([]types.Service)
+ services := []*api.Service{}
// count the results
count, err := e.CountServices(ctx)
@@ -45,10 +45,7 @@ func (e *engine) ListServices(ctx context.Context) ([]*library.Service, error) {
// https://golang.org/doc/faq#closures_and_goroutines
tmp := service
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Service.ToLibrary
- services = append(services, tmp.ToLibrary())
+ services = append(services, tmp.ToAPI())
}
return services, nil
diff --git a/database/service/list_build.go b/database/service/list_build.go
index faf8c81fb..7aa897aa4 100644
--- a/database/service/list_build.go
+++ b/database/service/list_build.go
@@ -8,21 +8,20 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// ListServicesForBuild gets a list of all services from the database.
-func (e *engine) ListServicesForBuild(ctx context.Context, b *api.Build, filters map[string]interface{}, page int, perPage int) ([]*library.Service, int64, error) {
+func (e *engine) ListServicesForBuild(ctx context.Context, b *api.Build, filters map[string]interface{}, page int, perPage int) ([]*api.Service, int64, error) {
e.logger.WithFields(logrus.Fields{
"build": b.GetNumber(),
}).Tracef("listing services for build %d", b.GetNumber())
// variables to store query results and return value
count := int64(0)
- s := new([]database.Service)
- services := []*library.Service{}
+ s := new([]types.Service)
+ services := []*api.Service{}
// count the results
count, err := e.CountServicesForBuild(ctx, b, filters)
@@ -58,10 +57,7 @@ func (e *engine) ListServicesForBuild(ctx context.Context, b *api.Build, filters
// https://golang.org/doc/faq#closures_and_goroutines
tmp := service
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Service.ToLibrary
- services = append(services, tmp.ToLibrary())
+ services = append(services, tmp.ToAPI())
}
return services, count, nil
diff --git a/database/service/list_build_test.go b/database/service/list_build_test.go
index cd09061ee..cf00dbc54 100644
--- a/database/service/list_build_test.go
+++ b/database/service/list_build_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestService_Engine_ListServicesForBuild(t *testing.T) {
@@ -72,19 +72,19 @@ func TestService_Engine_ListServicesForBuild(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Service
+ want []*api.Service
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Service{_serviceTwo, _serviceOne},
+ want: []*api.Service{_serviceTwo, _serviceOne},
},
{
failure: false,
name: "sqlite3",
database: _sqlite,
- want: []*library.Service{_serviceTwo, _serviceOne},
+ want: []*api.Service{_serviceTwo, _serviceOne},
},
}
diff --git a/database/service/list_image.go b/database/service/list_image.go
index dbff3913c..cc17ec885 100644
--- a/database/service/list_image.go
+++ b/database/service/list_image.go
@@ -6,7 +6,7 @@ import (
"context"
"database/sql"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// ListServiceImageCount gets a list of all service images and the count of their occurrence from the database.
diff --git a/database/service/list_status.go b/database/service/list_status.go
index b2570b55d..9593daa10 100644
--- a/database/service/list_status.go
+++ b/database/service/list_status.go
@@ -6,7 +6,7 @@ import (
"context"
"database/sql"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// ListServiceStatusCount gets a list of all service statuses and the count of their occurrence from the database.
diff --git a/database/service/list_test.go b/database/service/list_test.go
index 462dae56c..7b6afa58e 100644
--- a/database/service/list_test.go
+++ b/database/service/list_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestService_Engine_ListServices(t *testing.T) {
@@ -67,19 +67,19 @@ func TestService_Engine_ListServices(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Service
+ want []*api.Service
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Service{_serviceOne, _serviceTwo},
+ want: []*api.Service{_serviceOne, _serviceTwo},
},
{
failure: false,
name: "sqlite3",
database: _sqlite,
- want: []*library.Service{_serviceOne, _serviceTwo},
+ want: []*api.Service{_serviceOne, _serviceTwo},
},
}
diff --git a/database/service/service.go b/database/service/service.go
index f02f6ae6b..a35b47bd3 100644
--- a/database/service/service.go
+++ b/database/service/service.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/service/table.go b/database/service/table.go
index 426eb2333..04b9e977a 100644
--- a/database/service/table.go
+++ b/database/service/table.go
@@ -5,7 +5,7 @@ package service
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/service/update.go b/database/service/update.go
index a53b9ae41..a3e4a38e8 100644
--- a/database/service/update.go
+++ b/database/service/update.go
@@ -7,25 +7,19 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// UpdateService updates an existing service in the database.
-func (e *engine) UpdateService(ctx context.Context, s *library.Service) (*library.Service, error) {
+func (e *engine) UpdateService(ctx context.Context, s *api.Service) (*api.Service, error) {
e.logger.WithFields(logrus.Fields{
"service": s.GetNumber(),
}).Tracef("updating service %s", s.GetName())
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#ServiceFromLibrary
- service := database.ServiceFromLibrary(s)
+ service := types.ServiceFromAPI(s)
- // validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Service.Validate
err := service.Validate()
if err != nil {
return nil, err
@@ -37,5 +31,5 @@ func (e *engine) UpdateService(ctx context.Context, s *library.Service) (*librar
Table(constants.TableService).
Save(service)
- return service.ToLibrary(), result.Error
+ return service.ToAPI(), result.Error
}
diff --git a/database/settings/table.go b/database/settings/table.go
index 3eba03cfe..3c1836a55 100644
--- a/database/settings/table.go
+++ b/database/settings/table.go
@@ -5,7 +5,7 @@ package settings
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/step/clean.go b/database/step/clean.go
index b7d8cb8f6..5ce04a1ed 100644
--- a/database/step/clean.go
+++ b/database/step/clean.go
@@ -8,21 +8,21 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// CleanSteps updates steps to an error with a created timestamp prior to a defined moment.
func (e *engine) CleanSteps(ctx context.Context, msg string, before int64) (int64, error) {
logrus.Tracef("cleaning pending or running steps in the database created prior to %d", before)
- s := new(library.Step)
+ s := new(api.Step)
s.SetStatus(constants.StatusError)
s.SetError(msg)
s.SetFinished(time.Now().UTC().Unix())
- step := database.StepFromLibrary(s)
+ step := types.StepFromAPI(s)
// send query to the database
result := e.client.
diff --git a/database/step/count.go b/database/step/count.go
index bb9f0ce3a..0264283dc 100644
--- a/database/step/count.go
+++ b/database/step/count.go
@@ -5,7 +5,7 @@ package step
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountSteps gets the count of all steps from the database.
diff --git a/database/step/count_build.go b/database/step/count_build.go
index 4a0cefda5..cce1d20a7 100644
--- a/database/step/count_build.go
+++ b/database/step/count_build.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountStepsForBuild gets the count of steps by build ID from the database.
diff --git a/database/step/create.go b/database/step/create.go
index 9e46cf146..bb8b17396 100644
--- a/database/step/create.go
+++ b/database/step/create.go
@@ -7,25 +7,19 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// CreateStep creates a new step in the database.
-func (e *engine) CreateStep(ctx context.Context, s *library.Step) (*library.Step, error) {
+func (e *engine) CreateStep(ctx context.Context, s *api.Step) (*api.Step, error) {
e.logger.WithFields(logrus.Fields{
"step": s.GetNumber(),
}).Tracef("creating step %s in the database", s.GetName())
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#StepFromLibrary
- step := database.StepFromLibrary(s)
+ step := types.StepFromAPI(s)
- // validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Step.Validate
err := step.Validate()
if err != nil {
return nil, err
@@ -37,5 +31,5 @@ func (e *engine) CreateStep(ctx context.Context, s *library.Step) (*library.Step
Table(constants.TableStep).
Create(step)
- return step.ToLibrary(), result.Error
+ return step.ToAPI(), result.Error
}
diff --git a/database/step/delete.go b/database/step/delete.go
index 7c9139f6b..70c30e228 100644
--- a/database/step/delete.go
+++ b/database/step/delete.go
@@ -7,13 +7,13 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// DeleteStep deletes an existing step from the database.
-func (e *engine) DeleteStep(ctx context.Context, s *library.Step) error {
+func (e *engine) DeleteStep(ctx context.Context, s *api.Step) error {
e.logger.WithFields(logrus.Fields{
"step": s.GetNumber(),
}).Tracef("deleting step %s", s.GetName())
@@ -21,7 +21,7 @@ func (e *engine) DeleteStep(ctx context.Context, s *library.Step) error {
// cast the library type to database type
//
// https://pkg.go.dev/github.com/go-vela/types/database#StepFromLibrary
- step := database.StepFromLibrary(s)
+ step := types.StepFromAPI(s)
// send query to the database
return e.client.
diff --git a/database/step/get.go b/database/step/get.go
index a05a56fce..51a5778f7 100644
--- a/database/step/get.go
+++ b/database/step/get.go
@@ -5,17 +5,17 @@ package step
import (
"context"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// GetStep gets a step by ID from the database.
-func (e *engine) GetStep(ctx context.Context, id int64) (*library.Step, error) {
+func (e *engine) GetStep(ctx context.Context, id int64) (*api.Step, error) {
e.logger.Tracef("getting step %d", id)
// variable to store query results
- s := new(database.Step)
+ s := new(types.Step)
// send query to the database and store result in variable
err := e.client.
@@ -28,8 +28,5 @@ func (e *engine) GetStep(ctx context.Context, id int64) (*library.Step, error) {
return nil, err
}
- // return the step
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Step.ToLibrary
- return s.ToLibrary(), nil
+ return s.ToAPI(), nil
}
diff --git a/database/step/get_build.go b/database/step/get_build.go
index de847a769..0f8d495c5 100644
--- a/database/step/get_build.go
+++ b/database/step/get_build.go
@@ -8,20 +8,19 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// GetStepForBuild gets a step by number and build ID from the database.
-func (e *engine) GetStepForBuild(ctx context.Context, b *api.Build, number int) (*library.Step, error) {
+func (e *engine) GetStepForBuild(ctx context.Context, b *api.Build, number int) (*api.Step, error) {
e.logger.WithFields(logrus.Fields{
"build": b.GetNumber(),
"step": number,
}).Tracef("getting step %d", number)
// variable to store query results
- s := new(database.Step)
+ s := new(types.Step)
// send query to the database and store result in variable
err := e.client.
@@ -35,8 +34,5 @@ func (e *engine) GetStepForBuild(ctx context.Context, b *api.Build, number int)
return nil, err
}
- // return the step
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Step.ToLibrary
- return s.ToLibrary(), nil
+ return s.ToAPI(), nil
}
diff --git a/database/step/get_build_test.go b/database/step/get_build_test.go
index c5490aa58..e39ef5c6c 100644
--- a/database/step/get_build_test.go
+++ b/database/step/get_build_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
"github.com/google/go-cmp/cmp"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestStep_Engine_GetStepForBuild(t *testing.T) {
@@ -54,7 +54,7 @@ func TestStep_Engine_GetStepForBuild(t *testing.T) {
failure bool
name string
database *engine
- want *library.Step
+ want *api.Step
}{
{
failure: false,
diff --git a/database/step/get_test.go b/database/step/get_test.go
index 4c05103ea..ef5acc816 100644
--- a/database/step/get_test.go
+++ b/database/step/get_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestStep_Engine_GetStep(t *testing.T) {
@@ -49,7 +49,7 @@ func TestStep_Engine_GetStep(t *testing.T) {
failure bool
name string
database *engine
- want *library.Step
+ want *api.Step
}{
{
failure: false,
diff --git a/database/step/interface.go b/database/step/interface.go
index 6de0cc168..ef74d05ea 100644
--- a/database/step/interface.go
+++ b/database/step/interface.go
@@ -6,7 +6,6 @@ import (
"context"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/library"
)
// StepInterface represents the Vela interface for step
@@ -32,21 +31,21 @@ type StepInterface interface {
// CountStepsForBuild defines a function that gets the count of steps by build ID.
CountStepsForBuild(context.Context, *api.Build, map[string]interface{}) (int64, error)
// CreateStep defines a function that creates a new step.
- CreateStep(context.Context, *library.Step) (*library.Step, error)
+ CreateStep(context.Context, *api.Step) (*api.Step, error)
// DeleteStep defines a function that deletes an existing step.
- DeleteStep(context.Context, *library.Step) error
+ DeleteStep(context.Context, *api.Step) error
// GetStep defines a function that gets a step by ID.
- GetStep(context.Context, int64) (*library.Step, error)
+ GetStep(context.Context, int64) (*api.Step, error)
// GetStepForBuild defines a function that gets a step by number and build ID.
- GetStepForBuild(context.Context, *api.Build, int) (*library.Step, error)
+ GetStepForBuild(context.Context, *api.Build, int) (*api.Step, error)
// ListSteps defines a function that gets a list of all steps.
- ListSteps(ctx context.Context) ([]*library.Step, error)
+ ListSteps(ctx context.Context) ([]*api.Step, error)
// ListStepsForBuild defines a function that gets a list of steps by build ID.
- ListStepsForBuild(context.Context, *api.Build, map[string]interface{}, int, int) ([]*library.Step, int64, error)
+ ListStepsForBuild(context.Context, *api.Build, map[string]interface{}, int, int) ([]*api.Step, int64, error)
// ListStepImageCount defines a function that gets a list of all step images and the count of their occurrence.
ListStepImageCount(context.Context) (map[string]float64, error)
// ListStepStatusCount defines a function that gets a list of all step statuses and the count of their occurrence.
ListStepStatusCount(context.Context) (map[string]float64, error)
// UpdateStep defines a function that updates an existing step.
- UpdateStep(context.Context, *library.Step) (*library.Step, error)
+ UpdateStep(context.Context, *api.Step) (*api.Step, error)
}
diff --git a/database/step/list.go b/database/step/list.go
index 9eb72996c..3904d9efa 100644
--- a/database/step/list.go
+++ b/database/step/list.go
@@ -5,19 +5,19 @@ package step
import (
"context"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// ListSteps gets a list of all steps from the database.
-func (e *engine) ListSteps(ctx context.Context) ([]*library.Step, error) {
+func (e *engine) ListSteps(ctx context.Context) ([]*api.Step, error) {
e.logger.Trace("listing all steps")
// variables to store query results and return value
count := int64(0)
- w := new([]database.Step)
- steps := []*library.Step{}
+ w := new([]types.Step)
+ steps := []*api.Step{}
// count the results
count, err := e.CountSteps(ctx)
@@ -45,10 +45,7 @@ func (e *engine) ListSteps(ctx context.Context) ([]*library.Step, error) {
// https://golang.org/doc/faq#closures_and_goroutines
tmp := step
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Step.ToLibrary
- steps = append(steps, tmp.ToLibrary())
+ steps = append(steps, tmp.ToAPI())
}
return steps, nil
diff --git a/database/step/list_build.go b/database/step/list_build.go
index 1ba16fdb0..819156746 100644
--- a/database/step/list_build.go
+++ b/database/step/list_build.go
@@ -8,21 +8,20 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// ListStepsForBuild gets a list of all steps from the database.
-func (e *engine) ListStepsForBuild(ctx context.Context, b *api.Build, filters map[string]interface{}, page int, perPage int) ([]*library.Step, int64, error) {
+func (e *engine) ListStepsForBuild(ctx context.Context, b *api.Build, filters map[string]interface{}, page int, perPage int) ([]*api.Step, int64, error) {
e.logger.WithFields(logrus.Fields{
"build": b.GetNumber(),
}).Tracef("listing steps for build %d", b.GetNumber())
// variables to store query results and return value
count := int64(0)
- s := new([]database.Step)
- steps := []*library.Step{}
+ s := new([]types.Step)
+ steps := []*api.Step{}
// count the results
count, err := e.CountStepsForBuild(ctx, b, filters)
@@ -58,10 +57,7 @@ func (e *engine) ListStepsForBuild(ctx context.Context, b *api.Build, filters ma
// https://golang.org/doc/faq#closures_and_goroutines
tmp := step
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Step.ToLibrary
- steps = append(steps, tmp.ToLibrary())
+ steps = append(steps, tmp.ToAPI())
}
return steps, count, nil
diff --git a/database/step/list_build_test.go b/database/step/list_build_test.go
index 327076fec..4bb43b044 100644
--- a/database/step/list_build_test.go
+++ b/database/step/list_build_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestStep_Engine_ListStepsForBuild(t *testing.T) {
@@ -75,19 +75,19 @@ func TestStep_Engine_ListStepsForBuild(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Step
+ want []*api.Step
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Step{_stepTwo, _stepOne},
+ want: []*api.Step{_stepTwo, _stepOne},
},
{
failure: false,
name: "sqlite3",
database: _sqlite,
- want: []*library.Step{_stepTwo, _stepOne},
+ want: []*api.Step{_stepTwo, _stepOne},
},
}
diff --git a/database/step/list_image.go b/database/step/list_image.go
index c485ec741..3a1b5b9be 100644
--- a/database/step/list_image.go
+++ b/database/step/list_image.go
@@ -6,7 +6,7 @@ import (
"context"
"database/sql"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// ListStepImageCount gets a list of all step images and the count of their occurrence from the database.
diff --git a/database/step/list_status.go b/database/step/list_status.go
index 75c19a805..f11135e7f 100644
--- a/database/step/list_status.go
+++ b/database/step/list_status.go
@@ -6,7 +6,7 @@ import (
"context"
"database/sql"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// ListStepStatusCount gets a list of all step statuses and the count of their occurrence from the database.
diff --git a/database/step/list_test.go b/database/step/list_test.go
index 921a3f2f7..99819c59f 100644
--- a/database/step/list_test.go
+++ b/database/step/list_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestStep_Engine_ListSteps(t *testing.T) {
@@ -69,19 +69,19 @@ func TestStep_Engine_ListSteps(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Step
+ want []*api.Step
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Step{_stepOne, _stepTwo},
+ want: []*api.Step{_stepOne, _stepTwo},
},
{
failure: false,
name: "sqlite3",
database: _sqlite,
- want: []*library.Step{_stepOne, _stepTwo},
+ want: []*api.Step{_stepOne, _stepTwo},
},
}
diff --git a/database/step/step.go b/database/step/step.go
index edb3cb26e..a1465f778 100644
--- a/database/step/step.go
+++ b/database/step/step.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/step/table.go b/database/step/table.go
index c7560326d..af7431c70 100644
--- a/database/step/table.go
+++ b/database/step/table.go
@@ -5,7 +5,7 @@ package step
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/step/update.go b/database/step/update.go
index d467a2b65..524eea7f0 100644
--- a/database/step/update.go
+++ b/database/step/update.go
@@ -7,25 +7,19 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+ "github.com/go-vela/server/database/types"
)
// UpdateStep updates an existing step in the database.
-func (e *engine) UpdateStep(ctx context.Context, s *library.Step) (*library.Step, error) {
+func (e *engine) UpdateStep(ctx context.Context, s *api.Step) (*api.Step, error) {
e.logger.WithFields(logrus.Fields{
"step": s.GetNumber(),
}).Tracef("updating step %s in the database", s.GetName())
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#StepFromLibrary
- step := database.StepFromLibrary(s)
+ step := types.StepFromAPI(s)
- // validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Step.Validate
err := step.Validate()
if err != nil {
return nil, err
@@ -37,5 +31,5 @@ func (e *engine) UpdateStep(ctx context.Context, s *library.Step) (*library.Step
Table(constants.TableStep).
Save(step)
- return step.ToLibrary(), result.Error
+ return step.ToAPI(), result.Error
}
diff --git a/database/testutils/api_resources.go b/database/testutils/api_resources.go
index 28c947fc6..bb6b451a3 100644
--- a/database/testutils/api_resources.go
+++ b/database/testutils/api_resources.go
@@ -210,8 +210,8 @@ func APISecret() *api.Secret {
}
}
-func APIService() *library.Service {
- return &library.Service{
+func APIService() *api.Service {
+ return &api.Service{
ID: new(int64),
BuildID: new(int64),
RepoID: new(int64),
@@ -230,8 +230,8 @@ func APIService() *library.Service {
}
}
-func APIStep() *library.Step {
- return &library.Step{
+func APIStep() *api.Step {
+ return &api.Step{
ID: new(int64),
BuildID: new(int64),
RepoID: new(int64),
diff --git a/database/types/deployment.go b/database/types/deployment.go
index df300d6be..965c8dbc6 100644
--- a/database/types/deployment.go
+++ b/database/types/deployment.go
@@ -11,8 +11,8 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler/types/raw"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
var (
diff --git a/database/types/pipeline_test.go b/database/types/pipeline_test.go
index 63648acdf..659e3fb9c 100644
--- a/database/types/pipeline_test.go
+++ b/database/types/pipeline_test.go
@@ -8,7 +8,7 @@ import (
"testing"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestDatabase_Pipeline_Compress(t *testing.T) {
diff --git a/database/types/repo.go b/database/types/repo.go
index 584d12923..e406c0c5c 100644
--- a/database/types/repo.go
+++ b/database/types/repo.go
@@ -10,8 +10,8 @@ import (
"github.com/lib/pq"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
var (
diff --git a/database/types/repo_test.go b/database/types/repo_test.go
index d41ca7f8b..949985490 100644
--- a/database/types/repo_test.go
+++ b/database/types/repo_test.go
@@ -10,8 +10,8 @@ import (
"github.com/google/go-cmp/cmp"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestTypes_Repo_Decrypt(t *testing.T) {
diff --git a/database/types/schedule_test.go b/database/types/schedule_test.go
index aa7ad21be..10b4da233 100644
--- a/database/types/schedule_test.go
+++ b/database/types/schedule_test.go
@@ -11,8 +11,8 @@ import (
"github.com/adhocore/gronx"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/constants"
)
func TestTypes_Schedule_Nullify(t *testing.T) {
diff --git a/database/types/secret.go b/database/types/secret.go
index 8a3a7d285..1d4dc130e 100644
--- a/database/types/secret.go
+++ b/database/types/secret.go
@@ -11,8 +11,8 @@ import (
"github.com/lib/pq"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
var (
diff --git a/database/types/service.go b/database/types/service.go
new file mode 100644
index 000000000..f3b508ed6
--- /dev/null
+++ b/database/types/service.go
@@ -0,0 +1,231 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "database/sql"
+ "errors"
+
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/util"
+)
+
+var (
+ // ErrEmptyServiceBuildID defines the error type when a
+ // Service type has an empty BuildID field provided.
+ ErrEmptyServiceBuildID = errors.New("empty service build_id provided")
+
+ // ErrEmptyServiceName defines the error type when a
+ // Service type has an empty Name field provided.
+ ErrEmptyServiceName = errors.New("empty service name provided")
+
+ // ErrEmptyServiceImage defines the error type when a
+ // Service type has an empty Image field provided.
+ ErrEmptyServiceImage = errors.New("empty service image provided")
+
+ // ErrEmptyServiceNumber defines the error type when a
+ // Service type has an empty Number field provided.
+ ErrEmptyServiceNumber = errors.New("empty service number provided")
+
+ // ErrEmptyServiceRepoID defines the error type when a
+ // Service type has an empty RepoID field provided.
+ ErrEmptyServiceRepoID = errors.New("empty service repo_id provided")
+)
+
+// Service is the database representation of a service in a build.
+type Service struct {
+ ID sql.NullInt64 `sql:"id"`
+ BuildID sql.NullInt64 `sql:"build_id"`
+ RepoID sql.NullInt64 `sql:"repo_id"`
+ Number sql.NullInt32 `sql:"number"`
+ Name sql.NullString `sql:"name"`
+ Image sql.NullString `sql:"image"`
+ Status sql.NullString `sql:"status"`
+ Error sql.NullString `sql:"error"`
+ ExitCode sql.NullInt32 `sql:"exit_code"`
+ Created sql.NullInt64 `sql:"created"`
+ Started sql.NullInt64 `sql:"started"`
+ Finished sql.NullInt64 `sql:"finished"`
+ Host sql.NullString `sql:"host"`
+ Runtime sql.NullString `sql:"runtime"`
+ Distribution sql.NullString `sql:"distribution"`
+}
+
+// Nullify ensures the valid flag for
+// the sql.Null types are properly set.
+//
+// When a field within the Service type is the zero
+// value for the field, the valid flag is set to
+// false causing it to be NULL in the database.
+func (s *Service) Nullify() *Service {
+ if s == nil {
+ return nil
+ }
+
+ // check if the ID field should be false
+ if s.ID.Int64 == 0 {
+ s.ID.Valid = false
+ }
+
+ // check if the BuildID field should be false
+ if s.BuildID.Int64 == 0 {
+ s.BuildID.Valid = false
+ }
+
+ // check if the RepoID field should be false
+ if s.RepoID.Int64 == 0 {
+ s.RepoID.Valid = false
+ }
+
+ // check if the Number field should be false
+ if s.Number.Int32 == 0 {
+ s.Number.Valid = false
+ }
+
+ // check if the Name field should be false
+ if len(s.Name.String) == 0 {
+ s.Name.Valid = false
+ }
+
+ // check if the Image field should be false
+ if len(s.Image.String) == 0 {
+ s.Image.Valid = false
+ }
+
+ // check if the Status field should be false
+ if len(s.Status.String) == 0 {
+ s.Status.Valid = false
+ }
+
+ // check if the Error field should be false
+ if len(s.Error.String) == 0 {
+ s.Error.Valid = false
+ }
+
+ // check if the ExitCode field should be false
+ if s.ExitCode.Int32 == 0 {
+ s.ExitCode.Valid = false
+ }
+
+ // check if Created field should be false
+ if s.Created.Int64 == 0 {
+ s.Created.Valid = false
+ }
+
+ // check if Started field should be false
+ if s.Started.Int64 == 0 {
+ s.Started.Valid = false
+ }
+
+ // check if Finished field should be false
+ if s.Finished.Int64 == 0 {
+ s.Finished.Valid = false
+ }
+
+ // check if the Host field should be false
+ if len(s.Host.String) == 0 {
+ s.Host.Valid = false
+ }
+
+ // check if the Runtime field should be false
+ if len(s.Runtime.String) == 0 {
+ s.Runtime.Valid = false
+ }
+
+ // check if the Distribution field should be false
+ if len(s.Distribution.String) == 0 {
+ s.Distribution.Valid = false
+ }
+
+ return s
+}
+
+// ToAPI converts the Service type
+// to a API Service type.
+func (s *Service) ToAPI() *api.Service {
+ service := new(api.Service)
+
+ service.SetID(s.ID.Int64)
+ service.SetBuildID(s.BuildID.Int64)
+ service.SetRepoID(s.RepoID.Int64)
+ service.SetNumber(int(s.Number.Int32))
+ service.SetName(s.Name.String)
+ service.SetImage(s.Image.String)
+ service.SetStatus(s.Status.String)
+ service.SetError(s.Error.String)
+ service.SetExitCode(int(s.ExitCode.Int32))
+ service.SetCreated(s.Created.Int64)
+ service.SetStarted(s.Started.Int64)
+ service.SetFinished(s.Finished.Int64)
+ service.SetHost(s.Host.String)
+ service.SetRuntime(s.Runtime.String)
+ service.SetDistribution(s.Distribution.String)
+
+ return service
+}
+
+// Validate verifies the necessary fields for
+// the Service type are populated correctly.
+func (s *Service) Validate() error {
+ // verify the BuildID field is populated
+ if s.BuildID.Int64 <= 0 {
+ return ErrEmptyServiceBuildID
+ }
+
+ // verify the RepoID field is populated
+ if s.RepoID.Int64 <= 0 {
+ return ErrEmptyServiceRepoID
+ }
+
+ // verify the Number field is populated
+ if s.Number.Int32 <= 0 {
+ return ErrEmptyServiceNumber
+ }
+
+ // verify the Name field is populated
+ if len(s.Name.String) == 0 {
+ return ErrEmptyServiceName
+ }
+
+ // verify the Image field is populated
+ if len(s.Image.String) == 0 {
+ return ErrEmptyServiceImage
+ }
+
+ // ensure that all Service string fields
+ // that can be returned as JSON are sanitized
+ // to avoid unsafe HTML content
+ s.Name = sql.NullString{String: util.Sanitize(s.Name.String), Valid: s.Name.Valid}
+ s.Image = sql.NullString{String: util.Sanitize(s.Image.String), Valid: s.Image.Valid}
+ s.Status = sql.NullString{String: util.Sanitize(s.Status.String), Valid: s.Status.Valid}
+ s.Error = sql.NullString{String: util.Sanitize(s.Error.String), Valid: s.Error.Valid}
+ s.Host = sql.NullString{String: util.Sanitize(s.Host.String), Valid: s.Host.Valid}
+ s.Runtime = sql.NullString{String: util.Sanitize(s.Runtime.String), Valid: s.Runtime.Valid}
+ s.Distribution = sql.NullString{String: util.Sanitize(s.Distribution.String), Valid: s.Distribution.Valid}
+
+ return nil
+}
+
+// ServiceFromAPI converts the API Service type
+// to a database Service type.
+func ServiceFromAPI(s *api.Service) *Service {
+ service := &Service{
+ ID: sql.NullInt64{Int64: s.GetID(), Valid: true},
+ BuildID: sql.NullInt64{Int64: s.GetBuildID(), Valid: true},
+ RepoID: sql.NullInt64{Int64: s.GetRepoID(), Valid: true},
+ Number: sql.NullInt32{Int32: int32(s.GetNumber()), Valid: true},
+ Name: sql.NullString{String: s.GetName(), Valid: true},
+ Image: sql.NullString{String: s.GetImage(), Valid: true},
+ Status: sql.NullString{String: s.GetStatus(), Valid: true},
+ Error: sql.NullString{String: s.GetError(), Valid: true},
+ ExitCode: sql.NullInt32{Int32: int32(s.GetExitCode()), Valid: true},
+ Created: sql.NullInt64{Int64: s.GetCreated(), Valid: true},
+ Started: sql.NullInt64{Int64: s.GetStarted(), Valid: true},
+ Finished: sql.NullInt64{Int64: s.GetFinished(), Valid: true},
+ Host: sql.NullString{String: s.GetHost(), Valid: true},
+ Runtime: sql.NullString{String: s.GetRuntime(), Valid: true},
+ Distribution: sql.NullString{String: s.GetDistribution(), Valid: true},
+ }
+
+ return service.Nullify()
+}
diff --git a/database/types/service_test.go b/database/types/service_test.go
new file mode 100644
index 000000000..ce39d90db
--- /dev/null
+++ b/database/types/service_test.go
@@ -0,0 +1,221 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "database/sql"
+ "reflect"
+ "testing"
+
+ api "github.com/go-vela/server/api/types"
+)
+
+func TestDatabase_Service_Nullify(t *testing.T) {
+ // setup types
+ var s *Service
+
+ want := &Service{
+ ID: sql.NullInt64{Int64: 0, Valid: false},
+ BuildID: sql.NullInt64{Int64: 0, Valid: false},
+ RepoID: sql.NullInt64{Int64: 0, Valid: false},
+ Number: sql.NullInt32{Int32: 0, Valid: false},
+ Name: sql.NullString{String: "", Valid: false},
+ Image: sql.NullString{String: "", Valid: false},
+ Status: sql.NullString{String: "", Valid: false},
+ Error: sql.NullString{String: "", Valid: false},
+ ExitCode: sql.NullInt32{Int32: 0, Valid: false},
+ Created: sql.NullInt64{Int64: 0, Valid: false},
+ Started: sql.NullInt64{Int64: 0, Valid: false},
+ Finished: sql.NullInt64{Int64: 0, Valid: false},
+ Host: sql.NullString{String: "", Valid: false},
+ Runtime: sql.NullString{String: "", Valid: false},
+ Distribution: sql.NullString{String: "", Valid: false},
+ }
+
+ // setup tests
+ tests := []struct {
+ service *Service
+ want *Service
+ }{
+ {
+ service: testService(),
+ want: testService(),
+ },
+ {
+ service: s,
+ want: nil,
+ },
+ {
+ service: new(Service),
+ want: want,
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := test.service.Nullify()
+
+ if !reflect.DeepEqual(got, test.want) {
+ t.Errorf("Nullify is %v, want %v", got, test.want)
+ }
+ }
+}
+
+func TestDatabase_Service_ToAPI(t *testing.T) {
+ // setup types
+ want := new(api.Service)
+
+ want.SetID(1)
+ want.SetBuildID(1)
+ want.SetRepoID(1)
+ want.SetNumber(1)
+ want.SetName("postgres")
+ want.SetImage("postgres:12-alpine")
+ want.SetStatus("running")
+ want.SetError("")
+ want.SetExitCode(0)
+ want.SetCreated(1563474076)
+ want.SetStarted(1563474078)
+ want.SetFinished(1563474079)
+ want.SetHost("example.company.com")
+ want.SetRuntime("docker")
+ want.SetDistribution("linux")
+
+ // run test
+ got := testService().ToAPI()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("ToAPI is %v, want %v", got, want)
+ }
+}
+
+func TestDatabase_Service_Validate(t *testing.T) {
+ tests := []struct {
+ failure bool
+ service *Service
+ }{
+ {
+ failure: false,
+ service: testService(),
+ },
+ { // no build_id set for service
+ failure: true,
+ service: &Service{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ Number: sql.NullInt32{Int32: 1, Valid: true},
+ Name: sql.NullString{String: "postgres", Valid: true},
+ Image: sql.NullString{String: "postgres:12-alpine", Valid: true},
+ },
+ },
+ { // no repo_id set for service
+ failure: true,
+ service: &Service{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ Number: sql.NullInt32{Int32: 1, Valid: true},
+ Name: sql.NullString{String: "postgres", Valid: true},
+ Image: sql.NullString{String: "postgres:12-alpine", Valid: true},
+ },
+ },
+ { // no number set for service
+ failure: true,
+ service: &Service{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ Name: sql.NullString{String: "postgres", Valid: true},
+ Image: sql.NullString{String: "postgres:12-alpine", Valid: true},
+ },
+ },
+ { // no name set for service
+ failure: true,
+ service: &Service{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ Number: sql.NullInt32{Int32: 1, Valid: true},
+ Image: sql.NullString{String: "postgres:12-alpine", Valid: true},
+ },
+ },
+ { // no image set for service
+ failure: true,
+ service: &Service{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ Number: sql.NullInt32{Int32: 1, Valid: true},
+ Name: sql.NullString{String: "postgres", Valid: true},
+ },
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ err := test.service.Validate()
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Validate should have returned err")
+ }
+
+ continue
+ }
+
+ if err != nil {
+ t.Errorf("Validate returned err: %v", err)
+ }
+ }
+}
+
+func TestDatabase_ServiceFromAPI(t *testing.T) {
+ // setup types
+ s := new(api.Service)
+
+ s.SetID(1)
+ s.SetBuildID(1)
+ s.SetRepoID(1)
+ s.SetNumber(1)
+ s.SetName("postgres")
+ s.SetImage("postgres:12-alpine")
+ s.SetStatus("running")
+ s.SetError("")
+ s.SetExitCode(0)
+ s.SetCreated(1563474076)
+ s.SetStarted(1563474078)
+ s.SetFinished(1563474079)
+ s.SetHost("example.company.com")
+ s.SetRuntime("docker")
+ s.SetDistribution("linux")
+
+ want := testService()
+
+ // run test
+ got := ServiceFromAPI(s)
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("ServiceFromAPI is %v, want %v", got, want)
+ }
+}
+
+// testService is a test helper function to create a Service
+// type with all fields set to a fake value.
+func testService() *Service {
+ return &Service{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ Number: sql.NullInt32{Int32: 1, Valid: true},
+ Name: sql.NullString{String: "postgres", Valid: true},
+ Image: sql.NullString{String: "postgres:12-alpine", Valid: true},
+ Status: sql.NullString{String: "running", Valid: true},
+ Error: sql.NullString{String: "", Valid: false},
+ ExitCode: sql.NullInt32{Int32: 0, Valid: false},
+ Created: sql.NullInt64{Int64: 1563474076, Valid: true},
+ Started: sql.NullInt64{Int64: 1563474078, Valid: true},
+ Finished: sql.NullInt64{Int64: 1563474079, Valid: true},
+ Host: sql.NullString{String: "example.company.com", Valid: true},
+ Runtime: sql.NullString{String: "docker", Valid: true},
+ Distribution: sql.NullString{String: "linux", Valid: true},
+ }
+}
diff --git a/database/types/step.go b/database/types/step.go
new file mode 100644
index 000000000..4bd09c0b5
--- /dev/null
+++ b/database/types/step.go
@@ -0,0 +1,249 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "database/sql"
+ "errors"
+
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/util"
+)
+
+var (
+ // ErrEmptyStepBuildID defines the error type when a
+ // Step type has an empty BuildID field provided.
+ ErrEmptyStepBuildID = errors.New("empty step build_id provided")
+
+ // ErrEmptyStepName defines the error type when a
+ // Step type has an empty Name field provided.
+ ErrEmptyStepName = errors.New("empty step name provided")
+
+ // ErrEmptyStepImage defines the error type when a
+ // Step type has an empty Image field provided.
+ ErrEmptyStepImage = errors.New("empty step image provided")
+
+ // ErrEmptyStepNumber defines the error type when a
+ // Step type has an empty Number field provided.
+ ErrEmptyStepNumber = errors.New("empty step number provided")
+
+ // ErrEmptyStepRepoID defines the error type when a
+ // Step type has an empty RepoID field provided.
+ ErrEmptyStepRepoID = errors.New("empty step repo_id provided")
+)
+
+// Step is the database representation of a step in a build.
+type Step struct {
+ ID sql.NullInt64 `sql:"id"`
+ BuildID sql.NullInt64 `sql:"build_id"`
+ RepoID sql.NullInt64 `sql:"repo_id"`
+ Number sql.NullInt32 `sql:"number"`
+ Name sql.NullString `sql:"name"`
+ Image sql.NullString `sql:"image"`
+ Stage sql.NullString `sql:"stage"`
+ Status sql.NullString `sql:"status"`
+ Error sql.NullString `sql:"error"`
+ ExitCode sql.NullInt32 `sql:"exit_code"`
+ Created sql.NullInt64 `sql:"created"`
+ Started sql.NullInt64 `sql:"started"`
+ Finished sql.NullInt64 `sql:"finished"`
+ Host sql.NullString `sql:"host"`
+ Runtime sql.NullString `sql:"runtime"`
+ Distribution sql.NullString `sql:"distribution"`
+ ReportAs sql.NullString `sql:"report_as"`
+}
+
+// Nullify ensures the valid flag for
+// the sql.Null types are properly set.
+//
+// When a field within the Step type is the zero
+// value for the field, the valid flag is set to
+// false causing it to be NULL in the database.
+func (s *Step) Nullify() *Step {
+ if s == nil {
+ return nil
+ }
+
+ // check if the ID field should be false
+ if s.ID.Int64 == 0 {
+ s.ID.Valid = false
+ }
+
+ // check if the BuildID field should be false
+ if s.BuildID.Int64 == 0 {
+ s.BuildID.Valid = false
+ }
+
+ // check if the RepoID field should be false
+ if s.RepoID.Int64 == 0 {
+ s.RepoID.Valid = false
+ }
+
+ // check if the Number field should be false
+ if s.Number.Int32 == 0 {
+ s.Number.Valid = false
+ }
+
+ // check if the Name field should be false
+ if len(s.Name.String) == 0 {
+ s.Name.Valid = false
+ }
+
+ // check if the Image field should be false
+ if len(s.Image.String) == 0 {
+ s.Image.Valid = false
+ }
+
+ // check if the Stage field should be false
+ if len(s.Stage.String) == 0 {
+ s.Stage.Valid = false
+ }
+
+ // check if the Status field should be false
+ if len(s.Status.String) == 0 {
+ s.Status.Valid = false
+ }
+
+ // check if the Error field should be false
+ if len(s.Error.String) == 0 {
+ s.Error.Valid = false
+ }
+
+ // check if the ExitCode field should be false
+ if s.ExitCode.Int32 == 0 {
+ s.ExitCode.Valid = false
+ }
+
+ // check if Created field should be false
+ if s.Created.Int64 == 0 {
+ s.Created.Valid = false
+ }
+
+ // check if Started field should be false
+ if s.Started.Int64 == 0 {
+ s.Started.Valid = false
+ }
+
+ // check if Finished field should be false
+ if s.Finished.Int64 == 0 {
+ s.Finished.Valid = false
+ }
+
+ // check if the Host field should be false
+ if len(s.Host.String) == 0 {
+ s.Host.Valid = false
+ }
+
+ // check if the Runtime field should be false
+ if len(s.Runtime.String) == 0 {
+ s.Runtime.Valid = false
+ }
+
+ // check if the Distribution field should be false
+ if len(s.Distribution.String) == 0 {
+ s.Distribution.Valid = false
+ }
+
+ // check if the ReportAs field should be false
+ if len(s.ReportAs.String) == 0 {
+ s.ReportAs.Valid = false
+ }
+
+ return s
+}
+
+// ToAPI converts the Step type
+// to a API Step type.
+func (s *Step) ToAPI() *api.Step {
+ step := new(api.Step)
+
+ step.SetID(s.ID.Int64)
+ step.SetBuildID(s.BuildID.Int64)
+ step.SetRepoID(s.RepoID.Int64)
+ step.SetNumber(int(s.Number.Int32))
+ step.SetName(s.Name.String)
+ step.SetImage(s.Image.String)
+ step.SetStage(s.Stage.String)
+ step.SetStatus(s.Status.String)
+ step.SetError(s.Error.String)
+ step.SetExitCode(int(s.ExitCode.Int32))
+ step.SetCreated(s.Created.Int64)
+ step.SetStarted(s.Started.Int64)
+ step.SetFinished(s.Finished.Int64)
+ step.SetHost(s.Host.String)
+ step.SetRuntime(s.Runtime.String)
+ step.SetDistribution(s.Distribution.String)
+ step.SetReportAs(s.ReportAs.String)
+
+ return step
+}
+
+// Validate verifies the necessary fields for
+// the Step type are populated correctly.
+func (s *Step) Validate() error {
+ // verify the BuildID field is populated
+ if s.BuildID.Int64 <= 0 {
+ return ErrEmptyStepBuildID
+ }
+
+ // verify the RepoID field is populated
+ if s.RepoID.Int64 <= 0 {
+ return ErrEmptyStepRepoID
+ }
+
+ // verify the Number field is populated
+ if s.Number.Int32 <= 0 {
+ return ErrEmptyStepNumber
+ }
+
+ // verify the Name field is populated
+ if len(s.Name.String) == 0 {
+ return ErrEmptyStepName
+ }
+
+ // verify the Image field is populated
+ if len(s.Image.String) == 0 {
+ return ErrEmptyStepImage
+ }
+
+ // ensure that all Step string fields
+ // that can be returned as JSON are sanitized
+ // to avoid unsafe HTML content
+ s.Name = sql.NullString{String: util.Sanitize(s.Name.String), Valid: s.Name.Valid}
+ s.Image = sql.NullString{String: util.Sanitize(s.Image.String), Valid: s.Image.Valid}
+ s.Stage = sql.NullString{String: util.Sanitize(s.Stage.String), Valid: s.Stage.Valid}
+ s.Status = sql.NullString{String: util.Sanitize(s.Status.String), Valid: s.Status.Valid}
+ s.Error = sql.NullString{String: util.Sanitize(s.Error.String), Valid: s.Error.Valid}
+ s.Host = sql.NullString{String: util.Sanitize(s.Host.String), Valid: s.Host.Valid}
+ s.Runtime = sql.NullString{String: util.Sanitize(s.Runtime.String), Valid: s.Runtime.Valid}
+ s.Distribution = sql.NullString{String: util.Sanitize(s.Distribution.String), Valid: s.Distribution.Valid}
+ s.ReportAs = sql.NullString{String: util.Sanitize(s.ReportAs.String), Valid: s.ReportAs.Valid}
+
+ return nil
+}
+
+// StepFromAPI converts the API Step type
+// to a database Step type.
+func StepFromAPI(s *api.Step) *Step {
+ step := &Step{
+ ID: sql.NullInt64{Int64: s.GetID(), Valid: true},
+ BuildID: sql.NullInt64{Int64: s.GetBuildID(), Valid: true},
+ RepoID: sql.NullInt64{Int64: s.GetRepoID(), Valid: true},
+ Number: sql.NullInt32{Int32: int32(s.GetNumber()), Valid: true},
+ Name: sql.NullString{String: s.GetName(), Valid: true},
+ Image: sql.NullString{String: s.GetImage(), Valid: true},
+ Stage: sql.NullString{String: s.GetStage(), Valid: true},
+ Status: sql.NullString{String: s.GetStatus(), Valid: true},
+ Error: sql.NullString{String: s.GetError(), Valid: true},
+ ExitCode: sql.NullInt32{Int32: int32(s.GetExitCode()), Valid: true},
+ Created: sql.NullInt64{Int64: s.GetCreated(), Valid: true},
+ Started: sql.NullInt64{Int64: s.GetStarted(), Valid: true},
+ Finished: sql.NullInt64{Int64: s.GetFinished(), Valid: true},
+ Host: sql.NullString{String: s.GetHost(), Valid: true},
+ Runtime: sql.NullString{String: s.GetRuntime(), Valid: true},
+ Distribution: sql.NullString{String: s.GetDistribution(), Valid: true},
+ ReportAs: sql.NullString{String: s.GetReportAs(), Valid: true},
+ }
+
+ return step.Nullify()
+}
diff --git a/database/types/step_test.go b/database/types/step_test.go
new file mode 100644
index 000000000..6d6aa2829
--- /dev/null
+++ b/database/types/step_test.go
@@ -0,0 +1,230 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "database/sql"
+ "reflect"
+ "testing"
+
+ api "github.com/go-vela/server/api/types"
+)
+
+func TestDatabase_Step_Nullify(t *testing.T) {
+ // setup types
+ var s *Step
+
+ want := &Step{
+ ID: sql.NullInt64{Int64: 0, Valid: false},
+ BuildID: sql.NullInt64{Int64: 0, Valid: false},
+ RepoID: sql.NullInt64{Int64: 0, Valid: false},
+ Number: sql.NullInt32{Int32: 0, Valid: false},
+ Name: sql.NullString{String: "", Valid: false},
+ Image: sql.NullString{String: "", Valid: false},
+ Stage: sql.NullString{String: "", Valid: false},
+ Status: sql.NullString{String: "", Valid: false},
+ Error: sql.NullString{String: "", Valid: false},
+ ExitCode: sql.NullInt32{Int32: 0, Valid: false},
+ Created: sql.NullInt64{Int64: 0, Valid: false},
+ Started: sql.NullInt64{Int64: 0, Valid: false},
+ Finished: sql.NullInt64{Int64: 0, Valid: false},
+ Host: sql.NullString{String: "", Valid: false},
+ Runtime: sql.NullString{String: "", Valid: false},
+ Distribution: sql.NullString{String: "", Valid: false},
+ ReportAs: sql.NullString{String: "", Valid: false},
+ }
+
+ // setup tests
+ tests := []struct {
+ step *Step
+ want *Step
+ }{
+ {
+ step: testStep(),
+ want: testStep(),
+ },
+ {
+ step: s,
+ want: nil,
+ },
+ {
+ step: new(Step),
+ want: want,
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := test.step.Nullify()
+
+ if !reflect.DeepEqual(got, test.want) {
+ t.Errorf("Nullify is %v, want %v", got, test.want)
+ }
+ }
+}
+
+func TestDatabase_Step_ToAPI(t *testing.T) {
+ // setup types
+ want := new(api.Step)
+
+ want.SetID(1)
+ want.SetBuildID(1)
+ want.SetRepoID(1)
+ want.SetNumber(1)
+ want.SetName("clone")
+ want.SetImage("target/vela-git:v0.3.0")
+ want.SetStage("")
+ want.SetStatus("running")
+ want.SetError("")
+ want.SetExitCode(0)
+ want.SetCreated(1563474076)
+ want.SetStarted(1563474078)
+ want.SetFinished(1563474079)
+ want.SetHost("example.company.com")
+ want.SetRuntime("docker")
+ want.SetDistribution("linux")
+ want.SetReportAs("test")
+
+ // run test
+ got := testStep().ToAPI()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("ToLibrary is %v, want %v", got, want)
+ }
+}
+
+func TestDatabase_Step_Validate(t *testing.T) {
+ // setup types
+ tests := []struct {
+ failure bool
+ step *Step
+ }{
+ {
+ failure: false,
+ step: testStep(),
+ },
+ { // no build_id set for step
+ failure: true,
+ step: &Step{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ Number: sql.NullInt32{Int32: 1, Valid: true},
+ Name: sql.NullString{String: "clone", Valid: true},
+ Image: sql.NullString{String: "target/vela-git:v0.3.0", Valid: true},
+ },
+ },
+ { // no repo_id set for step
+ failure: true,
+ step: &Step{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ Number: sql.NullInt32{Int32: 1, Valid: true},
+ Name: sql.NullString{String: "clone", Valid: true},
+ Image: sql.NullString{String: "target/vela-git:v0.3.0", Valid: true},
+ },
+ },
+ { // no name set for step
+ failure: true,
+ step: &Step{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ Number: sql.NullInt32{Int32: 1, Valid: true},
+ Image: sql.NullString{String: "target/vela-git:v0.3.0", Valid: true},
+ },
+ },
+ { // no number set for step
+ failure: true,
+ step: &Step{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ Name: sql.NullString{String: "clone", Valid: true},
+ Image: sql.NullString{String: "target/vela-git:v0.3.0", Valid: true},
+ },
+ },
+ { // no image set for step
+ failure: true,
+ step: &Step{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ Number: sql.NullInt32{Int32: 1, Valid: true},
+ Name: sql.NullString{String: "clone", Valid: true},
+ },
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ err := test.step.Validate()
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Validate should have returned err")
+ }
+
+ continue
+ }
+
+ if err != nil {
+ t.Errorf("Validate returned err: %v", err)
+ }
+ }
+}
+
+func TestDatabase_StepFromAPI(t *testing.T) {
+ // setup types
+ s := new(api.Step)
+
+ s.SetID(1)
+ s.SetBuildID(1)
+ s.SetRepoID(1)
+ s.SetNumber(1)
+ s.SetName("clone")
+ s.SetImage("target/vela-git:v0.3.0")
+ s.SetStage("")
+ s.SetStatus("running")
+ s.SetError("")
+ s.SetExitCode(0)
+ s.SetCreated(1563474076)
+ s.SetStarted(1563474078)
+ s.SetFinished(1563474079)
+ s.SetHost("example.company.com")
+ s.SetRuntime("docker")
+ s.SetDistribution("linux")
+ s.SetReportAs("test")
+
+ want := testStep()
+
+ // run test
+ got := StepFromAPI(s)
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("StepFromLibrary is %v, want %v", got, want)
+ }
+}
+
+// testStep is a test helper function to create a Step
+// type with all fields set to a fake value.
+func testStep() *Step {
+ return &Step{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ Number: sql.NullInt32{Int32: 1, Valid: true},
+ Name: sql.NullString{String: "clone", Valid: true},
+ Image: sql.NullString{String: "target/vela-git:v0.3.0", Valid: true},
+ Stage: sql.NullString{String: "", Valid: false},
+ Status: sql.NullString{String: "running", Valid: true},
+ Error: sql.NullString{String: "", Valid: false},
+ ExitCode: sql.NullInt32{Int32: 0, Valid: false},
+ Created: sql.NullInt64{Int64: 1563474076, Valid: true},
+ Started: sql.NullInt64{Int64: 1563474078, Valid: true},
+ Finished: sql.NullInt64{Int64: 1563474079, Valid: true},
+ Host: sql.NullString{String: "example.company.com", Valid: true},
+ Runtime: sql.NullString{String: "docker", Valid: true},
+ Distribution: sql.NullString{String: "linux", Valid: true},
+ ReportAs: sql.NullString{String: "test", Valid: true},
+ }
+}
diff --git a/database/types/worker.go b/database/types/worker.go
index 16062e65b..7dfe1ffab 100644
--- a/database/types/worker.go
+++ b/database/types/worker.go
@@ -10,8 +10,8 @@ import (
"github.com/lib/pq"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
var (
diff --git a/database/user/count.go b/database/user/count.go
index b6b686fba..e8564bef8 100644
--- a/database/user/count.go
+++ b/database/user/count.go
@@ -5,7 +5,7 @@ package user
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountUsers gets the count of all users from the database.
diff --git a/database/user/create.go b/database/user/create.go
index c778349c4..efa73e0ce 100644
--- a/database/user/create.go
+++ b/database/user/create.go
@@ -10,8 +10,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// CreateUser creates a new user in the database.
diff --git a/database/user/delete.go b/database/user/delete.go
index 28547c07c..d42d804ad 100644
--- a/database/user/delete.go
+++ b/database/user/delete.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// DeleteUser deletes an existing user from the database.
diff --git a/database/user/get.go b/database/user/get.go
index 30901c2ff..2a89f7836 100644
--- a/database/user/get.go
+++ b/database/user/get.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetUser gets a user by ID from the database.
diff --git a/database/user/get_name.go b/database/user/get_name.go
index fb9a90090..ee472a8d0 100644
--- a/database/user/get_name.go
+++ b/database/user/get_name.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetUserForName gets a user by name from the database.
diff --git a/database/user/list.go b/database/user/list.go
index 035699489..ae2858686 100644
--- a/database/user/list.go
+++ b/database/user/list.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListUsers gets a list of all users from the database.
diff --git a/database/user/list_lite.go b/database/user/list_lite.go
index c961fe483..f1719e0d5 100644
--- a/database/user/list_lite.go
+++ b/database/user/list_lite.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListLiteUsers gets a lite (only: id, name) list of users from the database.
diff --git a/database/user/table.go b/database/user/table.go
index de1f964a7..b39a04060 100644
--- a/database/user/table.go
+++ b/database/user/table.go
@@ -5,7 +5,7 @@ package user
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/user/update.go b/database/user/update.go
index d860e3293..4a68ebaca 100644
--- a/database/user/update.go
+++ b/database/user/update.go
@@ -10,8 +10,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// UpdateUser updates an existing user in the database.
diff --git a/database/user/user.go b/database/user/user.go
index ad2e2bae5..552571525 100644
--- a/database/user/user.go
+++ b/database/user/user.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/database/validate.go b/database/validate.go
index 8025b325e..c7628f9a5 100644
--- a/database/validate.go
+++ b/database/validate.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Validate verifies the required fields from the provided configuration are populated correctly.
diff --git a/database/worker/count.go b/database/worker/count.go
index 6c440637c..2fac5cafc 100644
--- a/database/worker/count.go
+++ b/database/worker/count.go
@@ -5,7 +5,7 @@ package worker
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// CountWorkers gets the count of all workers from the database.
diff --git a/database/worker/create.go b/database/worker/create.go
index 180ee7ef6..658b69bf0 100644
--- a/database/worker/create.go
+++ b/database/worker/create.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// CreateWorker creates a new worker in the database.
diff --git a/database/worker/delete.go b/database/worker/delete.go
index 252dd7831..5dac85391 100644
--- a/database/worker/delete.go
+++ b/database/worker/delete.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// DeleteWorker deletes an existing worker from the database.
diff --git a/database/worker/get.go b/database/worker/get.go
index 47be938a1..e4c2f14f3 100644
--- a/database/worker/get.go
+++ b/database/worker/get.go
@@ -6,8 +6,8 @@ import (
"context"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetWorker gets a worker by ID from the database.
diff --git a/database/worker/get_hostname.go b/database/worker/get_hostname.go
index d1150f80d..39ee2871e 100644
--- a/database/worker/get_hostname.go
+++ b/database/worker/get_hostname.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// GetWorkerForHostname gets a worker by hostname from the database.
diff --git a/database/worker/list.go b/database/worker/list.go
index 34fc2ef79..0843abc2d 100644
--- a/database/worker/list.go
+++ b/database/worker/list.go
@@ -8,8 +8,8 @@ import (
"strconv"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// ListWorkers gets a list of all workers from the database.
diff --git a/database/worker/table.go b/database/worker/table.go
index 921734f38..a1d871147 100644
--- a/database/worker/table.go
+++ b/database/worker/table.go
@@ -5,7 +5,7 @@ package worker
import (
"context"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/database/worker/update.go b/database/worker/update.go
index 49c78e420..10449cba5 100644
--- a/database/worker/update.go
+++ b/database/worker/update.go
@@ -8,8 +8,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// UpdateWorker updates an existing worker in the database.
diff --git a/database/worker/worker.go b/database/worker/worker.go
index 655a7dd2f..9869d4cd6 100644
--- a/database/worker/worker.go
+++ b/database/worker/worker.go
@@ -11,7 +11,7 @@ import (
"gorm.io/gorm"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
type (
diff --git a/internal/token/compose.go b/internal/token/compose.go
index 8fa0a1c8b..0bd685c11 100644
--- a/internal/token/compose.go
+++ b/internal/token/compose.go
@@ -9,8 +9,8 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/internal"
- "github.com/go-vela/types/constants"
)
// Compose generates a refresh and access token pair unique
diff --git a/internal/token/compose_test.go b/internal/token/compose_test.go
index c6efd58ce..f87952ab3 100644
--- a/internal/token/compose_test.go
+++ b/internal/token/compose_test.go
@@ -12,8 +12,8 @@ import (
"github.com/golang-jwt/jwt/v5"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/internal"
- "github.com/go-vela/types/constants"
)
func TestToken_Compose(t *testing.T) {
diff --git a/internal/token/parse_test.go b/internal/token/parse_test.go
index 600efe35e..0019aba6a 100644
--- a/internal/token/parse_test.go
+++ b/internal/token/parse_test.go
@@ -11,7 +11,7 @@ import (
jwt "github.com/golang-jwt/jwt/v5"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestTokenManager_ParseToken(t *testing.T) {
diff --git a/internal/token/refresh.go b/internal/token/refresh.go
index 257391230..f95d1b9c5 100644
--- a/internal/token/refresh.go
+++ b/internal/token/refresh.go
@@ -7,8 +7,8 @@ import (
"github.com/gin-gonic/gin"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/constants"
)
// Refresh returns a new access token, if the provided refreshToken is valid.
diff --git a/internal/token/refresh_test.go b/internal/token/refresh_test.go
index 49c809eb6..2478146e7 100644
--- a/internal/token/refresh_test.go
+++ b/internal/token/refresh_test.go
@@ -12,8 +12,8 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/constants"
)
func TestTokenManager_Refresh(t *testing.T) {
diff --git a/internal/webhook.go b/internal/webhook.go
index 3c6889a59..7edb365c2 100644
--- a/internal/webhook.go
+++ b/internal/webhook.go
@@ -6,7 +6,7 @@ import (
"strings"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
var (
diff --git a/internal/webhook_test.go b/internal/webhook_test.go
index 4e421854c..e374980d6 100644
--- a/internal/webhook_test.go
+++ b/internal/webhook_test.go
@@ -6,7 +6,7 @@ import (
"testing"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestWebhook_ShouldSkip(t *testing.T) {
diff --git a/mock/server/authentication.go b/mock/server/authentication.go
index 1d8ed2147..3b4c2b97c 100644
--- a/mock/server/authentication.go
+++ b/mock/server/authentication.go
@@ -10,8 +10,8 @@ import (
"github.com/lestrrat-go/jwx/v2/jwk"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/types"
- "github.com/go-vela/types/constants"
"github.com/go-vela/types/library"
)
diff --git a/mock/server/service.go b/mock/server/service.go
index c42e97dd6..75448a966 100644
--- a/mock/server/service.go
+++ b/mock/server/service.go
@@ -11,8 +11,8 @@ import (
"github.com/gin-gonic/gin"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/types"
- "github.com/go-vela/types/library"
)
const (
@@ -70,7 +70,7 @@ const (
func getServices(c *gin.Context) {
data := []byte(ServicesResp)
- var body []library.Service
+ var body []api.Service
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -92,7 +92,7 @@ func getService(c *gin.Context) {
data := []byte(ServiceResp)
- var body library.Service
+ var body api.Service
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -102,7 +102,7 @@ func getService(c *gin.Context) {
func addService(c *gin.Context) {
data := []byte(ServiceResp)
- var body library.Service
+ var body api.Service
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusCreated, body)
@@ -126,7 +126,7 @@ func updateService(c *gin.Context) {
data := []byte(ServiceResp)
- var body library.Service
+ var body api.Service
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
diff --git a/mock/server/service_test.go b/mock/server/service_test.go
index 799dc64d6..70e1da0af 100644
--- a/mock/server/service_test.go
+++ b/mock/server/service_test.go
@@ -7,11 +7,11 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestService_ActiveServiceResp(t *testing.T) {
- testService := library.Service{}
+ testService := api.Service{}
err := json.Unmarshal([]byte(ServiceResp), &testService)
if err != nil {
diff --git a/mock/server/step.go b/mock/server/step.go
index ff4c32ce8..b0a43da20 100644
--- a/mock/server/step.go
+++ b/mock/server/step.go
@@ -11,8 +11,8 @@ import (
"github.com/gin-gonic/gin"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/types"
- "github.com/go-vela/types/library"
)
const (
@@ -80,7 +80,7 @@ const (
func getSteps(c *gin.Context) {
data := []byte(StepsResp)
- var body []library.Step
+ var body []api.Step
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -102,7 +102,7 @@ func getStep(c *gin.Context) {
data := []byte(StepResp)
- var body library.Step
+ var body api.Step
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -112,7 +112,7 @@ func getStep(c *gin.Context) {
func addStep(c *gin.Context) {
data := []byte(StepResp)
- var body library.Step
+ var body api.Step
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusCreated, body)
@@ -136,7 +136,7 @@ func updateStep(c *gin.Context) {
data := []byte(StepResp)
- var body library.Step
+ var body api.Step
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
diff --git a/mock/server/step_test.go b/mock/server/step_test.go
index 9b4f6ef04..6b1952949 100644
--- a/mock/server/step_test.go
+++ b/mock/server/step_test.go
@@ -7,11 +7,11 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestStep_ActiveStepResp(t *testing.T) {
- testStep := library.Step{}
+ testStep := api.Step{}
err := json.Unmarshal([]byte(StepResp), &testStep)
if err != nil {
diff --git a/queue/flags.go b/queue/flags.go
index 35e5745f5..6277226a8 100644
--- a/queue/flags.go
+++ b/queue/flags.go
@@ -7,7 +7,7 @@ import (
"github.com/urfave/cli/v2"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Flags represents all supported command line
diff --git a/queue/queue.go b/queue/queue.go
index fdff9b364..c6a48eb54 100644
--- a/queue/queue.go
+++ b/queue/queue.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
"github.com/urfave/cli/v2"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// FromCLIContext helper function to setup the queue from the CLI arguments.
diff --git a/queue/redis/driver.go b/queue/redis/driver.go
index 5d5410bf9..90ba4b572 100644
--- a/queue/redis/driver.go
+++ b/queue/redis/driver.go
@@ -2,7 +2,7 @@
package redis
-import "github.com/go-vela/types/constants"
+import "github.com/go-vela/server/constants"
// Driver outputs the configured queue driver.
func (c *client) Driver() string {
diff --git a/queue/redis/driver_test.go b/queue/redis/driver_test.go
index 52894f1ba..f4434820a 100644
--- a/queue/redis/driver_test.go
+++ b/queue/redis/driver_test.go
@@ -10,7 +10,7 @@ import (
"github.com/alicebob/miniredis/v2"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestRedis_Driver(t *testing.T) {
diff --git a/queue/redis/route.go b/queue/redis/route.go
index 5ee0d29a6..cca2ad0e4 100644
--- a/queue/redis/route.go
+++ b/queue/redis/route.go
@@ -8,7 +8,7 @@ import (
"strings"
"github.com/go-vela/server/compiler/types/pipeline"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Route decides which route a build gets placed within the queue.
diff --git a/queue/redis/route_test.go b/queue/redis/route_test.go
index 5750e9277..e4f802f0d 100644
--- a/queue/redis/route_test.go
+++ b/queue/redis/route_test.go
@@ -7,7 +7,7 @@ import (
"testing"
"github.com/go-vela/server/compiler/types/pipeline"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestRedis_Client_Route(t *testing.T) {
diff --git a/queue/setup.go b/queue/setup.go
index c554c9238..8874aba95 100644
--- a/queue/setup.go
+++ b/queue/setup.go
@@ -9,8 +9,8 @@ import (
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/queue/redis"
- "github.com/go-vela/types/constants"
)
// Setup represents the configuration necessary for
diff --git a/router/middleware/auth/auth.go b/router/middleware/auth/auth.go
index 53ed6a8eb..3c6189100 100644
--- a/router/middleware/auth/auth.go
+++ b/router/middleware/auth/auth.go
@@ -8,7 +8,7 @@ import (
"github.com/golang-jwt/jwt/v5/request"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// RetrieveAccessToken gets the passed in access token from the header in the request.
diff --git a/router/middleware/auth/auth_test.go b/router/middleware/auth/auth_test.go
index 7a7993a98..f40e04e0f 100644
--- a/router/middleware/auth/auth_test.go
+++ b/router/middleware/auth/auth_test.go
@@ -9,7 +9,7 @@ import (
"strings"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestToken_Retrieve_Refresh(t *testing.T) {
diff --git a/router/middleware/claims/claims.go b/router/middleware/claims/claims.go
index e306f9e7e..4a20db604 100644
--- a/router/middleware/claims/claims.go
+++ b/router/middleware/claims/claims.go
@@ -9,10 +9,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/auth"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// Retrieve gets the claims in the given context.
diff --git a/router/middleware/claims/claims_test.go b/router/middleware/claims/claims_test.go
index 9d065df0f..8980deec1 100644
--- a/router/middleware/claims/claims_test.go
+++ b/router/middleware/claims/claims_test.go
@@ -17,9 +17,9 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
- "github.com/go-vela/types/constants"
)
func TestClaims_Retrieve(t *testing.T) {
diff --git a/router/middleware/claims/context_test.go b/router/middleware/claims/context_test.go
index b4f91baac..9a395166d 100644
--- a/router/middleware/claims/context_test.go
+++ b/router/middleware/claims/context_test.go
@@ -9,8 +9,8 @@ import (
"github.com/gin-gonic/gin"
"github.com/golang-jwt/jwt/v5"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/internal/token"
- "github.com/go-vela/types/constants"
)
func TestClaims_FromContext(t *testing.T) {
diff --git a/router/middleware/default_repo_settings_test.go b/router/middleware/default_repo_settings_test.go
index 75cc7a02a..9a620c64c 100644
--- a/router/middleware/default_repo_settings_test.go
+++ b/router/middleware/default_repo_settings_test.go
@@ -10,7 +10,7 @@ import (
"github.com/gin-gonic/gin"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestMiddleware_DefaultRepoEvents(t *testing.T) {
diff --git a/router/middleware/executors/executors.go b/router/middleware/executors/executors.go
index 21616d64a..54a930ab1 100644
--- a/router/middleware/executors/executors.go
+++ b/router/middleware/executors/executors.go
@@ -14,11 +14,11 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// Retrieve gets the executors in the given context.
diff --git a/router/middleware/logger.go b/router/middleware/logger.go
index 5b8be89c9..2e6a518f8 100644
--- a/router/middleware/logger.go
+++ b/router/middleware/logger.go
@@ -8,6 +8,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/router/middleware/dashboard"
@@ -21,7 +22,6 @@ import (
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/router/middleware/worker"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// This file, in part, reproduces portions of
diff --git a/router/middleware/logger_test.go b/router/middleware/logger_test.go
index 25e3dad14..bc17ea7bd 100644
--- a/router/middleware/logger_test.go
+++ b/router/middleware/logger_test.go
@@ -24,7 +24,6 @@ import (
"github.com/go-vela/server/router/middleware/step"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/router/middleware/worker"
- "github.com/go-vela/types/library"
)
func TestMiddleware_Logger(t *testing.T) {
@@ -41,14 +40,14 @@ func TestMiddleware_Logger(t *testing.T) {
b.SetRepo(r)
b.SetNumber(1)
- svc := new(library.Service)
+ svc := new(api.Service)
svc.SetID(1)
svc.SetRepoID(1)
svc.SetBuildID(1)
svc.SetNumber(1)
svc.SetName("foo")
- s := new(library.Step)
+ s := new(api.Step)
s.SetID(1)
s.SetRepoID(1)
s.SetBuildID(1)
diff --git a/router/middleware/pipeline/pipeline_test.go b/router/middleware/pipeline/pipeline_test.go
index bdc7d83f3..a12dd544b 100644
--- a/router/middleware/pipeline/pipeline_test.go
+++ b/router/middleware/pipeline/pipeline_test.go
@@ -20,6 +20,7 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler"
"github.com/go-vela/server/compiler/native"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/database/testutils"
"github.com/go-vela/server/internal"
@@ -30,7 +31,6 @@ import (
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/scm/github"
- "github.com/go-vela/types/constants"
)
func TestPipeline_Retrieve(t *testing.T) {
diff --git a/router/middleware/service/context.go b/router/middleware/service/context.go
index 7083879ea..4098cdea0 100644
--- a/router/middleware/service/context.go
+++ b/router/middleware/service/context.go
@@ -5,7 +5,7 @@ package service
import (
"context"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
const key = "service"
@@ -16,13 +16,13 @@ type Setter interface {
}
// FromContext returns the Service associated with this context.
-func FromContext(c context.Context) *library.Service {
+func FromContext(c context.Context) *api.Service {
value := c.Value(key)
if value == nil {
return nil
}
- s, ok := value.(*library.Service)
+ s, ok := value.(*api.Service)
if !ok {
return nil
}
@@ -32,6 +32,6 @@ func FromContext(c context.Context) *library.Service {
// ToContext adds the Service to this context if it supports
// the Setter interface.
-func ToContext(c Setter, s *library.Service) {
+func ToContext(c Setter, s *api.Service) {
c.Set(key, s)
}
diff --git a/router/middleware/service/context_test.go b/router/middleware/service/context_test.go
index 8c1cc74f4..41860657e 100644
--- a/router/middleware/service/context_test.go
+++ b/router/middleware/service/context_test.go
@@ -7,13 +7,13 @@ import (
"github.com/gin-gonic/gin"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestService_FromContext(t *testing.T) {
// setup types
num := int64(1)
- want := &library.Service{ID: &num}
+ want := &api.Service{ID: &num}
// setup context
gin.SetMode(gin.TestMode)
@@ -72,7 +72,7 @@ func TestService_FromContext_Empty(t *testing.T) {
func TestService_ToContext(t *testing.T) {
// setup types
num := int64(1)
- want := &library.Service{ID: &num}
+ want := &api.Service{ID: &num}
// setup context
gin.SetMode(gin.TestMode)
diff --git a/router/middleware/service/service.go b/router/middleware/service/service.go
index 7089e22f7..2f9cabb7c 100644
--- a/router/middleware/service/service.go
+++ b/router/middleware/service/service.go
@@ -10,16 +10,16 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/org"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// Retrieve gets the service in the given context.
-func Retrieve(c *gin.Context) *library.Service {
+func Retrieve(c *gin.Context) *api.Service {
return FromContext(c)
}
diff --git a/router/middleware/service/service_test.go b/router/middleware/service/service_test.go
index 681975c36..f91bee81d 100644
--- a/router/middleware/service/service_test.go
+++ b/router/middleware/service/service_test.go
@@ -17,12 +17,11 @@ import (
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/org"
"github.com/go-vela/server/router/middleware/repo"
- "github.com/go-vela/types/library"
)
func TestService_Retrieve(t *testing.T) {
// setup types
- want := new(library.Service)
+ want := new(api.Service)
want.SetID(1)
// setup context
@@ -57,7 +56,7 @@ func TestService_Establish(t *testing.T) {
b.SetRepo(r)
b.SetNumber(1)
- want := new(library.Service)
+ want := new(api.Service)
want.SetID(1)
want.SetRepoID(1)
want.SetBuildID(1)
@@ -74,7 +73,7 @@ func TestService_Establish(t *testing.T) {
want.SetRuntime("")
want.SetDistribution("")
- got := new(library.Service)
+ got := new(api.Service)
// setup database
db, err := database.NewTest()
diff --git a/router/middleware/step/context.go b/router/middleware/step/context.go
index f8c13740d..ae022c6b6 100644
--- a/router/middleware/step/context.go
+++ b/router/middleware/step/context.go
@@ -5,7 +5,7 @@ package step
import (
"context"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
const key = "step"
@@ -16,13 +16,13 @@ type Setter interface {
}
// FromContext returns the Step associated with this context.
-func FromContext(c context.Context) *library.Step {
+func FromContext(c context.Context) *api.Step {
value := c.Value(key)
if value == nil {
return nil
}
- s, ok := value.(*library.Step)
+ s, ok := value.(*api.Step)
if !ok {
return nil
}
@@ -32,6 +32,6 @@ func FromContext(c context.Context) *library.Step {
// ToContext adds the Step to this context if it supports
// the Setter interface.
-func ToContext(c Setter, s *library.Step) {
+func ToContext(c Setter, s *api.Step) {
c.Set(key, s)
}
diff --git a/router/middleware/step/context_test.go b/router/middleware/step/context_test.go
index c42feb41c..e111cffd2 100644
--- a/router/middleware/step/context_test.go
+++ b/router/middleware/step/context_test.go
@@ -7,13 +7,13 @@ import (
"github.com/gin-gonic/gin"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestStep_FromContext(t *testing.T) {
// setup types
num := int64(1)
- want := &library.Step{ID: &num}
+ want := &api.Step{ID: &num}
// setup context
gin.SetMode(gin.TestMode)
@@ -72,7 +72,7 @@ func TestStep_FromContext_Empty(t *testing.T) {
func TestStep_ToContext(t *testing.T) {
// setup types
num := int64(1)
- want := &library.Step{ID: &num}
+ want := &api.Step{ID: &num}
// setup context
gin.SetMode(gin.TestMode)
diff --git a/router/middleware/step/step.go b/router/middleware/step/step.go
index c1e31cf43..1e9bb95d3 100644
--- a/router/middleware/step/step.go
+++ b/router/middleware/step/step.go
@@ -10,16 +10,16 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/org"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// Retrieve gets the step in the given context.
-func Retrieve(c *gin.Context) *library.Step {
+func Retrieve(c *gin.Context) *api.Step {
return FromContext(c)
}
diff --git a/router/middleware/step/step_test.go b/router/middleware/step/step_test.go
index 120170d04..77f4701a7 100644
--- a/router/middleware/step/step_test.go
+++ b/router/middleware/step/step_test.go
@@ -17,12 +17,11 @@ import (
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/org"
"github.com/go-vela/server/router/middleware/repo"
- "github.com/go-vela/types/library"
)
func TestStep_Retrieve(t *testing.T) {
// setup types
- want := new(library.Step)
+ want := new(api.Step)
want.SetID(1)
// setup context
@@ -58,7 +57,7 @@ func TestStep_Establish(t *testing.T) {
b.SetRepo(r)
b.SetNumber(1)
- want := new(library.Step)
+ want := new(api.Step)
want.SetID(1)
want.SetRepoID(1)
want.SetBuildID(1)
@@ -77,7 +76,7 @@ func TestStep_Establish(t *testing.T) {
want.SetDistribution("")
want.SetReportAs("")
- got := new(library.Step)
+ got := new(api.Step)
// setup database
db, err := database.NewTest()
diff --git a/router/middleware/user/user.go b/router/middleware/user/user.go
index cc883fd41..a6936f96e 100644
--- a/router/middleware/user/user.go
+++ b/router/middleware/user/user.go
@@ -10,10 +10,10 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/constants"
)
// Retrieve gets the user in the given context.
diff --git a/router/middleware/user/user_test.go b/router/middleware/user/user_test.go
index 28d7f7a3d..5246ff701 100644
--- a/router/middleware/user/user_test.go
+++ b/router/middleware/user/user_test.go
@@ -15,12 +15,12 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/scm/github"
- "github.com/go-vela/types/constants"
)
func TestUser_Retrieve(t *testing.T) {
diff --git a/scm/flags.go b/scm/flags.go
index 2a64f7e14..0d95ebcb5 100644
--- a/scm/flags.go
+++ b/scm/flags.go
@@ -5,7 +5,7 @@ package scm
import (
"github.com/urfave/cli/v2"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Flags represents all supported command line
diff --git a/scm/github/driver.go b/scm/github/driver.go
index 1a17f5f0f..f16f85f8a 100644
--- a/scm/github/driver.go
+++ b/scm/github/driver.go
@@ -2,7 +2,7 @@
package github
-import "github.com/go-vela/types/constants"
+import "github.com/go-vela/server/constants"
// Driver outputs the configured scm driver.
func (c *client) Driver() string {
diff --git a/scm/github/driver_test.go b/scm/github/driver_test.go
index 42b9f8f1e..7ea6656d8 100644
--- a/scm/github/driver_test.go
+++ b/scm/github/driver_test.go
@@ -6,7 +6,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestGitHub_Driver(t *testing.T) {
diff --git a/scm/github/repo.go b/scm/github/repo.go
index f608b5199..a35c0179e 100644
--- a/scm/github/repo.go
+++ b/scm/github/repo.go
@@ -14,8 +14,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/constants"
)
// ConfigBackoff is a wrapper for Config that will retry five times if the function
@@ -401,7 +400,7 @@ func (c *client) Status(ctx context.Context, u *api.User, b *api.Build, org, nam
}
// StepStatus sends the commit status for the given SHA to the GitHub repo with the step as the context.
-func (c *client) StepStatus(ctx context.Context, u *api.User, b *api.Build, s *library.Step, org, name string) error {
+func (c *client) StepStatus(ctx context.Context, u *api.User, b *api.Build, s *api.Step, org, name string) error {
c.Logger.WithFields(logrus.Fields{
"build": b.GetNumber(),
"org": org,
diff --git a/scm/github/repo_test.go b/scm/github/repo_test.go
index a1920e73d..502c1cc7c 100644
--- a/scm/github/repo_test.go
+++ b/scm/github/repo_test.go
@@ -15,8 +15,7 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/constants"
)
func TestGithub_Config_YML(t *testing.T) {
@@ -909,7 +908,7 @@ func TestGithub_Status_Running(t *testing.T) {
b.SetStatus(constants.StatusRunning)
b.SetCommit("abcd1234")
- step := new(library.Step)
+ step := new(api.Step)
step.SetID(1)
step.SetNumber(1)
step.SetName("test")
@@ -973,7 +972,7 @@ func TestGithub_Status_Success(t *testing.T) {
b.SetStatus(constants.StatusRunning)
b.SetCommit("abcd1234")
- step := new(library.Step)
+ step := new(api.Step)
step.SetID(1)
step.SetNumber(1)
step.SetName("test")
@@ -1037,7 +1036,7 @@ func TestGithub_Status_Failure(t *testing.T) {
b.SetStatus(constants.StatusRunning)
b.SetCommit("abcd1234")
- step := new(library.Step)
+ step := new(api.Step)
step.SetID(1)
step.SetNumber(1)
step.SetName("test")
@@ -1101,7 +1100,7 @@ func TestGithub_Status_Killed(t *testing.T) {
b.SetStatus(constants.StatusRunning)
b.SetCommit("abcd1234")
- step := new(library.Step)
+ step := new(api.Step)
step.SetID(1)
step.SetNumber(1)
step.SetName("test")
@@ -1165,7 +1164,7 @@ func TestGithub_Status_Skipped(t *testing.T) {
b.SetStatus(constants.StatusSkipped)
b.SetCommit("abcd1234")
- step := new(library.Step)
+ step := new(api.Step)
step.SetID(1)
step.SetNumber(1)
step.SetName("test")
@@ -1229,7 +1228,7 @@ func TestGithub_Status_Error(t *testing.T) {
b.SetStatus(constants.StatusRunning)
b.SetCommit("abcd1234")
- step := new(library.Step)
+ step := new(api.Step)
step.SetID(1)
step.SetNumber(1)
step.SetName("test")
diff --git a/scm/github/webhook.go b/scm/github/webhook.go
index d79deb718..aa51c375f 100644
--- a/scm/github/webhook.go
+++ b/scm/github/webhook.go
@@ -17,8 +17,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/internal"
- "github.com/go-vela/types/constants"
)
// ProcessWebhook parses the webhook from a repo.
diff --git a/scm/github/webhook_test.go b/scm/github/webhook_test.go
index 15fdb486d..1ef1685fe 100644
--- a/scm/github/webhook_test.go
+++ b/scm/github/webhook_test.go
@@ -17,8 +17,8 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler/types/raw"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/internal"
- "github.com/go-vela/types/constants"
)
func TestGithub_ProcessWebhook_Push(t *testing.T) {
diff --git a/scm/scm.go b/scm/scm.go
index e45b33576..b93bde906 100644
--- a/scm/scm.go
+++ b/scm/scm.go
@@ -7,7 +7,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// New creates and returns a Vela service capable of
diff --git a/scm/service.go b/scm/service.go
index ca93ec1d5..bc917ce9a 100644
--- a/scm/service.go
+++ b/scm/service.go
@@ -8,7 +8,6 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/internal"
- "github.com/go-vela/types/library"
)
// Service represents the interface for Vela integrating
@@ -119,7 +118,7 @@ type Service interface {
Status(context.Context, *api.User, *api.Build, string, string) error
// StepStatus defines a function that sends the
// commit status for the given SHA for a specified step context.
- StepStatus(context.Context, *api.User, *api.Build, *library.Step, string, string) error
+ StepStatus(context.Context, *api.User, *api.Build, *api.Step, string, string) error
// ListUserRepos defines a function that retrieves
// all repos with admin rights for the user.
ListUserRepos(context.Context, *api.User) ([]*api.Repo, error)
diff --git a/scm/setup.go b/scm/setup.go
index c32a0cf66..dc3a3e698 100644
--- a/scm/setup.go
+++ b/scm/setup.go
@@ -8,9 +8,9 @@ import (
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/scm/github"
"github.com/go-vela/server/tracing"
- "github.com/go-vela/types/constants"
)
// Setup represents the configuration necessary for
diff --git a/secret/native/count.go b/secret/native/count.go
index 460ee077b..1931e4286 100644
--- a/secret/native/count.go
+++ b/secret/native/count.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Count counts a list of secrets.
diff --git a/secret/native/create.go b/secret/native/create.go
index 78cce0d4c..c374bacbd 100644
--- a/secret/native/create.go
+++ b/secret/native/create.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Create creates a new secret.
diff --git a/secret/native/delete.go b/secret/native/delete.go
index d0fbdc458..a32b669a1 100644
--- a/secret/native/delete.go
+++ b/secret/native/delete.go
@@ -8,7 +8,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Delete deletes a secret.
diff --git a/secret/native/driver.go b/secret/native/driver.go
index 022967d53..26ba4f3dc 100644
--- a/secret/native/driver.go
+++ b/secret/native/driver.go
@@ -2,7 +2,7 @@
package native
-import "github.com/go-vela/types/constants"
+import "github.com/go-vela/server/constants"
// Driver outputs the configured secret driver.
func (c *client) Driver() string {
diff --git a/secret/native/driver_test.go b/secret/native/driver_test.go
index a18369e86..9f003bf94 100644
--- a/secret/native/driver_test.go
+++ b/secret/native/driver_test.go
@@ -6,8 +6,8 @@ import (
"reflect"
"testing"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/constants"
)
func TestNative_Driver(t *testing.T) {
diff --git a/secret/native/get.go b/secret/native/get.go
index d6731be3a..fe9e0ddf4 100644
--- a/secret/native/get.go
+++ b/secret/native/get.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Get captures a secret.
diff --git a/secret/native/list.go b/secret/native/list.go
index 42b3ee172..1f6604f91 100644
--- a/secret/native/list.go
+++ b/secret/native/list.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// List captures a list of secrets.
diff --git a/secret/native/update.go b/secret/native/update.go
index df1d5111d..12021d378 100644
--- a/secret/native/update.go
+++ b/secret/native/update.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Update updates an existing secret.
diff --git a/secret/secret.go b/secret/secret.go
index 7dadc4b05..15dc307a8 100644
--- a/secret/secret.go
+++ b/secret/secret.go
@@ -7,7 +7,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// New creates and returns a Vela service capable of
diff --git a/secret/setup.go b/secret/setup.go
index 8a9917c0a..1f7c080d2 100644
--- a/secret/setup.go
+++ b/secret/setup.go
@@ -9,10 +9,10 @@ import (
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/secret/native"
"github.com/go-vela/server/secret/vault"
- "github.com/go-vela/types/constants"
)
// Setup represents the configuration necessary for
diff --git a/secret/vault/count.go b/secret/vault/count.go
index 907165cea..927a1da85 100644
--- a/secret/vault/count.go
+++ b/secret/vault/count.go
@@ -10,7 +10,7 @@ import (
"github.com/hashicorp/vault/api"
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Count counts a list of secrets.
diff --git a/secret/vault/create.go b/secret/vault/create.go
index b1ac5b40a..2a3e94a2b 100644
--- a/secret/vault/create.go
+++ b/secret/vault/create.go
@@ -10,8 +10,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
database "github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// Create creates a new secret.
diff --git a/secret/vault/delete.go b/secret/vault/delete.go
index ef3521c54..246393764 100644
--- a/secret/vault/delete.go
+++ b/secret/vault/delete.go
@@ -9,7 +9,7 @@ import (
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Delete deletes a secret.
diff --git a/secret/vault/driver.go b/secret/vault/driver.go
index ad9a4858c..96dd0179d 100644
--- a/secret/vault/driver.go
+++ b/secret/vault/driver.go
@@ -2,7 +2,7 @@
package vault
-import "github.com/go-vela/types/constants"
+import "github.com/go-vela/server/constants"
// Driver outputs the configured secret driver.
func (c *client) Driver() string {
diff --git a/secret/vault/driver_test.go b/secret/vault/driver_test.go
index 4a0975766..22b3f0a18 100644
--- a/secret/vault/driver_test.go
+++ b/secret/vault/driver_test.go
@@ -8,7 +8,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestVault_Driver(t *testing.T) {
diff --git a/secret/vault/get.go b/secret/vault/get.go
index 081ecb910..dd3b08591 100644
--- a/secret/vault/get.go
+++ b/secret/vault/get.go
@@ -11,7 +11,7 @@ import (
"github.com/sirupsen/logrus"
velaAPI "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// Get captures a secret.
diff --git a/secret/vault/list.go b/secret/vault/list.go
index 2fd6a75cc..b9bbfbfa0 100644
--- a/secret/vault/list.go
+++ b/secret/vault/list.go
@@ -11,7 +11,7 @@ import (
"github.com/sirupsen/logrus"
velaAPI "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
// List captures a list of secrets.
diff --git a/secret/vault/update.go b/secret/vault/update.go
index a1c0c7b8a..08ad3cda5 100644
--- a/secret/vault/update.go
+++ b/secret/vault/update.go
@@ -10,8 +10,8 @@ import (
"github.com/sirupsen/logrus"
api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
database "github.com/go-vela/server/database/types"
- "github.com/go-vela/types/constants"
)
// Update updates a secret.
diff --git a/secret/vault/vault.go b/secret/vault/vault.go
index fc88a167f..9cf2a7161 100644
--- a/secret/vault/vault.go
+++ b/secret/vault/vault.go
@@ -13,7 +13,7 @@ import (
"github.com/sirupsen/logrus"
velaAPI "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
const (
diff --git a/util/compression_test.go b/util/compression_test.go
index 4328b61a3..5492a9750 100644
--- a/util/compression_test.go
+++ b/util/compression_test.go
@@ -6,7 +6,7 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/constants"
+ "github.com/go-vela/server/constants"
)
func TestDatabase_compress(t *testing.T) {
From cb37db9087c54fe58ae378143f4f948b7913495d Mon Sep 17 00:00:00 2001
From: Easton Crupper <65553218+ecrupper@users.noreply.github.com>
Date: Fri, 18 Oct 2024 14:35:30 -0400
Subject: [PATCH 4/6] fix(mock): use correct api pkg (#1211)
---
mock/server/secret.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mock/server/secret.go b/mock/server/secret.go
index fd3abf23d..0fa228e29 100644
--- a/mock/server/secret.go
+++ b/mock/server/secret.go
@@ -10,8 +10,8 @@ import (
"strings"
"github.com/gin-gonic/gin"
- "github.com/hashicorp/vault/api"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/types"
)
From 72b59eb8001851e4896e50197cce88d213716f4b Mon Sep 17 00:00:00 2001
From: Easton Crupper <65553218+ecrupper@users.noreply.github.com>
Date: Fri, 18 Oct 2024 15:49:31 -0400
Subject: [PATCH 5/6] fix: use compiler type for API secret Match (#1212)
---
api/types/secret.go | 2 +-
api/types/secret_test.go | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/api/types/secret.go b/api/types/secret.go
index 53f3b8163..1cb9eb48a 100644
--- a/api/types/secret.go
+++ b/api/types/secret.go
@@ -6,8 +6,8 @@ import (
"fmt"
"strings"
+ "github.com/go-vela/server/compiler/types/pipeline"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/pipeline"
)
// Secret is the API representation of a secret.
diff --git a/api/types/secret_test.go b/api/types/secret_test.go
index e84f4f6d5..80562755f 100644
--- a/api/types/secret_test.go
+++ b/api/types/secret_test.go
@@ -11,8 +11,8 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/go-vela/server/api/types/actions"
+ "github.com/go-vela/server/compiler/types/pipeline"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/pipeline"
)
func TestTypes_Secret_Sanitize(t *testing.T) {
From a2b0d9146d65b76a1e307486424f5bfc8acffae6 Mon Sep 17 00:00:00 2001
From: Easton Crupper <65553218+ecrupper@users.noreply.github.com>
Date: Tue, 22 Oct 2024 10:11:12 -0400
Subject: [PATCH 6/6] refactor: remove types dependency (#1213)
* refactor: remove types dependency
* gci
---
api/admin/clean.go | 2 +-
api/admin/worker.go | 4 +-
api/auth/get_token.go | 5 +-
api/auth/post_token.go | 4 +-
api/auth/refresh.go | 4 +-
api/build/executable.go | 3 +-
api/build/id_request_token.go | 4 +-
api/build/id_token.go | 4 +-
api/build/token.go | 4 +-
api/log/create_service.go | 4 +-
api/log/create_step.go | 4 +-
api/log/update_service.go | 4 +-
api/log/update_step.go | 4 +-
api/pipeline/template.go | 6 +-
api/queue/queue.go | 4 +-
api/service/plan.go | 6 +-
api/step/plan.go | 7 +-
api/types/build_executable.go | 108 ++++++
api/types/build_executable_test.go | 136 +++++++
api/types/error.go | 16 +
api/types/error_test.go | 25 ++
api/types/log.go | 235 ++++++++++++
api/types/log_test.go | 277 +++++++++++++++
api/types/pipeline_test.go | 6 +-
api/types/queue_info.go | 63 ++++
api/types/queue_info_test.go | 79 ++++
api/types/template.go | 137 +++++++
api/types/template_test.go | 126 +++++++
api/types/token.go | 47 +++
api/types/token_test.go | 90 +++++
api/user/create_token.go | 4 +-
api/user/delete_token.go | 4 +-
api/user/get_source.go | 2 +-
api/worker/create.go | 5 +-
api/worker/refresh.go | 6 +-
compiler/engine.go | 6 +-
compiler/native/compile.go | 8 +-
compiler/native/compile_test.go | 96 ++---
compiler/native/environment.go | 13 +-
compiler/native/native.go | 6 +-
compiler/types/yaml/build_test.go | 4 +-
compiler/types/yaml/template.go | 14 +-
compiler/types/yaml/template_test.go | 18 +-
constants/doc.go | 2 +-
database/deployment/create.go | 2 +-
database/deployment/delete.go | 2 +-
database/deployment/list.go | 2 +-
database/deployment/update.go | 2 +-
database/executable/clean_test.go | 55 +--
database/executable/create.go | 19 +-
database/executable/executable_test.go | 8 +-
database/executable/interface.go | 6 +-
database/executable/pop.go | 17 +-
database/executable/pop_test.go | 4 +-
database/hook/update.go | 3 -
database/integration_test.go | 25 +-
database/log/create.go | 17 +-
database/log/create_test.go | 8 +-
database/log/delete.go | 12 +-
database/log/get.go | 16 +-
database/log/get_service.go | 15 +-
database/log/get_service_test.go | 4 +-
database/log/get_step.go | 15 +-
database/log/get_step_test.go | 4 +-
database/log/get_test.go | 4 +-
database/log/interface.go | 17 +-
database/log/list.go | 18 +-
database/log/list_build.go | 17 +-
database/log/list_build_test.go | 8 +-
database/log/list_test.go | 8 +-
database/log/update.go | 16 +-
database/log/update_test.go | 8 +-
database/repo/create.go | 2 +-
database/repo/delete.go | 2 +-
database/repo/get.go | 6 -
database/repo/list.go | 2 +-
database/repo/list_user.go | 2 +-
database/repo/update.go | 2 +-
database/secret/get_org.go | 2 -
database/secret/get_team.go | 6 -
database/step/delete.go | 4 +-
database/testutils/api_resources.go | 5 +-
database/types/build_executable.go | 166 +++++++++
database/types/build_executable_test.go | 455 ++++++++++++++++++++++++
database/types/log.go | 159 +++++++++
database/types/log_test.go | 374 +++++++++++++++++++
database/types/step_test.go | 4 +-
database/types/worker_test.go | 2 +-
database/user/create.go | 4 -
database/user/update.go | 2 +-
database/worker/create.go | 6 +-
database/worker/delete.go | 4 +-
database/worker/get.go | 2 -
database/worker/get_hostname.go | 2 -
database/worker/list.go | 4 +-
database/worker/update.go | 6 +-
database/worker/worker_test.go | 2 +-
go.mod | 1 -
go.sum | 2 -
mock/server/authentication.go | 16 +-
mock/server/build.go | 28 +-
mock/server/dashboard.go | 3 +-
mock/server/deployment.go | 3 +-
mock/server/hook.go | 7 +-
mock/server/log.go | 19 +-
mock/server/log_test.go | 4 +-
mock/server/pipeline.go | 15 +-
mock/server/repo.go | 11 +-
mock/server/rotate_keys.go | 4 +-
mock/server/schedule.go | 7 +-
mock/server/scm.go | 6 +-
mock/server/secret.go | 7 +-
mock/server/service.go | 7 +-
mock/server/step.go | 7 +-
mock/server/user.go | 9 +-
mock/server/worker.go | 22 +-
queue/redis/route.go | 2 -
scm/github/deployment.go | 2 +-
scm/github/repo.go | 8 +-
scm/github/webhook.go | 14 +-
util/util.go | 3 +-
version/metadata.go | 43 +++
version/metadata_test.go | 38 ++
version/version.go | 72 +++-
version/version_test.go | 106 ++++++
125 files changed, 3102 insertions(+), 527 deletions(-)
create mode 100644 api/types/build_executable.go
create mode 100644 api/types/build_executable_test.go
create mode 100644 api/types/error.go
create mode 100644 api/types/error_test.go
create mode 100644 api/types/log.go
create mode 100644 api/types/log_test.go
create mode 100644 api/types/queue_info.go
create mode 100644 api/types/queue_info_test.go
create mode 100644 api/types/template.go
create mode 100644 api/types/template_test.go
create mode 100644 api/types/token.go
create mode 100644 api/types/token_test.go
create mode 100644 database/types/build_executable.go
create mode 100644 database/types/build_executable_test.go
create mode 100644 database/types/log.go
create mode 100644 database/types/log_test.go
create mode 100644 version/metadata.go
create mode 100644 version/metadata_test.go
create mode 100644 version/version_test.go
diff --git a/api/admin/clean.go b/api/admin/clean.go
index 86b1fc7cc..74f172705 100644
--- a/api/admin/clean.go
+++ b/api/admin/clean.go
@@ -11,10 +11,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/util"
- "github.com/go-vela/types"
)
// swagger:operation PUT /api/v1/admin/clean admin AdminCleanResources
diff --git a/api/admin/worker.go b/api/admin/worker.go
index 9ff7f5e60..955375818 100644
--- a/api/admin/worker.go
+++ b/api/admin/worker.go
@@ -9,10 +9,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation POST /api/v1/admin/workers/{worker}/register admin RegisterToken
@@ -72,5 +72,5 @@ func RegisterToken(c *gin.Context) {
l.Infof("platform admin: generated worker registration token for %s", host)
- c.JSON(http.StatusOK, library.Token{Token: &rt})
+ c.JSON(http.StatusOK, types.Token{Token: &rt})
}
diff --git a/api/auth/get_token.go b/api/auth/get_token.go
index 07df70b0c..1379ccea3 100644
--- a/api/auth/get_token.go
+++ b/api/auth/get_token.go
@@ -14,7 +14,6 @@ import (
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation GET /authenticate authenticate GetAuthToken
@@ -140,7 +139,7 @@ func GetAuthToken(c *gin.Context) {
}).Info("new user created")
// return the jwt access token
- c.JSON(http.StatusOK, library.Token{Token: &at})
+ c.JSON(http.StatusOK, types.Token{Token: &at})
return
}
@@ -178,5 +177,5 @@ func GetAuthToken(c *gin.Context) {
}).Info("user updated - new token")
// return the user with their jwt access token
- c.JSON(http.StatusOK, library.Token{Token: &at})
+ c.JSON(http.StatusOK, types.Token{Token: &at})
}
diff --git a/api/auth/post_token.go b/api/auth/post_token.go
index d23183f2b..236082ff4 100644
--- a/api/auth/post_token.go
+++ b/api/auth/post_token.go
@@ -9,12 +9,12 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation POST /authenticate/token authenticate PostAuthToken
@@ -98,5 +98,5 @@ func PostAuthToken(c *gin.Context) {
}
// return jwt access token
- c.JSON(http.StatusOK, library.Token{Token: &at})
+ c.JSON(http.StatusOK, types.Token{Token: &at})
}
diff --git a/api/auth/refresh.go b/api/auth/refresh.go
index 69d61bb1e..cec351cf7 100644
--- a/api/auth/refresh.go
+++ b/api/auth/refresh.go
@@ -9,10 +9,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/auth"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation GET /token-refresh authenticate GetRefreshAccessToken
@@ -65,5 +65,5 @@ func RefreshAccessToken(c *gin.Context) {
return
}
- c.JSON(http.StatusOK, library.Token{Token: &newAccessToken})
+ c.JSON(http.StatusOK, types.Token{Token: &newAccessToken})
}
diff --git a/api/build/executable.go b/api/build/executable.go
index c0324a4de..866708689 100644
--- a/api/build/executable.go
+++ b/api/build/executable.go
@@ -17,7 +17,6 @@ import (
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation GET /api/v1/repos/{org}/{repo}/builds/{build}/executable builds GetBuildExecutable
@@ -106,7 +105,7 @@ func PublishBuildExecutable(ctx context.Context, db database.Interface, p *pipel
}
// create build executable to push to database
- bExecutable := new(library.BuildExecutable)
+ bExecutable := new(types.BuildExecutable)
bExecutable.SetBuildID(b.GetID())
bExecutable.SetData(byteExecutable)
diff --git a/api/build/id_request_token.go b/api/build/id_request_token.go
index 77869a44c..e557a2ee5 100644
--- a/api/build/id_request_token.go
+++ b/api/build/id_request_token.go
@@ -12,11 +12,11 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation GET /api/v1/repos/{org}/{repo}/builds/{build}/id_request_token builds GetIDRequestToken
@@ -145,5 +145,5 @@ func GetIDRequestToken(c *gin.Context) {
return
}
- c.JSON(http.StatusOK, library.Token{Token: &idrt})
+ c.JSON(http.StatusOK, types.Token{Token: &idrt})
}
diff --git a/api/build/id_token.go b/api/build/id_token.go
index e049dcebd..f896d8df4 100644
--- a/api/build/id_token.go
+++ b/api/build/id_token.go
@@ -9,13 +9,13 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation GET /api/v1/repos/{org}/{repo}/builds/{build}/id_token builds GetIDToken
@@ -127,5 +127,5 @@ func GetIDToken(c *gin.Context) {
return
}
- c.JSON(http.StatusOK, library.Token{Token: &idt})
+ c.JSON(http.StatusOK, types.Token{Token: &idt})
}
diff --git a/api/build/token.go b/api/build/token.go
index e626b9379..a2c56d45e 100644
--- a/api/build/token.go
+++ b/api/build/token.go
@@ -11,13 +11,13 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation GET /api/v1/repos/{org}/{repo}/builds/{build}/token builds GetBuildToken
@@ -109,5 +109,5 @@ func GetBuildToken(c *gin.Context) {
return
}
- c.JSON(http.StatusOK, library.Token{Token: &bt})
+ c.JSON(http.StatusOK, types.Token{Token: &bt})
}
diff --git a/api/log/create_service.go b/api/log/create_service.go
index 736f1fca5..fda667ae5 100644
--- a/api/log/create_service.go
+++ b/api/log/create_service.go
@@ -10,12 +10,12 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/router/middleware/service"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation POST /api/v1/repos/{org}/{repo}/builds/{build}/services/{service}/logs services CreateServiceLog
@@ -90,7 +90,7 @@ func CreateServiceLog(c *gin.Context) {
l.Debugf("creating logs for service %s", entry)
// capture body from API request
- input := new(library.Log)
+ input := new(types.Log)
err := c.Bind(input)
if err != nil {
diff --git a/api/log/create_step.go b/api/log/create_step.go
index 2a92abab7..507d19798 100644
--- a/api/log/create_step.go
+++ b/api/log/create_step.go
@@ -10,12 +10,12 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/router/middleware/step"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation POST /api/v1/repos/{org}/{repo}/builds/{build}/steps/{step}/logs steps CreateStepLog
@@ -90,7 +90,7 @@ func CreateStepLog(c *gin.Context) {
l.Debugf("creating logs for step %s", entry)
// capture body from API request
- input := new(library.Log)
+ input := new(types.Log)
err := c.Bind(input)
if err != nil {
diff --git a/api/log/update_service.go b/api/log/update_service.go
index dd8b8329d..646a0d031 100644
--- a/api/log/update_service.go
+++ b/api/log/update_service.go
@@ -10,12 +10,12 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/router/middleware/service"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation PUT /api/v1/repos/{org}/{repo}/builds/{build}/services/{service}/logs services UpdateServiceLog
@@ -100,7 +100,7 @@ func UpdateServiceLog(c *gin.Context) {
}
// capture body from API request
- input := new(library.Log)
+ input := new(types.Log)
err = c.Bind(input)
if err != nil {
diff --git a/api/log/update_step.go b/api/log/update_step.go
index ff19da7da..7204afdb0 100644
--- a/api/log/update_step.go
+++ b/api/log/update_step.go
@@ -10,12 +10,12 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/router/middleware/build"
"github.com/go-vela/server/router/middleware/repo"
"github.com/go-vela/server/router/middleware/step"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation PUT /api/v1/repos/{org}/{repo}/builds/{build}/steps/{step}/logs steps UpdateStepLog
@@ -100,7 +100,7 @@ func UpdateStepLog(c *gin.Context) {
}
// capture body from API request
- input := new(library.Log)
+ input := new(types.Log)
err = c.Bind(input)
if err != nil {
diff --git a/api/pipeline/template.go b/api/pipeline/template.go
index 8703bd9c9..aef79d165 100644
--- a/api/pipeline/template.go
+++ b/api/pipeline/template.go
@@ -10,6 +10,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler"
"github.com/go-vela/server/compiler/registry/github"
"github.com/go-vela/server/compiler/types/yaml"
@@ -20,7 +21,6 @@ import (
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/scm"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation GET /api/v1/pipelines/{org}/{repo}/{pipeline}/templates pipelines GetTemplates
@@ -110,9 +110,9 @@ func GetTemplates(c *gin.Context) {
baseErr := fmt.Sprintf("unable to set template links for %s", entry)
- templates := make(map[string]*library.Template)
+ templates := make(map[string]*types.Template)
for name, template := range pipeline.Templates.Map() {
- templates[name] = template.ToLibrary()
+ templates[name] = template.ToAPI()
// create a compiler registry client for parsing (no address or token needed for Parse)
registry, err := github.New(ctx, "", "")
diff --git a/api/queue/queue.go b/api/queue/queue.go
index 2c5698bb6..ff7410095 100644
--- a/api/queue/queue.go
+++ b/api/queue/queue.go
@@ -8,7 +8,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/api/types"
)
// swagger:operation POST /api/v1/queue/info queue Info
@@ -43,7 +43,7 @@ func Info(c *gin.Context) {
// extract the queue-address that was packed into gin context
a := c.MustGet("queue-address").(string)
- wr := library.QueueInfo{
+ wr := types.QueueInfo{
QueuePublicKey: &k,
QueueAddress: &a,
}
diff --git a/api/service/plan.go b/api/service/plan.go
index afe7c0c32..963522120 100644
--- a/api/service/plan.go
+++ b/api/service/plan.go
@@ -13,7 +13,6 @@ import (
"github.com/go-vela/server/compiler/types/pipeline"
"github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
- "github.com/go-vela/types/library"
)
// PlanServices is a helper function to plan all services
@@ -49,16 +48,13 @@ func PlanServices(ctx context.Context, database database.Interface, p *pipeline.
"repo_id": b.GetRepo().GetID(),
}).Info("service created")
- // populate environment variables from service library
- //
- // https://pkg.go.dev/github.com/go-vela/types/library#Service.Environment
err = service.MergeEnv(s.Environment())
if err != nil {
return services, err
}
// create the log object
- l := new(library.Log)
+ l := new(types.Log)
l.SetServiceID(s.GetID())
l.SetBuildID(b.GetID())
l.SetRepoID(b.GetRepo().GetID())
diff --git a/api/step/plan.go b/api/step/plan.go
index 9b6356fec..cb85d1c35 100644
--- a/api/step/plan.go
+++ b/api/step/plan.go
@@ -14,7 +14,6 @@ import (
"github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/scm"
- "github.com/go-vela/types/library"
)
// PlanSteps is a helper function to plan all steps
@@ -78,16 +77,14 @@ func planStep(ctx context.Context, database database.Interface, scm scm.Service,
"repo_id": b.GetRepo().GetID(),
}).Info("step created")
- // populate environment variables from step library
- //
- // https://pkg.go.dev/github.com/go-vela/types/library#step.Environment
+ // populate environment variables from step
err = c.MergeEnv(s.Environment())
if err != nil {
return nil, err
}
// create the log object
- l := new(library.Log)
+ l := new(types.Log)
l.SetStepID(s.GetID())
l.SetBuildID(b.GetID())
l.SetRepoID(b.GetRepo().GetID())
diff --git a/api/types/build_executable.go b/api/types/build_executable.go
new file mode 100644
index 000000000..95030d423
--- /dev/null
+++ b/api/types/build_executable.go
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+)
+
+// BuildExecutable is the API representation of a BuildExecutable.
+//
+// swagger:model BuildExecutable
+type BuildExecutable struct {
+ ID *int64 `json:"id,omitempty"`
+ BuildID *int64 `json:"build_id,omitempty"`
+ // swagger:strfmt base64
+ Data *[]byte `json:"data,omitempty"`
+}
+
+// GetID returns the ID field.
+//
+// When the provided BuildExecutable type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (b *BuildExecutable) GetID() int64 {
+ // return zero value if BuildExecutable type or ID field is nil
+ if b == nil || b.ID == nil {
+ return 0
+ }
+
+ return *b.ID
+}
+
+// GetBuildID returns the BuildID field.
+//
+// When the provided BuildExecutable type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (b *BuildExecutable) GetBuildID() int64 {
+ // return zero value if BuildExecutable type or BuildID field is nil
+ if b == nil || b.BuildID == nil {
+ return 0
+ }
+
+ return *b.BuildID
+}
+
+// GetData returns the Data field.
+//
+// When the provided BuildExecutable type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (b *BuildExecutable) GetData() []byte {
+ // return zero value if BuildExecutable type or Data field is nil
+ if b == nil || b.Data == nil {
+ return []byte{}
+ }
+
+ return *b.Data
+}
+
+// SetID sets the ID field.
+//
+// When the provided BuildExecutable type is nil, it
+// will set nothing and immediately return.
+func (b *BuildExecutable) SetID(v int64) {
+ // return if BuildExecutable type is nil
+ if b == nil {
+ return
+ }
+
+ b.ID = &v
+}
+
+// SetBuildID sets the BuildID field.
+//
+// When the provided BuildExecutable type is nil, it
+// will set nothing and immediately return.
+func (b *BuildExecutable) SetBuildID(v int64) {
+ // return if BuildExecutable type is nil
+ if b == nil {
+ return
+ }
+
+ b.BuildID = &v
+}
+
+// SetData sets the Data field.
+//
+// When the provided BuildExecutable type is nil, it
+// will set nothing and immediately return.
+func (b *BuildExecutable) SetData(v []byte) {
+ // return if Log type is nil
+ if b == nil {
+ return
+ }
+
+ b.Data = &v
+}
+
+// String implements the Stringer interface for the BuildExecutable type.
+func (b *BuildExecutable) String() string {
+ return fmt.Sprintf(`{
+ ID: %d,
+ BuildID: %d,
+ Data: %s,
+}`,
+ b.GetID(),
+ b.GetBuildID(),
+ b.GetData(),
+ )
+}
diff --git a/api/types/build_executable_test.go b/api/types/build_executable_test.go
new file mode 100644
index 000000000..21ab41e6a
--- /dev/null
+++ b/api/types/build_executable_test.go
@@ -0,0 +1,136 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "reflect"
+ "testing"
+)
+
+func TestTypes_BuildExecutable_Getters(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ buildExecutable *BuildExecutable
+ want *BuildExecutable
+ }{
+ {
+ buildExecutable: testBuildExecutable(),
+ want: testBuildExecutable(),
+ },
+ {
+ buildExecutable: new(BuildExecutable),
+ want: new(BuildExecutable),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ if test.buildExecutable.GetID() != test.want.GetID() {
+ t.Errorf("GetID is %v, want %v", test.buildExecutable.GetID(), test.want.GetID())
+ }
+
+ if test.buildExecutable.GetBuildID() != test.want.GetBuildID() {
+ t.Errorf("GetBuildID is %v, want %v", test.buildExecutable.GetBuildID(), test.want.GetBuildID())
+ }
+
+ if !reflect.DeepEqual(test.buildExecutable.GetData(), test.want.GetData()) {
+ t.Errorf("GetData is %v, want %v", test.buildExecutable.GetData(), test.want.GetData())
+ }
+ }
+}
+
+func TestTypes_BuildExecutable_Setters(t *testing.T) {
+ // setup types
+ var bExecutable *BuildExecutable
+
+ // setup tests
+ tests := []struct {
+ buildExecutable *BuildExecutable
+ want *BuildExecutable
+ }{
+ {
+ buildExecutable: testBuildExecutable(),
+ want: testBuildExecutable(),
+ },
+ {
+ buildExecutable: bExecutable,
+ want: new(BuildExecutable),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ test.buildExecutable.SetID(test.want.GetID())
+ test.buildExecutable.SetBuildID(test.want.GetBuildID())
+ test.buildExecutable.SetData(test.want.GetData())
+
+ if test.buildExecutable.GetID() != test.want.GetID() {
+ t.Errorf("SetID is %v, want %v", test.buildExecutable.GetID(), test.want.GetID())
+ }
+
+ if test.buildExecutable.GetBuildID() != test.want.GetBuildID() {
+ t.Errorf("SetRepoID is %v, want %v", test.buildExecutable.GetBuildID(), test.want.GetBuildID())
+ }
+
+ if !reflect.DeepEqual(test.buildExecutable.GetData(), test.want.GetData()) {
+ t.Errorf("SetData is %v, want %v", test.buildExecutable.GetData(), test.want.GetData())
+ }
+ }
+}
+
+func TestTypes_BuildExecutable_String(t *testing.T) {
+ // setup types
+ bExecutable := testBuildExecutable()
+
+ want := fmt.Sprintf(`{
+ ID: %d,
+ BuildID: %d,
+ Data: %s,
+}`,
+ bExecutable.GetID(),
+ bExecutable.GetBuildID(),
+ bExecutable.GetData(),
+ )
+
+ // run test
+ got := bExecutable.String()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}
+
+// testBuildExecutable is a test helper function to create a Pipeline
+// type with all fields set to a fake value.
+func testBuildExecutable() *BuildExecutable {
+ p := new(BuildExecutable)
+
+ p.SetID(1)
+ p.SetBuildID(1)
+ p.SetData(testBuildExecutableData())
+
+ return p
+}
+
+// testBuildExecutableData is a test helper function to create the
+// content for the Data field for the Pipeline type.
+func testBuildExecutableData() []byte {
+ return []byte(`
+{
+ "id": "step_name",
+ "version": "1",
+ "metadata":{
+ "clone":true,
+ "environment":["steps","services","secrets"]},
+ "worker":{},
+ "steps":[
+ {
+ "id":"step_github_octocat_1_init",
+ "directory":"/vela/src/github.com/github/octocat",
+ "environment": {"BUILD_AUTHOR":"Octocat"}
+ }
+ ]
+}
+`)
+}
diff --git a/api/types/error.go b/api/types/error.go
new file mode 100644
index 000000000..a3c7b919b
--- /dev/null
+++ b/api/types/error.go
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import "fmt"
+
+// Error is the json error message from the server for a given http response.
+//
+// swagger:model Error
+type Error struct {
+ Message *string `json:"error"`
+}
+
+func (e *Error) String() string {
+ return fmt.Sprintf("%+v", *e)
+}
diff --git a/api/types/error_test.go b/api/types/error_test.go
new file mode 100644
index 000000000..4c1c7b3d0
--- /dev/null
+++ b/api/types/error_test.go
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "reflect"
+ "testing"
+)
+
+func TestResp_String(t *testing.T) {
+ // setup types
+ str := "foo"
+ e := &Error{
+ Message: &str,
+ }
+ want := fmt.Sprintf("%+v", *e)
+
+ // run test
+ got := e.String()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}
diff --git a/api/types/log.go b/api/types/log.go
new file mode 100644
index 000000000..3f2c52d5b
--- /dev/null
+++ b/api/types/log.go
@@ -0,0 +1,235 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "bytes"
+ "fmt"
+
+ "github.com/go-vela/server/constants"
+)
+
+// Log is the API representation of a log for a step in a build.
+//
+// swagger:model Log
+type Log struct {
+ ID *int64 `json:"id,omitempty"`
+ BuildID *int64 `json:"build_id,omitempty"`
+ RepoID *int64 `json:"repo_id,omitempty"`
+ ServiceID *int64 `json:"service_id,omitempty"`
+ StepID *int64 `json:"step_id,omitempty"`
+ // swagger:strfmt base64
+ Data *[]byte `json:"data,omitempty"`
+}
+
+// AppendData adds the provided data to the end of
+// the Data field for the Log type. If the Data
+// field is empty, then the function overwrites
+// the entire Data field.
+func (l *Log) AppendData(data []byte) {
+ // check if Data field is empty
+ if len(l.GetData()) == 0 {
+ // overwrite the Data field
+ l.SetData(data)
+
+ return
+ }
+
+ // add the data to the Data field
+ l.SetData(append(l.GetData(), data...))
+}
+
+// MaskData reads through the log data and masks
+// all values provided in the string slice. If the
+// log is empty, we do nothing.
+func (l *Log) MaskData(secrets []string) {
+ data := l.GetData()
+
+ // early exit on empty log or secret list
+ if len(data) == 0 || len(secrets) == 0 {
+ return
+ }
+
+ // byte replace data with masked logs
+ for _, secret := range secrets {
+ data = bytes.ReplaceAll(data, []byte(secret), []byte(constants.SecretLogMask))
+ }
+
+ // update data field to masked logs
+ l.SetData(data)
+}
+
+// GetID returns the ID field.
+//
+// When the provided Log type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (l *Log) GetID() int64 {
+ // return zero value if Log type or ID field is nil
+ if l == nil || l.ID == nil {
+ return 0
+ }
+
+ return *l.ID
+}
+
+// GetBuildID returns the BuildID field.
+//
+// When the provided Log type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (l *Log) GetBuildID() int64 {
+ // return zero value if Log type or BuildID field is nil
+ if l == nil || l.BuildID == nil {
+ return 0
+ }
+
+ return *l.BuildID
+}
+
+// GetRepoID returns the RepoID field.
+//
+// When the provided Log type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (l *Log) GetRepoID() int64 {
+ // return zero value if Log type or RepoID field is nil
+ if l == nil || l.RepoID == nil {
+ return 0
+ }
+
+ return *l.RepoID
+}
+
+// GetServiceID returns the ServiceID field.
+//
+// When the provided Log type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (l *Log) GetServiceID() int64 {
+ // return zero value if Log type or ServiceID field is nil
+ if l == nil || l.ServiceID == nil {
+ return 0
+ }
+
+ return *l.ServiceID
+}
+
+// GetStepID returns the StepID field.
+//
+// When the provided Log type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (l *Log) GetStepID() int64 {
+ // return zero value if Log type or StepID field is nil
+ if l == nil || l.StepID == nil {
+ return 0
+ }
+
+ return *l.StepID
+}
+
+// GetData returns the Data field.
+//
+// When the provided Log type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (l *Log) GetData() []byte {
+ // return zero value if Log type or Data field is nil
+ if l == nil || l.Data == nil {
+ return []byte{}
+ }
+
+ return *l.Data
+}
+
+// SetID sets the ID field.
+//
+// When the provided Log type is nil, it
+// will set nothing and immediately return.
+func (l *Log) SetID(v int64) {
+ // return if Log type is nil
+ if l == nil {
+ return
+ }
+
+ l.ID = &v
+}
+
+// SetBuildID sets the BuildID field.
+//
+// When the provided Log type is nil, it
+// will set nothing and immediately return.
+func (l *Log) SetBuildID(v int64) {
+ // return if Log type is nil
+ if l == nil {
+ return
+ }
+
+ l.BuildID = &v
+}
+
+// SetRepoID sets the RepoID field.
+//
+// When the provided Log type is nil, it
+// will set nothing and immediately return.
+func (l *Log) SetRepoID(v int64) {
+ // return if Log type is nil
+ if l == nil {
+ return
+ }
+
+ l.RepoID = &v
+}
+
+// SetServiceID sets the ServiceID field.
+//
+// When the provided Log type is nil, it
+// will set nothing and immediately return.
+func (l *Log) SetServiceID(v int64) {
+ // return if Log type is nil
+ if l == nil {
+ return
+ }
+
+ l.ServiceID = &v
+}
+
+// SetStepID sets the StepID field.
+//
+// When the provided Log type is nil, it
+// will set nothing and immediately return.
+func (l *Log) SetStepID(v int64) {
+ // return if Log type is nil
+ if l == nil {
+ return
+ }
+
+ l.StepID = &v
+}
+
+// SetData sets the Data field.
+//
+// When the provided Log type is nil, it
+// will set nothing and immediately return.
+func (l *Log) SetData(v []byte) {
+ // return if Log type is nil
+ if l == nil {
+ return
+ }
+
+ l.Data = &v
+}
+
+// String implements the Stringer interface for the Log type.
+func (l *Log) String() string {
+ return fmt.Sprintf(`{
+ BuildID: %d,
+ Data: %s,
+ ID: %d,
+ RepoID: %d,
+ ServiceID: %d,
+ StepID: %d,
+}`,
+ l.GetBuildID(),
+ l.GetData(),
+ l.GetID(),
+ l.GetRepoID(),
+ l.GetServiceID(),
+ l.GetStepID(),
+ )
+}
diff --git a/api/types/log_test.go b/api/types/log_test.go
new file mode 100644
index 000000000..39a3f68ae
--- /dev/null
+++ b/api/types/log_test.go
@@ -0,0 +1,277 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "reflect"
+ "testing"
+)
+
+func TestTypes_Log_AppendData(t *testing.T) {
+ // setup types
+ data := []byte("bar")
+
+ want := testLog()
+ want.SetData([]byte("foobar"))
+
+ // setup tests
+ tests := []struct {
+ log *Log
+ want *Log
+ }{
+ {
+ log: testLog(),
+ want: want,
+ },
+ {
+ log: new(Log),
+ want: &Log{Data: &data},
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ test.log.AppendData(data)
+
+ if !reflect.DeepEqual(test.log, test.want) {
+ t.Errorf("AppendData is %v, want %v", test.log, test.want)
+ }
+ }
+}
+
+func TestTypes_Log_MaskData(t *testing.T) {
+ // set up test secrets
+ sVals := []string{"gh_abc123def456", "((%.YY245***pP.><@@}}", "quick-bear-fox-squid", "SUPERSECRETVALUE"}
+
+ tests := []struct {
+ log []byte
+ want []byte
+ secrets []string
+ }{
+ { // no secrets in log
+ log: []byte(
+ "$ echo hello\nhello\n",
+ ),
+ want: []byte(
+ "$ echo hello\nhello\n",
+ ),
+ secrets: sVals,
+ },
+ { // one secret in log
+ log: []byte(
+ "((%.YY245***pP.><@@}}",
+ ),
+ want: []byte(
+ "***",
+ ),
+ secrets: sVals,
+ },
+ { // multiple secrets in log
+ log: []byte(
+ "$ echo $SECRET1\n((%.YY245***pP.><@@}}\n$ echo $SECRET2\nquick-bear-fox-squid\n",
+ ),
+ want: []byte(
+ "$ echo $SECRET1\n***\n$ echo $SECRET2\n***\n",
+ ),
+ secrets: sVals,
+ },
+ { // secret with leading =
+ log: []byte(
+ "SOME_SECRET=((%.YY245***pP.><@@}}",
+ ),
+ want: []byte(
+ "SOME_SECRET=***",
+ ),
+ secrets: sVals,
+ },
+ { // secret baked in URL query params
+ log: []byte(
+ "www.example.com?username=quick-bear-fox-squid&password=SUPERSECRETVALUE",
+ ),
+ want: []byte(
+ "www.example.com?username=***&password=***",
+ ),
+ secrets: sVals,
+ },
+ { // secret in verbose brackets
+ log: []byte(
+ "[token: gh_abc123def456]",
+ ),
+ want: []byte(
+ "[token: ***]",
+ ),
+ secrets: sVals,
+ },
+ { // double secret
+ log: []byte(
+ "echo ${GITHUB_TOKEN}${SUPER_SECRET}\ngh_abc123def456SUPERSECRETVALUE\n",
+ ),
+ want: []byte(
+ "echo ${GITHUB_TOKEN}${SUPER_SECRET}\n******\n",
+ ),
+ secrets: sVals,
+ },
+ { // empty secrets slice
+ log: []byte(
+ "echo hello\nhello\n",
+ ),
+ want: []byte(
+ "echo hello\nhello\n",
+ ),
+ secrets: []string{},
+ },
+ }
+ // run tests
+ l := testLog()
+ for _, test := range tests {
+ l.SetData(test.log)
+ l.MaskData(test.secrets)
+
+ got := l.GetData()
+ if !reflect.DeepEqual(got, test.want) {
+ t.Errorf("MaskData is %v, want %v", string(got), string(test.want))
+ }
+ }
+}
+
+func TestTypes_Log_Getters(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ log *Log
+ want *Log
+ }{
+ {
+ log: testLog(),
+ want: testLog(),
+ },
+ {
+ log: new(Log),
+ want: new(Log),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ if test.log.GetID() != test.want.GetID() {
+ t.Errorf("GetID is %v, want %v", test.log.GetID(), test.want.GetID())
+ }
+
+ if test.log.GetServiceID() != test.want.GetServiceID() {
+ t.Errorf("GetServiceID is %v, want %v", test.log.GetServiceID(), test.want.GetServiceID())
+ }
+
+ if test.log.GetStepID() != test.want.GetStepID() {
+ t.Errorf("GetStepID is %v, want %v", test.log.GetStepID(), test.want.GetStepID())
+ }
+
+ if test.log.GetBuildID() != test.want.GetBuildID() {
+ t.Errorf("GetBuildID is %v, want %v", test.log.GetBuildID(), test.want.GetBuildID())
+ }
+
+ if test.log.GetRepoID() != test.want.GetRepoID() {
+ t.Errorf("GetRepoID is %v, want %v", test.log.GetRepoID(), test.want.GetRepoID())
+ }
+
+ if !reflect.DeepEqual(test.log.GetData(), test.want.GetData()) {
+ t.Errorf("GetData is %v, want %v", test.log.GetData(), test.want.GetData())
+ }
+ }
+}
+
+func TestTypes_Log_Setters(t *testing.T) {
+ // setup types
+ var l *Log
+
+ // setup tests
+ tests := []struct {
+ log *Log
+ want *Log
+ }{
+ {
+ log: testLog(),
+ want: testLog(),
+ },
+ {
+ log: l,
+ want: new(Log),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ test.log.SetID(test.want.GetID())
+ test.log.SetServiceID(test.want.GetServiceID())
+ test.log.SetStepID(test.want.GetStepID())
+ test.log.SetBuildID(test.want.GetBuildID())
+ test.log.SetRepoID(test.want.GetRepoID())
+ test.log.SetData(test.want.GetData())
+
+ if test.log.GetID() != test.want.GetID() {
+ t.Errorf("SetID is %v, want %v", test.log.GetID(), test.want.GetID())
+ }
+
+ if test.log.GetServiceID() != test.want.GetServiceID() {
+ t.Errorf("SetServiceID is %v, want %v", test.log.GetServiceID(), test.want.GetServiceID())
+ }
+
+ if test.log.GetStepID() != test.want.GetStepID() {
+ t.Errorf("SetStepID is %v, want %v", test.log.GetStepID(), test.want.GetStepID())
+ }
+
+ if test.log.GetBuildID() != test.want.GetBuildID() {
+ t.Errorf("SetBuildID is %v, want %v", test.log.GetBuildID(), test.want.GetBuildID())
+ }
+
+ if test.log.GetRepoID() != test.want.GetRepoID() {
+ t.Errorf("SetRepoID is %v, want %v", test.log.GetRepoID(), test.want.GetRepoID())
+ }
+
+ if !reflect.DeepEqual(test.log.GetData(), test.want.GetData()) {
+ t.Errorf("SetData is %v, want %v", test.log.GetData(), test.want.GetData())
+ }
+ }
+}
+
+func TestTypes_Log_String(t *testing.T) {
+ // setup types
+ l := testLog()
+
+ want := fmt.Sprintf(`{
+ BuildID: %d,
+ Data: %s,
+ ID: %d,
+ RepoID: %d,
+ ServiceID: %d,
+ StepID: %d,
+}`,
+ l.GetBuildID(),
+ l.GetData(),
+ l.GetID(),
+ l.GetRepoID(),
+ l.GetServiceID(),
+ l.GetStepID(),
+ )
+
+ // run test
+ got := l.String()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}
+
+// testLog is a test helper function to create a Log
+// type with all fields set to a fake value.
+func testLog() *Log {
+ l := new(Log)
+
+ l.SetID(1)
+ l.SetServiceID(1)
+ l.SetStepID(1)
+ l.SetBuildID(1)
+ l.SetRepoID(1)
+ l.SetData([]byte("foo"))
+
+ return l
+}
diff --git a/api/types/pipeline_test.go b/api/types/pipeline_test.go
index a06d299ca..a925d9940 100644
--- a/api/types/pipeline_test.go
+++ b/api/types/pipeline_test.go
@@ -8,7 +8,7 @@ import (
"testing"
)
-func TestLibrary_Pipeline_Getters(t *testing.T) {
+func TestAPI_Pipeline_Getters(t *testing.T) {
// setup tests
tests := []struct {
pipeline *Pipeline
@@ -88,7 +88,7 @@ func TestLibrary_Pipeline_Getters(t *testing.T) {
}
}
-func TestLibrary_Pipeline_Setters(t *testing.T) {
+func TestAPI_Pipeline_Setters(t *testing.T) {
// setup types
var p *Pipeline
@@ -187,7 +187,7 @@ func TestLibrary_Pipeline_Setters(t *testing.T) {
}
}
-func TestLibrary_Pipeline_String(t *testing.T) {
+func TestAPI_Pipeline_String(t *testing.T) {
// setup types
p := testPipeline()
diff --git a/api/types/queue_info.go b/api/types/queue_info.go
new file mode 100644
index 000000000..bf10b8cc0
--- /dev/null
+++ b/api/types/queue_info.go
@@ -0,0 +1,63 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+// QueueInfo is the API representation of a QueueInfo.
+//
+// swagger:model QueueInfo
+type QueueInfo struct {
+ QueuePublicKey *string `json:"queue_public_key,omitempty"`
+ QueueAddress *string `json:"queue_address,omitempty"`
+}
+
+// GetPublicKey returns the QueuePublicKey field.
+//
+// When the provided QueueInfo type is nil, or the field within
+// the type is nil, it returns an empty string for the field.
+func (w *QueueInfo) GetPublicKey() string {
+ // return zero value if QueueInfo type or QueuePublicKey field is nil
+ if w == nil || w.QueuePublicKey == nil {
+ return ""
+ }
+
+ return *w.QueuePublicKey
+}
+
+// GetQueueAddress returns the QueueAddress field.
+//
+// When the provided QueueInfo type is nil, or the field within
+// the type is nil, it returns an empty string for the field.
+func (w *QueueInfo) GetQueueAddress() string {
+ // return zero value if QueueInfo type or QueueAddress field is nil
+ if w == nil || w.QueueAddress == nil {
+ return ""
+ }
+
+ return *w.QueueAddress
+}
+
+// SetPublicKey sets the QueuePublicKey field.
+//
+// When the provided QueueInfo type is nil, it
+// will set nothing and immediately return.
+func (w *QueueInfo) SetPublicKey(v string) {
+ // return if QueueInfo type is nil
+ if w == nil {
+ return
+ }
+
+ w.QueuePublicKey = &v
+}
+
+// SetQueueAddress sets the QueueAddress field.
+//
+// When the provided QueueInfo type is nil, it
+// will set nothing and immediately return.
+func (w *QueueInfo) SetQueueAddress(v string) {
+ // return if QueueInfo type is nil
+ if w == nil {
+ return
+ }
+
+ w.QueueAddress = &v
+}
diff --git a/api/types/queue_info_test.go b/api/types/queue_info_test.go
new file mode 100644
index 000000000..42a4f3535
--- /dev/null
+++ b/api/types/queue_info_test.go
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "testing"
+)
+
+func TestTypes_QueueInfo_Getters(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ qR *QueueInfo
+ want *QueueInfo
+ }{
+ {
+ qR: testQueueInfo(),
+ want: testQueueInfo(),
+ },
+ {
+ qR: new(QueueInfo),
+ want: new(QueueInfo),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ if test.qR.GetQueueAddress() != test.want.GetQueueAddress() {
+ t.Errorf("GetQueueAddress is %v, want %v", test.qR.GetQueueAddress(), test.want.GetQueueAddress())
+ }
+
+ if test.qR.GetPublicKey() != test.want.GetPublicKey() {
+ t.Errorf("GetPublicKey is %v, want %v", test.qR.GetPublicKey(), test.want.GetPublicKey())
+ }
+ }
+}
+
+func TestTypes_QueueInfo_Setters(t *testing.T) {
+ // setup types
+ var w *QueueInfo
+
+ // setup tests
+ tests := []struct {
+ qR *QueueInfo
+ want *QueueInfo
+ }{
+ {
+ qR: testQueueInfo(),
+ want: testQueueInfo(),
+ },
+ {
+ qR: w,
+ want: new(QueueInfo),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ test.qR.SetQueueAddress(test.want.GetQueueAddress())
+ test.qR.SetPublicKey(test.want.GetPublicKey())
+
+ if test.qR.GetQueueAddress() != test.want.GetQueueAddress() {
+ t.Errorf("GetQueueAddress is %v, want %v", test.qR.GetQueueAddress(), test.want.GetQueueAddress())
+ }
+
+ if test.qR.GetPublicKey() != test.want.GetPublicKey() {
+ t.Errorf("GetPublicKey is %v, want %v", test.qR.GetPublicKey(), test.want.GetPublicKey())
+ }
+ }
+}
+
+// testQueueInfo is a test helper function to register a QueueInfo
+// type with all fields set to a fake value.
+func testQueueInfo() *QueueInfo {
+ w := new(QueueInfo)
+ w.SetQueueAddress("http://localhost:8080")
+ w.SetPublicKey("CuS+EQAzofbk3tVFS3bt5f2tIb4YiJJC4nVMFQYQElg=")
+
+ return w
+}
diff --git a/api/types/template.go b/api/types/template.go
new file mode 100644
index 000000000..2090e5ae7
--- /dev/null
+++ b/api/types/template.go
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: Apache-2.0
+
+//nolint:dupl // ignore false positive with build_queue.go
+package types
+
+import (
+ "fmt"
+)
+
+// Template is the API representation of a template for a pipeline.
+//
+// swagger:model Template
+type Template struct {
+ Link *string `json:"link,omitempty"`
+ Name *string `json:"name,omitempty"`
+ Source *string `json:"source,omitempty"`
+ Type *string `json:"type,omitempty"`
+}
+
+// GetLink returns the Link field.
+//
+// When the provided Template type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (t *Template) GetLink() string {
+ // return zero value if Template type or Link field is nil
+ if t == nil || t.Link == nil {
+ return ""
+ }
+
+ return *t.Link
+}
+
+// GetName returns the Name field.
+//
+// When the provided Template type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (t *Template) GetName() string {
+ // return zero value if Template type or Name field is nil
+ if t == nil || t.Name == nil {
+ return ""
+ }
+
+ return *t.Name
+}
+
+// GetSource returns the Source field.
+//
+// When the provided Template type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (t *Template) GetSource() string {
+ // return zero value if Template type or Source field is nil
+ if t == nil || t.Source == nil {
+ return ""
+ }
+
+ return *t.Source
+}
+
+// GetType returns the Type field.
+//
+// When the provided Template type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (t *Template) GetType() string {
+ // return zero value if Template type or Type field is nil
+ if t == nil || t.Type == nil {
+ return ""
+ }
+
+ return *t.Type
+}
+
+// SetLink sets the Link field.
+//
+// When the provided Template type is nil, it
+// will set nothing and immediately return.
+func (t *Template) SetLink(v string) {
+ // return if Template type is nil
+ if t == nil {
+ return
+ }
+
+ t.Link = &v
+}
+
+// SetName sets the Name field.
+//
+// When the provided Template type is nil, it
+// will set nothing and immediately return.
+func (t *Template) SetName(v string) {
+ // return if Template type is nil
+ if t == nil {
+ return
+ }
+
+ t.Name = &v
+}
+
+// SetSource sets the Source field.
+//
+// When the provided Template type is nil, it
+// will set nothing and immediately return.
+func (t *Template) SetSource(v string) {
+ // return if Template type is nil
+ if t == nil {
+ return
+ }
+
+ t.Source = &v
+}
+
+// SetType sets the Type field.
+//
+// When the provided Template type is nil, it
+// will set nothing and immediately return.
+func (t *Template) SetType(v string) {
+ // return if Template type is nil
+ if t == nil {
+ return
+ }
+
+ t.Type = &v
+}
+
+// String implements the Stringer interface for the Template type.
+func (t *Template) String() string {
+ return fmt.Sprintf(`{
+ Link: %s,
+ Name: %s,
+ Source: %s,
+ Type: %s,
+}`,
+ t.GetLink(),
+ t.GetName(),
+ t.GetSource(),
+ t.GetType(),
+ )
+}
diff --git a/api/types/template_test.go b/api/types/template_test.go
new file mode 100644
index 000000000..c08793222
--- /dev/null
+++ b/api/types/template_test.go
@@ -0,0 +1,126 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "reflect"
+ "testing"
+)
+
+func TestTypes_Template_Getters(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ template *Template
+ want *Template
+ }{
+ {
+ template: testTemplate(),
+ want: testTemplate(),
+ },
+ {
+ template: new(Template),
+ want: new(Template),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ if test.template.GetLink() != test.want.GetLink() {
+ t.Errorf("GetLink is %v, want %v", test.template.GetLink(), test.want.GetLink())
+ }
+
+ if test.template.GetName() != test.want.GetName() {
+ t.Errorf("GetName is %v, want %v", test.template.GetName(), test.want.GetName())
+ }
+
+ if test.template.GetSource() != test.want.GetSource() {
+ t.Errorf("GetSource is %v, want %v", test.template.GetSource(), test.want.GetSource())
+ }
+
+ if test.template.GetType() != test.want.GetType() {
+ t.Errorf("GetType is %v, want %v", test.template.GetType(), test.want.GetType())
+ }
+ }
+}
+
+func TestTypes_Template_Setters(t *testing.T) {
+ // setup types
+ var tmpl *Template
+
+ // setup tests
+ tests := []struct {
+ template *Template
+ want *Template
+ }{
+ {
+ template: testTemplate(),
+ want: testTemplate(),
+ },
+ {
+ template: tmpl,
+ want: new(Template),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ test.template.SetLink(test.want.GetLink())
+ test.template.SetName(test.want.GetName())
+ test.template.SetSource(test.want.GetSource())
+ test.template.SetType(test.want.GetType())
+
+ if test.template.GetLink() != test.want.GetLink() {
+ t.Errorf("SetLink is %v, want %v", test.template.GetLink(), test.want.GetLink())
+ }
+
+ if test.template.GetName() != test.want.GetName() {
+ t.Errorf("SetName is %v, want %v", test.template.GetName(), test.want.GetName())
+ }
+
+ if test.template.GetSource() != test.want.GetSource() {
+ t.Errorf("SetSource is %v, want %v", test.template.GetSource(), test.want.GetSource())
+ }
+
+ if test.template.GetType() != test.want.GetType() {
+ t.Errorf("SetType is %v, want %v", test.template.GetType(), test.want.GetType())
+ }
+ }
+}
+
+func TestTypes_Template_String(t *testing.T) {
+ // setup types
+ tmpl := testTemplate()
+
+ want := fmt.Sprintf(`{
+ Link: %s,
+ Name: %s,
+ Source: %s,
+ Type: %s,
+}`,
+ tmpl.GetLink(),
+ tmpl.GetName(),
+ tmpl.GetSource(),
+ tmpl.GetType(),
+ )
+
+ // run test
+ got := tmpl.String()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}
+
+// testTemplate is a test helper function to create a Template
+// type with all fields set to a fake value.
+func testTemplate() *Template {
+ t := new(Template)
+
+ t.SetLink("https://github.com/github/octocat/blob/branch/template.yml")
+ t.SetName("template")
+ t.SetSource("github.com/github/octocat/template.yml@branch")
+ t.SetType("github")
+
+ return t
+}
diff --git a/api/types/token.go b/api/types/token.go
new file mode 100644
index 000000000..e49159254
--- /dev/null
+++ b/api/types/token.go
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import "fmt"
+
+// Token is the API representation of a token response from server.
+//
+// swagger:model Token
+type Token struct {
+ Token *string `json:"token,omitempty"`
+}
+
+// GetToken returns the Token field.
+//
+// When the provided Token type is nil, or the field within
+// the type is nil, it returns the zero value for the field.
+func (l *Token) GetToken() string {
+ // return zero value if Token type or Token field is nil
+ if l == nil || l.Token == nil {
+ return ""
+ }
+
+ return *l.Token
+}
+
+// SetToken sets the Token field.
+//
+// When the provided Token type is nil, it
+// will set nothing and immediately return.
+func (l *Token) SetToken(v string) {
+ // return if Token type is nil
+ if l == nil {
+ return
+ }
+
+ l.Token = &v
+}
+
+// String implements the Stringer interface for the Token type.
+func (l *Token) String() string {
+ return fmt.Sprintf(`{
+ Token: %s,
+}`,
+ l.GetToken(),
+ )
+}
diff --git a/api/types/token_test.go b/api/types/token_test.go
new file mode 100644
index 000000000..26fa57912
--- /dev/null
+++ b/api/types/token_test.go
@@ -0,0 +1,90 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "fmt"
+ "reflect"
+ "testing"
+)
+
+func TestTypes_Token_Getters(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ token *Token
+ want *Token
+ }{
+ {
+ token: testToken(),
+ want: testToken(),
+ },
+ {
+ token: new(Token),
+ want: new(Token),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ if test.token.GetToken() != test.want.GetToken() {
+ t.Errorf("GetToken is %v, want %v", test.token.GetToken(), test.want.GetToken())
+ }
+ }
+}
+
+func TestTypes_Token_Setters(t *testing.T) {
+ // setup types
+ var l *Token
+
+ // setup tests
+ tests := []struct {
+ token *Token
+ want *Token
+ }{
+ {
+ token: testToken(),
+ want: testToken(),
+ },
+ {
+ token: l,
+ want: new(Token),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ test.token.SetToken(test.want.GetToken())
+
+ if test.token.GetToken() != test.want.GetToken() {
+ t.Errorf("SetToken is %v, want %v", test.token.GetToken(), test.want.GetToken())
+ }
+ }
+}
+
+func TestToken_String(t *testing.T) {
+ // setup types
+ l := testToken()
+
+ want := fmt.Sprintf(`{
+ Token: %s,
+}`,
+ l.GetToken(),
+ )
+
+ // run test
+ got := l.String()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}
+
+// testToken is a test helper function to create a Token
+// type with all fields set to a fake value.
+func testToken() *Token {
+ l := new(Token)
+
+ l.SetToken("superSecretToken")
+
+ return l
+}
diff --git a/api/user/create_token.go b/api/user/create_token.go
index 2eb0c9028..bb1345193 100644
--- a/api/user/create_token.go
+++ b/api/user/create_token.go
@@ -10,11 +10,11 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation POST /api/v1/user/token users CreateToken
@@ -76,5 +76,5 @@ func CreateToken(c *gin.Context) {
l.Info("user updated - token created")
- c.JSON(http.StatusOK, library.Token{Token: &at})
+ c.JSON(http.StatusOK, types.Token{Token: &at})
}
diff --git a/api/user/delete_token.go b/api/user/delete_token.go
index 8ee9f27da..6a03d21e8 100644
--- a/api/user/delete_token.go
+++ b/api/user/delete_token.go
@@ -10,11 +10,11 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/user"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation DELETE /api/v1/user/token users DeleteToken
@@ -76,5 +76,5 @@ func DeleteToken(c *gin.Context) {
l.Info("user updated - token rotated")
- c.JSON(http.StatusOK, library.Token{Token: &at})
+ c.JSON(http.StatusOK, types.Token{Token: &at})
}
diff --git a/api/user/get_source.go b/api/user/get_source.go
index 19b75eea3..4a7fe2bf2 100644
--- a/api/user/get_source.go
+++ b/api/user/get_source.go
@@ -71,7 +71,7 @@ func GetSourceRepos(c *gin.Context) {
name := srepo.Name
active := false
- // library struct to omit optional fields
+ // API struct to omit optional fields
repo := types.Repo{
Org: org,
Name: name,
diff --git a/api/worker/create.go b/api/worker/create.go
index 7b577e3e5..9437f47df 100644
--- a/api/worker/create.go
+++ b/api/worker/create.go
@@ -17,7 +17,6 @@ import (
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation POST /api/v1/workers workers CreateWorker
@@ -105,7 +104,7 @@ func CreateWorker(c *gin.Context) {
// if symmetric token configured, send back symmetric token
case constants.ServerWorkerTokenType:
if secret, ok := c.Value("secret").(string); ok {
- tkn := new(library.Token)
+ tkn := new(types.Token)
tkn.SetToken(secret)
c.JSON(http.StatusCreated, tkn)
@@ -127,7 +126,7 @@ func CreateWorker(c *gin.Context) {
Hostname: cl.Subject,
}
- tkn := new(library.Token)
+ tkn := new(types.Token)
wt, err := tm.MintToken(wmto)
if err != nil {
diff --git a/api/worker/refresh.go b/api/worker/refresh.go
index 6b8d69fe6..7a1c86766 100644
--- a/api/worker/refresh.go
+++ b/api/worker/refresh.go
@@ -11,13 +11,13 @@ import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
+ "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
"github.com/go-vela/server/database"
"github.com/go-vela/server/internal/token"
"github.com/go-vela/server/router/middleware/claims"
"github.com/go-vela/server/router/middleware/worker"
"github.com/go-vela/server/util"
- "github.com/go-vela/types/library"
)
// swagger:operation POST /api/v1/workers/{worker}/refresh workers RefreshWorkerAuth
@@ -98,7 +98,7 @@ func Refresh(c *gin.Context) {
// if symmetric token configured, send back symmetric token
case constants.ServerWorkerTokenType:
if secret, ok := c.Value("secret").(string); ok {
- tkn := new(library.Token)
+ tkn := new(types.Token)
tkn.SetToken(secret)
c.JSON(http.StatusOK, tkn)
@@ -120,7 +120,7 @@ func Refresh(c *gin.Context) {
Hostname: cl.Subject,
}
- tkn := new(library.Token)
+ tkn := new(types.Token)
wt, err := tm.MintToken(wmto)
if err != nil {
diff --git a/compiler/engine.go b/compiler/engine.go
index 0f09c7ecb..31f85852e 100644
--- a/compiler/engine.go
+++ b/compiler/engine.go
@@ -117,7 +117,7 @@ type Engine interface {
// With Compiler Interface Functions
// WithBuild defines a function that sets
- // the library build type in the Engine.
+ // the API build type in the Engine.
WithBuild(*api.Build) Engine
// WithComment defines a function that sets
// the comment in the Engine.
@@ -138,10 +138,10 @@ type Engine interface {
// the compiler Metadata type in the Engine.
WithMetadata(*internal.Metadata) Engine
// WithRepo defines a function that sets
- // the library repo type in the Engine.
+ // the API repo type in the Engine.
WithRepo(*api.Repo) Engine
// WithUser defines a function that sets
- // the library user type in the Engine.
+ // the API user type in the Engine.
WithUser(*api.User) Engine
// WithLabel defines a function that sets
// the label(s) in the Engine.
diff --git a/compiler/native/compile.go b/compiler/native/compile.go
index 00620e3f2..e39d43718 100644
--- a/compiler/native/compile.go
+++ b/compiler/native/compile.go
@@ -108,7 +108,7 @@ func (c *client) CompileLite(ctx context.Context, v interface{}, ruleData *pipel
return nil, nil, err
}
- // create the library pipeline object from the yaml configuration
+ // create the API pipeline object from the yaml configuration
_pipeline := p.ToPipelineAPI()
_pipeline.SetData(data)
_pipeline.SetType(c.repo.GetPipelineType())
@@ -502,7 +502,7 @@ func errorHandler(resp *http.Response, err error, attempts int) (*http.Response,
}
// modifyConfig sends the configuration to external http endpoint for modification.
-func (c *client) modifyConfig(build *yaml.Build, libraryBuild *api.Build, repo *api.Repo) (*yaml.Build, error) {
+func (c *client) modifyConfig(build *yaml.Build, apiBuild *api.Build, repo *api.Repo) (*yaml.Build, error) {
// create request to send to endpoint
data, err := yml.Marshal(build)
if err != nil {
@@ -511,10 +511,10 @@ func (c *client) modifyConfig(build *yaml.Build, libraryBuild *api.Build, repo *
modReq := &ModifyRequest{
Pipeline: string(data),
- Build: libraryBuild.GetNumber(),
+ Build: apiBuild.GetNumber(),
Repo: repo.GetName(),
Org: repo.GetOrg(),
- User: libraryBuild.GetAuthor(),
+ User: apiBuild.GetAuthor(),
}
// marshal json to send in request
diff --git a/compiler/native/compile_test.go b/compiler/native/compile_test.go
index 7b3ad7e6d..e98b13e2b 100644
--- a/compiler/native/compile_test.go
+++ b/compiler/native/compile_test.go
@@ -321,9 +321,9 @@ func TestNative_Compile_StagesPipeline_Modification(t *testing.T) {
}
type args struct {
- endpoint string
- libraryBuild *api.Build
- repo *api.Repo
+ endpoint string
+ apiBuild *api.Build
+ repo *api.Repo
}
tests := []struct {
@@ -332,14 +332,14 @@ func TestNative_Compile_StagesPipeline_Modification(t *testing.T) {
wantErr bool
}{
{"bad url", args{
- libraryBuild: &api.Build{Number: &number, Author: &author},
- repo: &api.Repo{Name: &name},
- endpoint: "bad",
+ apiBuild: &api.Build{Number: &number, Author: &author},
+ repo: &api.Repo{Name: &name},
+ endpoint: "bad",
}, true},
{"invalid return", args{
- libraryBuild: &api.Build{Number: &number, Author: &author},
- repo: &api.Repo{Name: &name},
- endpoint: fmt.Sprintf("%s/%s", s.URL, "config/bad"),
+ apiBuild: &api.Build{Number: &number, Author: &author},
+ repo: &api.Repo{Name: &name},
+ endpoint: fmt.Sprintf("%s/%s", s.URL, "config/bad"),
}, true},
}
@@ -410,9 +410,9 @@ func TestNative_Compile_StepsPipeline_Modification(t *testing.T) {
}
type args struct {
- endpoint string
- libraryBuild *api.Build
- repo *api.Repo
+ endpoint string
+ apiBuild *api.Build
+ repo *api.Repo
}
tests := []struct {
@@ -421,14 +421,14 @@ func TestNative_Compile_StepsPipeline_Modification(t *testing.T) {
wantErr bool
}{
{"bad url", args{
- libraryBuild: &api.Build{Number: &number, Author: &author},
- repo: &api.Repo{Name: &name},
- endpoint: "bad",
+ apiBuild: &api.Build{Number: &number, Author: &author},
+ repo: &api.Repo{Name: &name},
+ endpoint: "bad",
}, true},
{"invalid return", args{
- libraryBuild: &api.Build{Number: &number, Author: &author},
- repo: &api.Repo{Name: &name},
- endpoint: fmt.Sprintf("%s/%s", s.URL, "config/bad"),
+ apiBuild: &api.Build{Number: &number, Author: &author},
+ repo: &api.Repo{Name: &name},
+ endpoint: fmt.Sprintf("%s/%s", s.URL, "config/bad"),
}, true},
}
@@ -440,7 +440,7 @@ func TestNative_Compile_StepsPipeline_Modification(t *testing.T) {
Endpoint: tt.args.endpoint,
},
repo: tt.args.repo,
- build: tt.args.libraryBuild,
+ build: tt.args.apiBuild,
metadata: m,
}
_, _, err := compiler.Compile(context.Background(), yaml)
@@ -2168,10 +2168,10 @@ func Test_client_modifyConfig(t *testing.T) {
number := 1
type args struct {
- endpoint string
- build *yaml.Build
- libraryBuild *api.Build
- repo *api.Repo
+ endpoint string
+ build *yaml.Build
+ apiBuild *api.Build
+ repo *api.Repo
}
tests := []struct {
@@ -2181,40 +2181,40 @@ func Test_client_modifyConfig(t *testing.T) {
wantErr bool
}{
{"unmodified", args{
- build: want,
- libraryBuild: &api.Build{Number: &number, Author: &author},
- repo: &api.Repo{Name: &name},
- endpoint: fmt.Sprintf("%s/%s", s.URL, "config/unmodified"),
+ build: want,
+ apiBuild: &api.Build{Number: &number, Author: &author},
+ repo: &api.Repo{Name: &name},
+ endpoint: fmt.Sprintf("%s/%s", s.URL, "config/unmodified"),
}, want, false},
{"modified", args{
- build: want,
- libraryBuild: &api.Build{Number: &number, Author: &author},
- repo: &api.Repo{Name: &name},
- endpoint: fmt.Sprintf("%s/%s", s.URL, "config/modified"),
+ build: want,
+ apiBuild: &api.Build{Number: &number, Author: &author},
+ repo: &api.Repo{Name: &name},
+ endpoint: fmt.Sprintf("%s/%s", s.URL, "config/modified"),
}, want2, false},
{"invalid endpoint", args{
- build: want,
- libraryBuild: &api.Build{Number: &number, Author: &author},
- repo: &api.Repo{Name: &name},
- endpoint: "bad",
+ build: want,
+ apiBuild: &api.Build{Number: &number, Author: &author},
+ repo: &api.Repo{Name: &name},
+ endpoint: "bad",
}, nil, true},
{"unauthorized endpoint", args{
- build: want,
- libraryBuild: &api.Build{Number: &number, Author: &author},
- repo: &api.Repo{Name: &name},
- endpoint: fmt.Sprintf("%s/%s", s.URL, "config/unauthorized"),
+ build: want,
+ apiBuild: &api.Build{Number: &number, Author: &author},
+ repo: &api.Repo{Name: &name},
+ endpoint: fmt.Sprintf("%s/%s", s.URL, "config/unauthorized"),
}, nil, true},
{"timeout endpoint", args{
- build: want,
- libraryBuild: &api.Build{Number: &number, Author: &author},
- repo: &api.Repo{Name: &name},
- endpoint: fmt.Sprintf("%s/%s", s.URL, "config/timeout"),
+ build: want,
+ apiBuild: &api.Build{Number: &number, Author: &author},
+ repo: &api.Repo{Name: &name},
+ endpoint: fmt.Sprintf("%s/%s", s.URL, "config/timeout"),
}, nil, true},
{"empty payload", args{
- build: want,
- libraryBuild: &api.Build{Number: &number, Author: &author},
- repo: &api.Repo{Name: &name},
- endpoint: fmt.Sprintf("%s/%s", s.URL, "config/empty"),
+ build: want,
+ apiBuild: &api.Build{Number: &number, Author: &author},
+ repo: &api.Repo{Name: &name},
+ endpoint: fmt.Sprintf("%s/%s", s.URL, "config/empty"),
}, nil, true},
}
@@ -2227,7 +2227,7 @@ func Test_client_modifyConfig(t *testing.T) {
Endpoint: tt.args.endpoint,
},
}
- got, err := compiler.modifyConfig(tt.args.build, tt.args.libraryBuild, tt.args.repo)
+ got, err := compiler.modifyConfig(tt.args.build, tt.args.apiBuild, tt.args.repo)
if (err != nil) != tt.wantErr {
t.Errorf("modifyConfig() error = %v, wantErr %v", err, tt.wantErr)
return
diff --git a/compiler/native/environment.go b/compiler/native/environment.go
index d0c6ab0b8..fae7557d1 100644
--- a/compiler/native/environment.go
+++ b/compiler/native/environment.go
@@ -12,7 +12,6 @@ import (
"github.com/go-vela/server/compiler/types/yaml"
"github.com/go-vela/server/constants"
"github.com/go-vela/server/internal"
- "github.com/go-vela/types/library"
)
// EnvironmentStages injects environment variables
@@ -133,7 +132,7 @@ func (c *client) EnvironmentStep(s *yaml.Step, stageEnv raw.StringSliceMap) (*ya
// parameter values are passed to the image
// as string environment variables
- env[k] = library.ToString(v)
+ env[k] = api.ToString(v)
}
// overwrite existing build step environment
@@ -234,7 +233,7 @@ func (c *client) EnvironmentSecrets(s yaml.SecretSlice, globalEnv raw.StringSlic
// parameter values are passed to the image
// as string environment variables
- env[k] = library.ToString(v)
+ env[k] = api.ToString(v)
}
// overwrite existing build secret environment
@@ -291,7 +290,7 @@ func environment(b *api.Build, m *internal.Metadata, r *api.Repo, u *api.User) m
env := make(map[string]string)
// vela specific environment variables
- env["VELA"] = library.ToString(true)
+ env["VELA"] = api.ToString(true)
env["VELA_ADDR"] = notImplemented
env["VELA_CHANNEL"] = notImplemented
env["VELA_DATABASE"] = notImplemented
@@ -324,11 +323,11 @@ func environment(b *api.Build, m *internal.Metadata, r *api.Repo, u *api.User) m
env["VELA_WORKSPACE"] = workspace
- // populate environment variables from repo library
+ // populate environment variables from repo api
env = appendMap(env, r.Environment())
- // populate environment variables from build library
+ // populate environment variables from build api
env = appendMap(env, b.Environment(workspace, channel))
- // populate environment variables from user library
+ // populate environment variables from user api
env = appendMap(env, u.Environment())
return env
diff --git a/compiler/native/native.go b/compiler/native/native.go
index db28375e5..0c83b0728 100644
--- a/compiler/native/native.go
+++ b/compiler/native/native.go
@@ -135,7 +135,7 @@ func (c *client) Duplicate() compiler.Engine {
return cc
}
-// WithBuild sets the library build type in the Engine.
+// WithBuild sets the API build type in the Engine.
func (c *client) WithBuild(b *api.Build) compiler.Engine {
if b != nil {
c.build = b
@@ -205,7 +205,7 @@ func (c *client) WithPrivateGitHub(ctx context.Context, url, token string) compi
return c
}
-// WithRepo sets the library repo type in the Engine.
+// WithRepo sets the API repo type in the Engine.
func (c *client) WithRepo(r *api.Repo) compiler.Engine {
if r != nil {
c.repo = r
@@ -214,7 +214,7 @@ func (c *client) WithRepo(r *api.Repo) compiler.Engine {
return c
}
-// WithUser sets the library user type in the Engine.
+// WithUser sets the API user type in the Engine.
func (c *client) WithUser(u *api.User) compiler.Engine {
if u != nil {
c.user = u
diff --git a/compiler/types/yaml/build_test.go b/compiler/types/yaml/build_test.go
index f4095d48d..fc72abc85 100644
--- a/compiler/types/yaml/build_test.go
+++ b/compiler/types/yaml/build_test.go
@@ -13,7 +13,7 @@ import (
"github.com/go-vela/server/compiler/types/raw"
)
-func TestYaml_Build_ToLibrary(t *testing.T) {
+func TestYaml_Build_ToAPI(t *testing.T) {
build := new(api.Pipeline)
build.SetFlavor("16cpu8gb")
build.SetPlatform("gcp")
@@ -87,7 +87,7 @@ func TestYaml_Build_ToLibrary(t *testing.T) {
got := b.ToPipelineAPI()
if !reflect.DeepEqual(got, test.want) {
- t.Errorf("ToPipelineLibrary for %s is %v, want %v", test.name, got, test.want)
+ t.Errorf("ToPipelineAPI for %s is %v, want %v", test.name, got, test.want)
}
}
}
diff --git a/compiler/types/yaml/template.go b/compiler/types/yaml/template.go
index 22dbf2753..99da1964f 100644
--- a/compiler/types/yaml/template.go
+++ b/compiler/types/yaml/template.go
@@ -3,7 +3,7 @@
package yaml
import (
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
type (
@@ -46,10 +46,10 @@ func (t *TemplateSlice) UnmarshalYAML(unmarshal func(interface{}) error) error {
return nil
}
-// ToLibrary converts the Template type
-// to a library Template type.
-func (t *Template) ToLibrary() *library.Template {
- template := new(library.Template)
+// ToAPI converts the Template type
+// to an API Template type.
+func (t *Template) ToAPI() *api.Template {
+ template := new(api.Template)
template.SetName(t.Name)
template.SetSource(t.Source)
@@ -58,9 +58,9 @@ func (t *Template) ToLibrary() *library.Template {
return template
}
-// TemplateFromLibrary converts the library Template type
+// TemplateFromAPI converts the API Template type
// to a yaml Template type.
-func TemplateFromLibrary(t *library.Template) *Template {
+func TemplateFromAPI(t *api.Template) *Template {
template := &Template{
Name: t.GetName(),
Source: t.GetSource(),
diff --git a/compiler/types/yaml/template_test.go b/compiler/types/yaml/template_test.go
index e7f760cb7..b000cd70b 100644
--- a/compiler/types/yaml/template_test.go
+++ b/compiler/types/yaml/template_test.go
@@ -9,7 +9,7 @@ import (
"github.com/buildkite/yaml"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestBuild_TemplateSlice_UnmarshalYAML(t *testing.T) {
@@ -78,9 +78,9 @@ func TestBuild_TemplateSlice_UnmarshalYAML(t *testing.T) {
}
}
-func TestYAML_Template_ToLibrary(t *testing.T) {
+func TestYAML_Template_ToAPI(t *testing.T) {
// setup types
- want := new(library.Template)
+ want := new(api.Template)
want.SetName("docker_build")
want.SetSource("github.com/go-vela/atlas/stable/docker_build")
want.SetType("github")
@@ -92,14 +92,14 @@ func TestYAML_Template_ToLibrary(t *testing.T) {
}
// run test
- got := tmpl.ToLibrary()
+ got := tmpl.ToAPI()
if !reflect.DeepEqual(got, want) {
- t.Errorf("ToLibrary is %v, want %v", got, want)
+ t.Errorf("ToAPI is %v, want %v", got, want)
}
}
-func TestYAML_TemplateFromLibrary(t *testing.T) {
+func TestYAML_TemplateFromAPI(t *testing.T) {
// setup types
want := &Template{
Name: "docker_build",
@@ -107,15 +107,15 @@ func TestYAML_TemplateFromLibrary(t *testing.T) {
Type: "github",
}
- tmpl := new(library.Template)
+ tmpl := new(api.Template)
tmpl.SetName("docker_build")
tmpl.SetSource("github.com/go-vela/atlas/stable/docker_build")
tmpl.SetType("github")
// run test
- got := TemplateFromLibrary(tmpl)
+ got := TemplateFromAPI(tmpl)
if !reflect.DeepEqual(got, want) {
- t.Errorf("TemplateFromLibrary is %v, want %v", got, want)
+ t.Errorf("TemplateFromAPI is %v, want %v", got, want)
}
}
diff --git a/constants/doc.go b/constants/doc.go
index 0e748959b..301d93aee 100644
--- a/constants/doc.go
+++ b/constants/doc.go
@@ -4,5 +4,5 @@
//
// Usage:
//
-// import "github.com/go-vela/types/constants"
+// import "github.com/go-vela/server/constants"
package constants
diff --git a/database/deployment/create.go b/database/deployment/create.go
index d58feda5f..98f162345 100644
--- a/database/deployment/create.go
+++ b/database/deployment/create.go
@@ -18,7 +18,7 @@ func (e *engine) CreateDeployment(ctx context.Context, d *api.Deployment) (*api.
"deployment": d.GetID(),
}).Tracef("creating deployment %d", d.GetID())
- // cast the library type to database type
+ // cast the API type to database type
deployment := types.DeploymentFromAPI(d)
// validate the necessary fields are populated
diff --git a/database/deployment/delete.go b/database/deployment/delete.go
index d668f5ef0..4a216a0bd 100644
--- a/database/deployment/delete.go
+++ b/database/deployment/delete.go
@@ -18,7 +18,7 @@ func (e *engine) DeleteDeployment(ctx context.Context, d *api.Deployment) error
"deployment": d.GetID(),
}).Tracef("deleting deployment %d", d.GetID())
- // cast the library type to database type
+ // cast the API type to database type
deployment := types.DeploymentFromAPI(d)
// send query to the database
diff --git a/database/deployment/list.go b/database/deployment/list.go
index 6c2b7f0a8..e608b83cc 100644
--- a/database/deployment/list.go
+++ b/database/deployment/list.go
@@ -65,7 +65,7 @@ func (e *engine) ListDeployments(ctx context.Context) ([]*api.Deployment, error)
e.logger.Errorf("unable to decrypt repo: %v", err)
}
- // convert query result to library type
+ // convert query result to API type
deployments = append(deployments, tmp.ToAPI(builds))
}
diff --git a/database/deployment/update.go b/database/deployment/update.go
index 7179ce87d..586e0f507 100644
--- a/database/deployment/update.go
+++ b/database/deployment/update.go
@@ -18,7 +18,7 @@ func (e *engine) UpdateDeployment(ctx context.Context, d *api.Deployment) (*api.
"deployment": d.GetID(),
}).Tracef("updating deployment %d", d.GetID())
- // cast the library type to database type
+ // cast the API type to database type
deployment := types.DeploymentFromAPI(d)
// validate the necessary fields are populated
diff --git a/database/executable/clean_test.go b/database/executable/clean_test.go
index 56d837c2e..da5b86ed1 100644
--- a/database/executable/clean_test.go
+++ b/database/executable/clean_test.go
@@ -10,23 +10,23 @@ import (
"github.com/DATA-DOG/go-sqlmock"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/testutils"
+ "github.com/go-vela/server/database/types"
)
func TestExecutable_Engine_CleanExecutables(t *testing.T) {
// setup types
- _buildOne := testBuild()
+ _buildOne := testutils.APIBuild()
_buildOne.SetID(1)
- _buildOne.SetRepoID(1)
+ _buildOne.SetRepo(testutils.APIRepo())
_buildOne.SetNumber(1)
_buildOne.SetStatus("pending")
_buildOne.SetCreated(1)
_buildOne.SetDeployPayload(nil)
- _buildTwo := testBuild()
+ _buildTwo := testutils.APIBuild()
_buildTwo.SetID(2)
- _buildTwo.SetRepoID(1)
+ _buildTwo.SetRepo(testutils.APIRepo())
_buildTwo.SetNumber(2)
_buildTwo.SetStatus("error")
_buildTwo.SetCreated(1)
@@ -63,17 +63,17 @@ func TestExecutable_Engine_CleanExecutables(t *testing.T) {
t.Errorf("unable to create test build for sqlite: %v", err)
}
- err = _sqlite.client.AutoMigrate(&database.Build{})
+ err = _sqlite.client.AutoMigrate(&types.Build{})
if err != nil {
t.Errorf("unable to create repo table for sqlite: %v", err)
}
- err = _sqlite.client.Table(constants.TableBuild).Create(database.BuildFromLibrary(_buildOne)).Error
+ err = _sqlite.client.Table(constants.TableBuild).Create(types.BuildFromAPI(_buildOne)).Error
if err != nil {
t.Errorf("unable to create test repo for sqlite: %v", err)
}
- err = _sqlite.client.Table(constants.TableBuild).Create(database.BuildFromLibrary(_buildTwo)).Error
+ err = _sqlite.client.Table(constants.TableBuild).Create(types.BuildFromAPI(_buildTwo)).Error
if err != nil {
t.Errorf("unable to create test repo for sqlite: %v", err)
}
@@ -124,40 +124,3 @@ func TestExecutable_Engine_CleanExecutables(t *testing.T) {
})
}
}
-
-// testBuild is a test helper function to create a library
-// Build type with all fields set to their zero values.
-func testBuild() *library.Build {
- return &library.Build{
- ID: new(int64),
- RepoID: new(int64),
- PipelineID: new(int64),
- Number: new(int),
- Parent: new(int),
- Event: new(string),
- EventAction: new(string),
- Status: new(string),
- Error: new(string),
- Enqueued: new(int64),
- Created: new(int64),
- Started: new(int64),
- Finished: new(int64),
- Deploy: new(string),
- Clone: new(string),
- Source: new(string),
- Title: new(string),
- Message: new(string),
- Commit: new(string),
- Sender: new(string),
- Author: new(string),
- Email: new(string),
- Link: new(string),
- Branch: new(string),
- Ref: new(string),
- BaseRef: new(string),
- HeadRef: new(string),
- Host: new(string),
- Runtime: new(string),
- Distribution: new(string),
- }
-}
diff --git a/database/executable/create.go b/database/executable/create.go
index 5246eccb1..779ad92fc 100644
--- a/database/executable/create.go
+++ b/database/executable/create.go
@@ -8,41 +8,32 @@ import (
"github.com/sirupsen/logrus"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/types"
)
// CreateBuildExecutable creates a new build executable in the database.
-func (e *engine) CreateBuildExecutable(ctx context.Context, b *library.BuildExecutable) error {
+func (e *engine) CreateBuildExecutable(ctx context.Context, b *api.BuildExecutable) error {
e.logger.WithFields(logrus.Fields{
"build": b.GetBuildID(),
}).Tracef("creating build executable for build %d in the database", b.GetBuildID())
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#BuildExecutableFromLibrary
- executable := database.BuildExecutableFromLibrary(b)
+ // convert API type to database type
+ executable := types.BuildExecutableFromAPI(b)
- // validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#BuildExecutable.Validate
err := executable.Validate()
if err != nil {
return err
}
// compress data for the build executable
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#BuildExecutable.Compress
err = executable.Compress(e.config.CompressionLevel)
if err != nil {
return err
}
// encrypt the data field for the build executable
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#BuildExecutable.Encrypt
err = executable.Encrypt(e.config.EncryptionKey)
if err != nil {
return fmt.Errorf("unable to encrypt build executable for build %d: %w", b.GetBuildID(), err)
diff --git a/database/executable/executable_test.go b/database/executable/executable_test.go
index 141323ee8..4ea323323 100644
--- a/database/executable/executable_test.go
+++ b/database/executable/executable_test.go
@@ -13,8 +13,8 @@ import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/library"
)
func TestExecutable_New(t *testing.T) {
@@ -188,10 +188,10 @@ func testSqlite(t *testing.T) *engine {
return _engine
}
-// testBuildExecutable is a test helper function to create a library
+// testBuildExecutable is a test helper function to create a API
// BuildExecutable type with all fields set to their zero values.
-func testBuildExecutable() *library.BuildExecutable {
- return &library.BuildExecutable{
+func testBuildExecutable() *api.BuildExecutable {
+ return &api.BuildExecutable{
ID: new(int64),
BuildID: new(int64),
Data: new([]byte),
diff --git a/database/executable/interface.go b/database/executable/interface.go
index ee0cd056f..33c58e9ce 100644
--- a/database/executable/interface.go
+++ b/database/executable/interface.go
@@ -5,7 +5,7 @@ package executable
import (
"context"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
// BuildExecutableInterface represents the Vela interface for build executable
@@ -23,7 +23,7 @@ type BuildExecutableInterface interface {
// CleanBuildExecutables defines a function that deletes errored builds' corresponding executables.
CleanBuildExecutables(context.Context) (int64, error)
// CreateBuildExecutable defines a function that creates a build executable.
- CreateBuildExecutable(context.Context, *library.BuildExecutable) error
+ CreateBuildExecutable(context.Context, *api.BuildExecutable) error
// PopBuildExecutable defines a function that gets and deletes a build executable.
- PopBuildExecutable(context.Context, int64) (*library.BuildExecutable, error)
+ PopBuildExecutable(context.Context, int64) (*api.BuildExecutable, error)
}
diff --git a/database/executable/pop.go b/database/executable/pop.go
index e3a2445e8..f4477363c 100644
--- a/database/executable/pop.go
+++ b/database/executable/pop.go
@@ -7,17 +7,17 @@ import (
"gorm.io/gorm/clause"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/types"
)
// PopBuildExecutable pops a build executable by build_id from the database.
-func (e *engine) PopBuildExecutable(ctx context.Context, id int64) (*library.BuildExecutable, error) {
+func (e *engine) PopBuildExecutable(ctx context.Context, id int64) (*api.BuildExecutable, error) {
e.logger.Tracef("popping build executable for build %d", id)
// variable to store query results
- b := new(database.BuildExecutable)
+ b := new(types.BuildExecutable)
// at the time of coding, GORM does not implement a version of Sqlite3 that supports RETURNING.
// so we have to select and delete for the Sqlite driver.
@@ -59,23 +59,16 @@ func (e *engine) PopBuildExecutable(ctx context.Context, id int64) (*library.Bui
}
// decrypt the fields for the build executable
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Repo.Decrypt
err := b.Decrypt(e.config.EncryptionKey)
if err != nil {
return nil, err
}
// decompress data for the build executable
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#BuildExecutable.Decompress
err = b.Decompress()
if err != nil {
return nil, err
}
- // return the decompressed build executable
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#BuildExecutable.ToLibrary
- return b.ToLibrary(), nil
+ return b.ToAPI(), nil
}
diff --git a/database/executable/pop_test.go b/database/executable/pop_test.go
index 6826b2feb..347079e74 100644
--- a/database/executable/pop_test.go
+++ b/database/executable/pop_test.go
@@ -9,7 +9,7 @@ import (
"github.com/DATA-DOG/go-sqlmock"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestExecutable_Engine_PopBuildExecutable(t *testing.T) {
@@ -43,7 +43,7 @@ func TestExecutable_Engine_PopBuildExecutable(t *testing.T) {
failure bool
name string
database *engine
- want *library.BuildExecutable
+ want *api.BuildExecutable
}{
{
failure: false,
diff --git a/database/hook/update.go b/database/hook/update.go
index aec428053..ca648cc83 100644
--- a/database/hook/update.go
+++ b/database/hook/update.go
@@ -20,9 +20,6 @@ func (e *engine) UpdateHook(ctx context.Context, h *api.Hook) (*api.Hook, error)
hook := types.HookFromAPI(h)
- // validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Hook.Validate
err := hook.Validate()
if err != nil {
return nil, err
diff --git a/database/integration_test.go b/database/integration_test.go
index 2f5646aa2..89eda666a 100644
--- a/database/integration_test.go
+++ b/database/integration_test.go
@@ -36,7 +36,6 @@ import (
"github.com/go-vela/server/database/user"
"github.com/go-vela/server/database/worker"
"github.com/go-vela/server/tracing"
- "github.com/go-vela/types/library"
)
// Resources represents the object containing test resources.
@@ -44,10 +43,10 @@ type Resources struct {
Builds []*api.Build
Dashboards []*api.Dashboard
Deployments []*api.Deployment
- Executables []*library.BuildExecutable
+ Executables []*api.BuildExecutable
Hooks []*api.Hook
JWKs jwk.Set
- Logs []*library.Log
+ Logs []*api.Log
Pipelines []*api.Pipeline
Repos []*api.Repo
Schedules []*api.Schedule
@@ -1122,7 +1121,7 @@ func testLogs(t *testing.T, db Interface, resources *Resources) {
methods["ListLogsForBuild"] = true
// lookup the logs by service
- for _, log := range []*library.Log{resources.Logs[0], resources.Logs[1]} {
+ for _, log := range []*api.Log{resources.Logs[0], resources.Logs[1]} {
service := resources.Services[log.GetServiceID()-1]
got, err := db.GetLogForService(context.TODO(), service)
if err != nil {
@@ -1135,7 +1134,7 @@ func testLogs(t *testing.T, db Interface, resources *Resources) {
methods["GetLogForService"] = true
// lookup the logs by service
- for _, log := range []*library.Log{resources.Logs[2], resources.Logs[3]} {
+ for _, log := range []*api.Log{resources.Logs[2], resources.Logs[3]} {
step := resources.Steps[log.GetStepID()-1]
got, err := db.GetLogForStep(context.TODO(), step)
if err != nil {
@@ -2623,12 +2622,12 @@ func newResources() *Resources {
dashboardTwo.SetAdmins(dashboardAdmins)
dashboardTwo.SetRepos([]*api.DashboardRepo{dashRepo})
- executableOne := new(library.BuildExecutable)
+ executableOne := new(api.BuildExecutable)
executableOne.SetID(1)
executableOne.SetBuildID(1)
executableOne.SetData([]byte("foo"))
- executableTwo := new(library.BuildExecutable)
+ executableTwo := new(api.BuildExecutable)
executableTwo.SetID(2)
executableTwo.SetBuildID(2)
executableTwo.SetData([]byte("foo"))
@@ -2724,7 +2723,7 @@ func newResources() *Resources {
_ = jwkSet.AddKey(jwkTwo)
- logServiceOne := new(library.Log)
+ logServiceOne := new(api.Log)
logServiceOne.SetID(1)
logServiceOne.SetBuildID(1)
logServiceOne.SetRepoID(1)
@@ -2732,7 +2731,7 @@ func newResources() *Resources {
logServiceOne.SetStepID(0)
logServiceOne.SetData([]byte("foo"))
- logServiceTwo := new(library.Log)
+ logServiceTwo := new(api.Log)
logServiceTwo.SetID(2)
logServiceTwo.SetBuildID(1)
logServiceTwo.SetRepoID(1)
@@ -2740,7 +2739,7 @@ func newResources() *Resources {
logServiceTwo.SetStepID(0)
logServiceTwo.SetData([]byte("foo"))
- logStepOne := new(library.Log)
+ logStepOne := new(api.Log)
logStepOne.SetID(3)
logStepOne.SetBuildID(1)
logStepOne.SetRepoID(1)
@@ -2748,7 +2747,7 @@ func newResources() *Resources {
logStepOne.SetStepID(1)
logStepOne.SetData([]byte("foo"))
- logStepTwo := new(library.Log)
+ logStepTwo := new(api.Log)
logStepTwo.SetID(4)
logStepTwo.SetBuildID(1)
logStepTwo.SetRepoID(1)
@@ -2987,10 +2986,10 @@ func newResources() *Resources {
Builds: []*api.Build{buildOne, buildTwo},
Dashboards: []*api.Dashboard{dashboardOne, dashboardTwo},
Deployments: []*api.Deployment{deploymentOne, deploymentTwo},
- Executables: []*library.BuildExecutable{executableOne, executableTwo},
+ Executables: []*api.BuildExecutable{executableOne, executableTwo},
Hooks: []*api.Hook{hookOne, hookTwo, hookThree},
JWKs: jwkSet,
- Logs: []*library.Log{logServiceOne, logServiceTwo, logStepOne, logStepTwo},
+ Logs: []*api.Log{logServiceOne, logServiceTwo, logStepOne, logStepTwo},
Pipelines: []*api.Pipeline{pipelineOne, pipelineTwo},
Repos: []*api.Repo{repoOne, repoTwo},
Schedules: []*api.Schedule{scheduleOne, scheduleTwo},
diff --git a/database/log/create.go b/database/log/create.go
index 385bca9fd..98ec63beb 100644
--- a/database/log/create.go
+++ b/database/log/create.go
@@ -7,13 +7,13 @@ import (
"context"
"fmt"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/types"
)
// CreateLog creates a new log in the database.
-func (e *engine) CreateLog(ctx context.Context, l *library.Log) error {
+func (e *engine) CreateLog(ctx context.Context, l *api.Log) error {
// check what the log entry is for
switch {
case l.GetServiceID() > 0:
@@ -22,22 +22,15 @@ func (e *engine) CreateLog(ctx context.Context, l *library.Log) error {
e.logger.Tracef("creating log for step %d for build %d", l.GetStepID(), l.GetBuildID())
}
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#LogFromLibrary
- log := database.LogFromLibrary(l)
+ // cast the API type to database type
+ log := types.LogFromAPI(l)
- // validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.Validate
err := log.Validate()
if err != nil {
return err
}
// compress log data for the resource
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.Compress
err = log.Compress(e.config.CompressionLevel)
if err != nil {
switch {
diff --git a/database/log/create_test.go b/database/log/create_test.go
index 3b86fbe44..c24b0d7f9 100644
--- a/database/log/create_test.go
+++ b/database/log/create_test.go
@@ -8,8 +8,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestLog_Engine_CreateLog(t *testing.T) {
@@ -54,19 +54,19 @@ VALUES ($1,$2,$3,$4,$5,$6) RETURNING "id"`).
failure bool
name string
database *engine
- logs []*library.Log
+ logs []*api.Log
}{
{
failure: false,
name: "postgres",
database: _postgres,
- logs: []*library.Log{_service, _step},
+ logs: []*api.Log{_service, _step},
},
{
failure: false,
name: "sqlite3",
database: _sqlite,
- logs: []*library.Log{_service, _step},
+ logs: []*api.Log{_service, _step},
},
}
diff --git a/database/log/delete.go b/database/log/delete.go
index 1ee187bbc..8b077c174 100644
--- a/database/log/delete.go
+++ b/database/log/delete.go
@@ -5,13 +5,13 @@ package log
import (
"context"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/types"
)
// DeleteLog deletes an existing log from the database.
-func (e *engine) DeleteLog(ctx context.Context, l *library.Log) error {
+func (e *engine) DeleteLog(ctx context.Context, l *api.Log) error {
// check what the log entry is for
switch {
case l.GetServiceID() > 0:
@@ -20,10 +20,8 @@ func (e *engine) DeleteLog(ctx context.Context, l *library.Log) error {
e.logger.Tracef("deleting log for step %d for build %d", l.GetStepID(), l.GetBuildID())
}
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#LogFromLibrary
- log := database.LogFromLibrary(l)
+ // cast the API type to database type
+ log := types.LogFromAPI(l)
// send query to the database
return e.client.
diff --git a/database/log/get.go b/database/log/get.go
index 19f78f0dc..9054b8c5e 100644
--- a/database/log/get.go
+++ b/database/log/get.go
@@ -5,17 +5,17 @@ package log
import (
"context"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/types"
)
// GetLog gets a log by ID from the database.
-func (e *engine) GetLog(ctx context.Context, id int64) (*library.Log, error) {
+func (e *engine) GetLog(ctx context.Context, id int64) (*api.Log, error) {
e.logger.Tracef("getting log %d", id)
// variable to store query results
- l := new(database.Log)
+ l := new(types.Log)
// send query to the database and store result in variable
err := e.client.
@@ -29,8 +29,6 @@ func (e *engine) GetLog(ctx context.Context, id int64) (*library.Log, error) {
}
// decompress log data
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.Decompress
err = l.Decompress()
if err != nil {
// ensures that the change is backwards compatible
@@ -39,11 +37,9 @@ func (e *engine) GetLog(ctx context.Context, id int64) (*library.Log, error) {
e.logger.Errorf("unable to decompress log %d: %v", id, err)
// return the uncompressed log
- return l.ToLibrary(), nil
+ return l.ToAPI(), nil
}
// return the log
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.ToLibrary
- return l.ToLibrary(), nil
+ return l.ToAPI(), nil
}
diff --git a/database/log/get_service.go b/database/log/get_service.go
index 2fd0f6c40..f760af06e 100644
--- a/database/log/get_service.go
+++ b/database/log/get_service.go
@@ -8,16 +8,15 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/types"
)
// GetLogForService gets a log by service ID from the database.
-func (e *engine) GetLogForService(ctx context.Context, s *api.Service) (*library.Log, error) {
+func (e *engine) GetLogForService(ctx context.Context, s *api.Service) (*api.Log, error) {
e.logger.Tracef("getting log for service %d for build %d", s.GetID(), s.GetBuildID())
// variable to store query results
- l := new(database.Log)
+ l := new(types.Log)
// send query to the database and store result in variable
err := e.client.
@@ -31,8 +30,6 @@ func (e *engine) GetLogForService(ctx context.Context, s *api.Service) (*library
}
// decompress log data for the service
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.Decompress
err = l.Decompress()
if err != nil {
// ensures that the change is backwards compatible
@@ -41,11 +38,9 @@ func (e *engine) GetLogForService(ctx context.Context, s *api.Service) (*library
e.logger.Errorf("unable to decompress log for service %d for build %d: %v", s.GetID(), s.GetBuildID(), err)
// return the uncompressed log
- return l.ToLibrary(), nil
+ return l.ToAPI(), nil
}
// return the log
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.ToLibrary
- return l.ToLibrary(), nil
+ return l.ToAPI(), nil
}
diff --git a/database/log/get_service_test.go b/database/log/get_service_test.go
index b4ae5efe5..8a9083486 100644
--- a/database/log/get_service_test.go
+++ b/database/log/get_service_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestLog_Engine_GetLogForService(t *testing.T) {
@@ -53,7 +53,7 @@ func TestLog_Engine_GetLogForService(t *testing.T) {
failure bool
name string
database *engine
- want *library.Log
+ want *api.Log
}{
{
failure: false,
diff --git a/database/log/get_step.go b/database/log/get_step.go
index 526023b51..ff92bac10 100644
--- a/database/log/get_step.go
+++ b/database/log/get_step.go
@@ -8,16 +8,15 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/types"
)
// GetLogForStep gets a log by step ID from the database.
-func (e *engine) GetLogForStep(ctx context.Context, s *api.Step) (*library.Log, error) {
+func (e *engine) GetLogForStep(ctx context.Context, s *api.Step) (*api.Log, error) {
e.logger.Tracef("getting log for step %d for build %d", s.GetID(), s.GetBuildID())
// variable to store query results
- l := new(database.Log)
+ l := new(types.Log)
// send query to the database and store result in variable
err := e.client.
@@ -31,8 +30,6 @@ func (e *engine) GetLogForStep(ctx context.Context, s *api.Step) (*library.Log,
}
// decompress log data for the step
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.Decompress
err = l.Decompress()
if err != nil {
// ensures that the change is backwards compatible
@@ -41,11 +38,9 @@ func (e *engine) GetLogForStep(ctx context.Context, s *api.Step) (*library.Log,
e.logger.Errorf("unable to decompress log for step %d for build %d: %v", s.GetID(), s.GetBuildID(), err)
// return the uncompressed log
- return l.ToLibrary(), nil
+ return l.ToAPI(), nil
}
// return the log
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.ToLibrary
- return l.ToLibrary(), nil
+ return l.ToAPI(), nil
}
diff --git a/database/log/get_step_test.go b/database/log/get_step_test.go
index 68073bf85..0b7a6dc8d 100644
--- a/database/log/get_step_test.go
+++ b/database/log/get_step_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestLog_Engine_GetLogForStep(t *testing.T) {
@@ -53,7 +53,7 @@ func TestLog_Engine_GetLogForStep(t *testing.T) {
failure bool
name string
database *engine
- want *library.Log
+ want *api.Log
}{
{
failure: false,
diff --git a/database/log/get_test.go b/database/log/get_test.go
index d2263704f..4ac2bc78c 100644
--- a/database/log/get_test.go
+++ b/database/log/get_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestLog_Engine_GetLog(t *testing.T) {
@@ -46,7 +46,7 @@ func TestLog_Engine_GetLog(t *testing.T) {
failure bool
name string
database *engine
- want *library.Log
+ want *api.Log
}{
{
failure: false,
diff --git a/database/log/interface.go b/database/log/interface.go
index 4cd0bdabf..d5e77ead3 100644
--- a/database/log/interface.go
+++ b/database/log/interface.go
@@ -6,7 +6,6 @@ import (
"context"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types/library"
)
// LogInterface represents the Vela interface for log
@@ -32,19 +31,19 @@ type LogInterface interface {
// CountLogsForBuild defines a function that gets the count of logs by build ID.
CountLogsForBuild(context.Context, *api.Build) (int64, error)
// CreateLog defines a function that creates a new log.
- CreateLog(context.Context, *library.Log) error
+ CreateLog(context.Context, *api.Log) error
// DeleteLog defines a function that deletes an existing log.
- DeleteLog(context.Context, *library.Log) error
+ DeleteLog(context.Context, *api.Log) error
// GetLog defines a function that gets a log by ID.
- GetLog(context.Context, int64) (*library.Log, error)
+ GetLog(context.Context, int64) (*api.Log, error)
// GetLogForService defines a function that gets a log by service ID.
- GetLogForService(context.Context, *api.Service) (*library.Log, error)
+ GetLogForService(context.Context, *api.Service) (*api.Log, error)
// GetLogForStep defines a function that gets a log by step ID.
- GetLogForStep(context.Context, *api.Step) (*library.Log, error)
+ GetLogForStep(context.Context, *api.Step) (*api.Log, error)
// ListLogs defines a function that gets a list of all logs.
- ListLogs(context.Context) ([]*library.Log, error)
+ ListLogs(context.Context) ([]*api.Log, error)
// ListLogsForBuild defines a function that gets a list of logs by build ID.
- ListLogsForBuild(context.Context, *api.Build, int, int) ([]*library.Log, int64, error)
+ ListLogsForBuild(context.Context, *api.Build, int, int) ([]*api.Log, int64, error)
// UpdateLog defines a function that updates an existing log.
- UpdateLog(context.Context, *library.Log) error
+ UpdateLog(context.Context, *api.Log) error
}
diff --git a/database/log/list.go b/database/log/list.go
index 34a57db4a..aa0e816b1 100644
--- a/database/log/list.go
+++ b/database/log/list.go
@@ -5,19 +5,19 @@ package log
import (
"context"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/types"
)
// ListLogs gets a list of all logs from the database.
-func (e *engine) ListLogs(ctx context.Context) ([]*library.Log, error) {
+func (e *engine) ListLogs(ctx context.Context) ([]*api.Log, error) {
e.logger.Trace("listing all logs")
// variables to store query results and return value
count := int64(0)
- l := new([]database.Log)
- logs := []*library.Log{}
+ l := new([]types.Log)
+ logs := []*api.Log{}
// count the results
count, err := e.CountLogs(ctx)
@@ -46,8 +46,6 @@ func (e *engine) ListLogs(ctx context.Context) ([]*library.Log, error) {
tmp := log
// decompress log data
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.Decompress
err = tmp.Decompress()
if err != nil {
// ensures that the change is backwards compatible
@@ -56,10 +54,8 @@ func (e *engine) ListLogs(ctx context.Context) ([]*library.Log, error) {
e.logger.Errorf("unable to decompress logs: %v", err)
}
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.ToLibrary
- logs = append(logs, tmp.ToLibrary())
+ // convert query result to API type
+ logs = append(logs, tmp.ToAPI())
}
return logs, nil
diff --git a/database/log/list_build.go b/database/log/list_build.go
index c5013d17c..4318a3b5a 100644
--- a/database/log/list_build.go
+++ b/database/log/list_build.go
@@ -7,18 +7,17 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/types"
)
// ListLogsForBuild gets a list of logs by build ID from the database.
-func (e *engine) ListLogsForBuild(ctx context.Context, b *api.Build, page, perPage int) ([]*library.Log, int64, error) {
+func (e *engine) ListLogsForBuild(ctx context.Context, b *api.Build, page, perPage int) ([]*api.Log, int64, error) {
e.logger.Tracef("listing logs for build %d", b.GetID())
// variables to store query results and return value
count := int64(0)
- l := new([]database.Log)
- logs := []*library.Log{}
+ l := new([]types.Log)
+ logs := []*api.Log{}
// count the results
count, err := e.CountLogsForBuild(ctx, b)
@@ -55,8 +54,6 @@ func (e *engine) ListLogsForBuild(ctx context.Context, b *api.Build, page, perPa
tmp := log
// decompress log data for the build
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.Decompress
err = tmp.Decompress()
if err != nil {
// ensures that the change is backwards compatible
@@ -65,10 +62,8 @@ func (e *engine) ListLogsForBuild(ctx context.Context, b *api.Build, page, perPa
e.logger.Errorf("unable to decompress logs for build %d: %v", b.GetID(), err)
}
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.ToLibrary
- logs = append(logs, tmp.ToLibrary())
+ // convert query result to API type
+ logs = append(logs, tmp.ToAPI())
}
return logs, count, nil
diff --git a/database/log/list_build_test.go b/database/log/list_build_test.go
index e4b9038cd..29ad6a162 100644
--- a/database/log/list_build_test.go
+++ b/database/log/list_build_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestLog_Engine_ListLogsForBuild(t *testing.T) {
@@ -73,19 +73,19 @@ func TestLog_Engine_ListLogsForBuild(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Log
+ want []*api.Log
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Log{_service, _step},
+ want: []*api.Log{_service, _step},
},
{
failure: false,
name: "sqlite3",
database: _sqlite,
- want: []*library.Log{_service, _step},
+ want: []*api.Log{_service, _step},
},
}
diff --git a/database/log/list_test.go b/database/log/list_test.go
index 6371c9fd2..d2249d0c1 100644
--- a/database/log/list_test.go
+++ b/database/log/list_test.go
@@ -9,8 +9,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestLog_Engine_ListLogs(t *testing.T) {
@@ -64,19 +64,19 @@ func TestLog_Engine_ListLogs(t *testing.T) {
failure bool
name string
database *engine
- want []*library.Log
+ want []*api.Log
}{
{
failure: false,
name: "postgres",
database: _postgres,
- want: []*library.Log{_service, _step},
+ want: []*api.Log{_service, _step},
},
{
failure: false,
name: "sqlite3",
database: _sqlite,
- want: []*library.Log{_service, _step},
+ want: []*api.Log{_service, _step},
},
}
diff --git a/database/log/update.go b/database/log/update.go
index 13a65d4ee..0854a9c2d 100644
--- a/database/log/update.go
+++ b/database/log/update.go
@@ -7,13 +7,13 @@ import (
"context"
"fmt"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types/database"
- "github.com/go-vela/types/library"
+ "github.com/go-vela/server/database/types"
)
// UpdateLog updates an existing log in the database.
-func (e *engine) UpdateLog(ctx context.Context, l *library.Log) error {
+func (e *engine) UpdateLog(ctx context.Context, l *api.Log) error {
// check what the log entry is for
switch {
case l.GetServiceID() > 0:
@@ -22,22 +22,16 @@ func (e *engine) UpdateLog(ctx context.Context, l *library.Log) error {
e.logger.Tracef("updating log for step %d for build %d", l.GetStepID(), l.GetBuildID())
}
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#LogFromLibrary
- log := database.LogFromLibrary(l)
+ // cast the API type to database type
+ log := types.LogFromAPI(l)
// validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.Validate
err := log.Validate()
if err != nil {
return err
}
// compress log data for the resource
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Log.Compress
err = log.Compress(e.config.CompressionLevel)
if err != nil {
switch {
diff --git a/database/log/update_test.go b/database/log/update_test.go
index ae2ca53f0..163185f31 100644
--- a/database/log/update_test.go
+++ b/database/log/update_test.go
@@ -8,8 +8,8 @@ import (
"github.com/DATA-DOG/go-sqlmock"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/database/testutils"
- "github.com/go-vela/types/library"
)
func TestLog_Engine_UpdateLog(t *testing.T) {
@@ -63,19 +63,19 @@ WHERE "id" = $6`).
failure bool
name string
database *engine
- logs []*library.Log
+ logs []*api.Log
}{
{
failure: false,
name: "postgres",
database: _postgres,
- logs: []*library.Log{_service, _step},
+ logs: []*api.Log{_service, _step},
},
{
failure: false,
name: "sqlite3",
database: _sqlite,
- logs: []*library.Log{_service, _step},
+ logs: []*api.Log{_service, _step},
},
}
diff --git a/database/repo/create.go b/database/repo/create.go
index 618ff3a2c..2768a72be 100644
--- a/database/repo/create.go
+++ b/database/repo/create.go
@@ -21,7 +21,7 @@ func (e *engine) CreateRepo(ctx context.Context, r *api.Repo) (*api.Repo, error)
"repo": r.GetName(),
}).Tracef("creating repo %s", r.GetFullName())
- // cast the library type to database type
+ // cast the API type to database type
repo := types.RepoFromAPI(r)
// validate the necessary fields are populated
diff --git a/database/repo/delete.go b/database/repo/delete.go
index ad0ac6299..72f80af10 100644
--- a/database/repo/delete.go
+++ b/database/repo/delete.go
@@ -19,7 +19,7 @@ func (e *engine) DeleteRepo(ctx context.Context, r *api.Repo) error {
"repo": r.GetName(),
}).Tracef("deleting repo %s", r.GetFullName())
- // cast the library type to database type
+ // cast the API type to database type
repo := types.RepoFromAPI(r)
// send query to the database
diff --git a/database/repo/get.go b/database/repo/get.go
index f1b80f30b..4f241425b 100644
--- a/database/repo/get.go
+++ b/database/repo/get.go
@@ -30,8 +30,6 @@ func (e *engine) GetRepo(ctx context.Context, id int64) (*api.Repo, error) {
}
// decrypt the fields for the repo
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Repo.Decrypt
err = r.Decrypt(e.config.EncryptionKey)
if err != nil {
// TODO: remove backwards compatibility before 1.x.x release
@@ -42,13 +40,9 @@ func (e *engine) GetRepo(ctx context.Context, id int64) (*api.Repo, error) {
e.logger.Errorf("unable to decrypt repo %d: %v", id, err)
// return the unencrypted repo
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Repo.ToLibrary
return r.ToAPI(), nil
}
// return the decrypted repo
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Repo.ToLibrary
return r.ToAPI(), nil
}
diff --git a/database/repo/list.go b/database/repo/list.go
index 84e5c5c95..5fd587dd4 100644
--- a/database/repo/list.go
+++ b/database/repo/list.go
@@ -57,7 +57,7 @@ func (e *engine) ListRepos(ctx context.Context) ([]*api.Repo, error) {
e.logger.Errorf("unable to decrypt repo %d: %v", tmp.ID.Int64, err)
}
- // convert query result to library type
+ // convert query result to API type
repos = append(repos, tmp.ToAPI())
}
diff --git a/database/repo/list_user.go b/database/repo/list_user.go
index c32d5d05e..c0bedbe66 100644
--- a/database/repo/list_user.go
+++ b/database/repo/list_user.go
@@ -98,7 +98,7 @@ func (e *engine) ListReposForUser(ctx context.Context, u *api.User, sortBy strin
e.logger.Errorf("unable to decrypt repo %d: %v", tmp.ID.Int64, err)
}
- // convert query result to library type
+ // convert query result to API type
repos = append(repos, tmp.ToAPI())
}
diff --git a/database/repo/update.go b/database/repo/update.go
index 1e4fe88fa..8168bf404 100644
--- a/database/repo/update.go
+++ b/database/repo/update.go
@@ -21,7 +21,7 @@ func (e *engine) UpdateRepo(ctx context.Context, r *api.Repo) (*api.Repo, error)
"repo": r.GetName(),
}).Tracef("creating repo %s", r.GetFullName())
- // cast the library type to database type
+ // cast the API type to database type
repo := types.RepoFromAPI(r)
// validate the necessary fields are populated
diff --git a/database/secret/get_org.go b/database/secret/get_org.go
index 9782391b0..0c5d50fb9 100644
--- a/database/secret/get_org.go
+++ b/database/secret/get_org.go
@@ -37,8 +37,6 @@ func (e *engine) GetSecretForOrg(ctx context.Context, org, name string) (*api.Se
}
// decrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Decrypt
err = s.Decrypt(e.config.EncryptionKey)
if err != nil {
// TODO: remove backwards compatibility before 1.x.x release
diff --git a/database/secret/get_team.go b/database/secret/get_team.go
index baae49f70..5bc795765 100644
--- a/database/secret/get_team.go
+++ b/database/secret/get_team.go
@@ -39,8 +39,6 @@ func (e *engine) GetSecretForTeam(ctx context.Context, org, team, name string) (
}
// decrypt the fields for the secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.Decrypt
err = s.Decrypt(e.config.EncryptionKey)
if err != nil {
// TODO: remove backwards compatibility before 1.x.x release
@@ -51,13 +49,9 @@ func (e *engine) GetSecretForTeam(ctx context.Context, org, team, name string) (
e.logger.Errorf("unable to decrypt shared secret %s/%s/%s: %v", org, team, name, err)
// return the unencrypted secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
return s.ToAPI(), nil
}
// return the decrypted secret
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Secret.ToLibrary
return s.ToAPI(), nil
}
diff --git a/database/step/delete.go b/database/step/delete.go
index 70c30e228..73398afc6 100644
--- a/database/step/delete.go
+++ b/database/step/delete.go
@@ -18,9 +18,7 @@ func (e *engine) DeleteStep(ctx context.Context, s *api.Step) error {
"step": s.GetNumber(),
}).Tracef("deleting step %s", s.GetName())
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#StepFromLibrary
+ // cast the API type to database type
step := types.StepFromAPI(s)
// send query to the database
diff --git a/database/testutils/api_resources.go b/database/testutils/api_resources.go
index bb6b451a3..18f619afd 100644
--- a/database/testutils/api_resources.go
+++ b/database/testutils/api_resources.go
@@ -12,7 +12,6 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/api/types/actions"
"github.com/go-vela/server/compiler/types/raw"
- "github.com/go-vela/types/library"
)
// API TEST RESOURCES
@@ -162,8 +161,8 @@ func APIHook() *api.Hook {
}
}
-func APILog() *library.Log {
- return &library.Log{
+func APILog() *api.Log {
+ return &api.Log{
ID: new(int64),
RepoID: new(int64),
BuildID: new(int64),
diff --git a/database/types/build_executable.go b/database/types/build_executable.go
new file mode 100644
index 000000000..3448bde2e
--- /dev/null
+++ b/database/types/build_executable.go
@@ -0,0 +1,166 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "database/sql"
+ "encoding/base64"
+ "errors"
+
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/util"
+)
+
+var (
+ // ErrEmptyBuildExecutableBuildID defines the error type when a
+ // BuildExecutable type has an empty BuildID field provided.
+ ErrEmptyBuildExecutableBuildID = errors.New("empty build_executable build_id provided")
+)
+
+// BuildExecutable is the database representation of a BuildExecutable.
+type BuildExecutable struct {
+ ID sql.NullInt64 `sql:"id"`
+ BuildID sql.NullInt64 `sql:"build_id"`
+ Data []byte `sql:"data"`
+}
+
+// Compress will manipulate the existing data for the
+// BuildExecutable by compressing that data. This produces
+// a significantly smaller amount of data that is
+// stored in the system.
+func (b *BuildExecutable) Compress(level int) error {
+ // compress the database BuildExecutable data
+ data, err := util.Compress(level, b.Data)
+ if err != nil {
+ return err
+ }
+
+ // overwrite database BuildExecutable data with compressed BuildExecutable data
+ b.Data = data
+
+ return nil
+}
+
+// Decompress will manipulate the existing data for the
+// BuildExecutable by decompressing that data. This allows us
+// to have a significantly smaller amount of data that
+// is stored in the system.
+func (b *BuildExecutable) Decompress() error {
+ // decompress the database BuildExecutable data
+ data, err := util.Decompress(b.Data)
+ if err != nil {
+ return err
+ }
+
+ // overwrite compressed BuildExecutable data with decompressed BuildExecutable data
+ b.Data = data
+
+ return nil
+}
+
+// Decrypt will manipulate the existing executable data by
+// base64 decoding that value. Then, a AES-256 cipher
+// block is created from the encryption key in order to
+// decrypt the base64 decoded secret value.
+func (b *BuildExecutable) Decrypt(key string) error {
+ dst := make([]byte, base64.StdEncoding.DecodedLen(len(b.Data)))
+
+ // base64 decode the encrypted repo hash
+ n, err := base64.StdEncoding.Decode(dst, b.Data)
+ if err != nil {
+ return err
+ }
+
+ dst = dst[:n]
+
+ // decrypt the base64 decoded executable data
+ decrypted, err := util.Decrypt(key, dst)
+ if err != nil {
+ return err
+ }
+
+ // set the decrypted executable
+ b.Data = decrypted
+
+ return nil
+}
+
+// Encrypt will manipulate the existing build executable by
+// creating a AES-256 cipher block from the encryption
+// key in order to encrypt the build executable. Then, the
+// build executable is base64 encoded for transport across
+// network boundaries.
+func (b *BuildExecutable) Encrypt(key string) error {
+ // encrypt the executable data
+ encrypted, err := util.Encrypt(key, b.Data)
+ if err != nil {
+ return err
+ }
+
+ // base64 encode the encrypted executable to make it network safe
+ dst := make([]byte, base64.StdEncoding.EncodedLen(len(encrypted)))
+ base64.StdEncoding.Encode(dst, encrypted)
+
+ b.Data = dst
+
+ return nil
+}
+
+// Nullify ensures the valid flag for
+// the sql.Null types are properly set.
+//
+// When a field within the BuildExecutable type is the zero
+// value for the field, the valid flag is set to
+// false causing it to be NULL in the database.
+func (b *BuildExecutable) Nullify() *BuildExecutable {
+ if b == nil {
+ return nil
+ }
+
+ // check if the ID field should be false
+ if b.ID.Int64 == 0 {
+ b.ID.Valid = false
+ }
+
+ // check if the BuildID field should be false
+ if b.BuildID.Int64 == 0 {
+ b.BuildID.Valid = false
+ }
+
+ return b
+}
+
+// ToAPI converts the BuildExecutable type
+// to a API BuildExecutable type.
+func (b *BuildExecutable) ToAPI() *api.BuildExecutable {
+ buildExecutable := new(api.BuildExecutable)
+
+ buildExecutable.SetID(b.ID.Int64)
+ buildExecutable.SetBuildID(b.BuildID.Int64)
+ buildExecutable.SetData(b.Data)
+
+ return buildExecutable
+}
+
+// Validate verifies the necessary fields for
+// the BuildExecutable type are populated correctly.
+func (b *BuildExecutable) Validate() error {
+ // verify the BuildID field is populated
+ if b.BuildID.Int64 <= 0 {
+ return ErrEmptyBuildExecutableBuildID
+ }
+
+ return nil
+}
+
+// BuildExecutableFromAPI converts the API BuildExecutable type
+// to a database BuildExecutable type.
+func BuildExecutableFromAPI(c *api.BuildExecutable) *BuildExecutable {
+ buildExecutable := &BuildExecutable{
+ ID: sql.NullInt64{Int64: c.GetID(), Valid: true},
+ BuildID: sql.NullInt64{Int64: c.GetBuildID(), Valid: true},
+ Data: c.GetData(),
+ }
+
+ return buildExecutable.Nullify()
+}
diff --git a/database/types/build_executable_test.go b/database/types/build_executable_test.go
new file mode 100644
index 000000000..1806e2951
--- /dev/null
+++ b/database/types/build_executable_test.go
@@ -0,0 +1,455 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "database/sql"
+ "reflect"
+ "testing"
+
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+)
+
+func TestDatabase_BuildExecutable_Compress(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ name string
+ failure bool
+ level int
+ buildExecutable *BuildExecutable
+ want []byte
+ }{
+ {
+ name: "compression level -1",
+ failure: false,
+ level: constants.CompressionNegOne,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 156, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ {
+ name: "compression level 0",
+ failure: false,
+ level: constants.CompressionZero,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 1, 0, 108, 1, 147, 254, 10, 123, 32, 10, 32, 32, 32, 32, 34, 105, 100, 34, 58, 32, 34, 115, 116, 101, 112, 95, 110, 97, 109, 101, 34, 44, 10, 32, 32, 32, 32, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 32, 34, 49, 34, 44, 10, 32, 32, 32, 32, 34, 109, 101, 116, 97, 100, 97, 116, 97, 34, 58, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 99, 108, 111, 110, 101, 34, 58, 116, 114, 117, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 34, 58, 91, 34, 115, 116, 101, 112, 115, 34, 44, 34, 115, 101, 114, 118, 105, 99, 101, 115, 34, 44, 34, 115, 101, 99, 114, 101, 116, 115, 34, 93, 125, 44, 10, 32, 32, 32, 32, 34, 119, 111, 114, 107, 101, 114, 34, 58, 123, 125, 44, 10, 32, 32, 32, 32, 34, 115, 116, 101, 112, 115, 34, 58, 91, 10, 32, 32, 32, 32, 32, 32, 32, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 105, 100, 34, 58, 34, 115, 116, 101, 112, 95, 103, 105, 116, 104, 117, 98, 95, 111, 99, 116, 111, 99, 97, 116, 95, 49, 95, 105, 110, 105, 116, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 100, 105, 114, 101, 99, 116, 111, 114, 121, 34, 58, 34, 47, 118, 101, 108, 97, 47, 115, 114, 99, 47, 103, 105, 116, 104, 117, 98, 46, 99, 111, 109, 47, 103, 105, 116, 104, 117, 98, 47, 111, 99, 116, 111, 99, 97, 116, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 34, 58, 32, 123, 34, 66, 85, 73, 76, 68, 95, 65, 85, 84, 72, 79, 82, 34, 58, 34, 79, 99, 116, 111, 99, 97, 116, 34, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 93, 10, 125, 10, 1, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ {
+ name: "compression level 1",
+ failure: false,
+ level: constants.CompressionOne,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 1, 92, 143, 65, 75, 3, 49, 16, 133, 239, 249, 21, 195, 59, 23, 151, 94, 115, 83, 60, 40, 8, 5, 177, 167, 82, 66, 76, 7, 13, 118, 19, 153, 76, 87, 100, 217, 255, 46, 217, 236, 86, 244, 157, 134, 151, 121, 243, 190, 152, 145, 12, 17, 17, 226, 9, 150, 80, 148, 63, 93, 242, 61, 99, 211, 236, 129, 165, 196, 156, 234, 219, 118, 245, 122, 86, 127, 242, 234, 97, 199, 121, 169, 10, 225, 156, 19, 195, 170, 92, 184, 69, 171, 192, 105, 136, 146, 83, 207, 73, 97, 15, 243, 249, 130, 13, 10, 203, 16, 3, 183, 49, 8, 107, 193, 113, 106, 49, 124, 101, 249, 96, 129, 29, 87, 163, 50, 21, 216, 195, 181, 235, 183, 181, 106, 38, 159, 151, 220, 91, 212, 247, 203, 171, 203, 65, 115, 240, 234, 182, 46, 166, 168, 11, 245, 42, 156, 162, 112, 208, 44, 223, 176, 232, 6, 62, 251, 174, 72, 232, 90, 244, 38, 228, 126, 25, 187, 229, 202, 255, 248, 159, 31, 209, 136, 187, 253, 227, 211, 189, 187, 221, 191, 60, 236, 158, 97, 177, 107, 221, 152, 174, 180, 147, 33, 34, 58, 154, 201, 252, 4, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ {
+ name: "compression level 2",
+ failure: false,
+ level: constants.CompressionTwo,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 94, 92, 143, 65, 75, 195, 64, 16, 133, 239, 249, 21, 203, 59, 23, 67, 175, 123, 83, 60, 40, 8, 5, 177, 167, 82, 150, 117, 51, 232, 98, 179, 35, 179, 211, 136, 132, 252, 119, 49, 147, 70, 236, 237, 241, 146, 111, 222, 183, 205, 232, 26, 231, 156, 67, 238, 224, 29, 170, 210, 103, 40, 177, 39, 108, 172, 30, 72, 106, 230, 242, 251, 109, 123, 233, 122, 210, 216, 69, 141, 240, 227, 252, 211, 204, 167, 19, 23, 130, 87, 57, 147, 161, 115, 75, 101, 200, 194, 165, 167, 162, 240, 135, 249, 124, 197, 6, 149, 100, 200, 137, 44, 38, 33, 173, 56, 78, 203, 226, 23, 203, 7, 9, 252, 120, 41, 12, 242, 135, 117, 235, 111, 117, 53, 55, 241, 183, 172, 239, 231, 215, 192, 73, 57, 69, 13, 219, 144, 75, 214, 197, 122, 21, 237, 178, 80, 82, 150, 111, 120, 180, 3, 157, 98, 91, 37, 181, 134, 222, 36, 238, 151, 216, 46, 87, 174, 241, 127, 47, 114, 35, 238, 246, 143, 79, 247, 225, 118, 255, 242, 176, 123, 134, 199, 206, 182, 49, 173, 182, 150, 142, 205, 212, 252, 4, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ {
+ name: "compression level 3",
+ failure: false,
+ level: constants.CompressionThree,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 94, 92, 143, 65, 75, 195, 64, 16, 133, 239, 249, 21, 203, 59, 23, 67, 175, 123, 83, 60, 40, 8, 5, 177, 167, 82, 150, 117, 51, 232, 98, 179, 35, 179, 211, 136, 132, 252, 119, 49, 147, 70, 236, 237, 241, 118, 222, 123, 223, 54, 163, 107, 156, 115, 14, 185, 131, 119, 168, 74, 159, 161, 196, 158, 176, 49, 123, 32, 169, 153, 203, 239, 219, 246, 226, 245, 164, 177, 139, 26, 225, 199, 249, 104, 62, 76, 39, 46, 4, 175, 114, 38, 139, 206, 46, 149, 33, 11, 151, 158, 138, 194, 31, 230, 250, 138, 13, 42, 201, 144, 19, 153, 76, 66, 90, 113, 156, 150, 197, 47, 150, 15, 18, 248, 241, 98, 88, 200, 31, 214, 214, 191, 213, 149, 220, 192, 223, 178, 190, 159, 95, 3, 39, 229, 20, 53, 108, 67, 46, 89, 23, 234, 21, 169, 203, 66, 73, 89, 190, 225, 209, 14, 116, 138, 109, 149, 212, 90, 244, 38, 113, 191, 200, 118, 105, 185, 142, 255, 251, 145, 27, 113, 183, 127, 124, 186, 15, 183, 251, 151, 135, 221, 51, 60, 118, 182, 141, 105, 165, 53, 117, 108, 166, 230, 39, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ {
+ name: "compression level 4",
+ failure: false,
+ level: constants.CompressionFour,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 94, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 23, 151, 94, 115, 83, 60, 40, 8, 5, 177, 167, 82, 66, 204, 14, 26, 236, 102, 100, 50, 93, 145, 101, 255, 187, 52, 73, 87, 244, 54, 124, 51, 223, 203, 75, 55, 155, 206, 24, 99, 16, 7, 88, 131, 172, 244, 233, 146, 31, 9, 155, 138, 39, 146, 28, 57, 93, 118, 219, 43, 27, 73, 253, 224, 213, 195, 206, 5, 20, 24, 78, 156, 8, 86, 229, 76, 245, 172, 80, 74, 83, 20, 78, 35, 37, 133, 61, 148, 248, 140, 13, 50, 201, 20, 3, 213, 49, 8, 105, 198, 113, 105, 233, 95, 44, 31, 36, 176, 243, 21, 84, 201, 30, 214, 212, 223, 87, 203, 254, 210, 188, 22, 127, 139, 250, 126, 126, 117, 28, 148, 131, 87, 183, 117, 49, 69, 109, 173, 215, 243, 33, 10, 5, 101, 249, 134, 69, 63, 209, 201, 247, 89, 66, 95, 213, 155, 192, 99, 27, 251, 150, 242, 95, 255, 243, 35, 51, 227, 110, 255, 248, 116, 239, 110, 247, 47, 15, 187, 103, 88, 236, 154, 181, 172, 86, 157, 142, 221, 210, 253, 4, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ {
+ name: "compression level 5",
+ failure: false,
+ level: constants.CompressionFive,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 94, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ {
+ name: "compression level 6",
+ failure: false,
+ level: constants.CompressionSix,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 156, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ {
+ name: "compression level 7",
+ failure: false,
+ level: constants.CompressionSeven,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 218, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ {
+ name: "compression level 8",
+ failure: false,
+ level: constants.CompressionEight,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 218, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ {
+ name: "compression level 9",
+ failure: false,
+ level: constants.CompressionNine,
+ buildExecutable: &BuildExecutable{Data: testBuildExecutableData()},
+ want: []byte{120, 218, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105},
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ t.Run(test.name, func(t *testing.T) {
+ err := test.buildExecutable.Compress(test.level)
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Compress for %s should have returned err", test.name)
+ }
+
+ return
+ }
+
+ if err != nil {
+ t.Errorf("Compress for %s returned err: %v", test.name, err)
+ }
+
+ if !reflect.DeepEqual(test.buildExecutable.Data, test.want) {
+ t.Errorf("Compress for %s is %v, want %v", test.name, test.buildExecutable.Data, string(test.want))
+ }
+ })
+ }
+}
+
+func TestDatabase_BuildExecutable_Decompress(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ name string
+ failure bool
+ buildExecutable *BuildExecutable
+ want []byte
+ }{
+ {
+ name: "compression level -1",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 156, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ {
+ name: "compression level 0",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 1, 0, 108, 1, 147, 254, 10, 123, 32, 10, 32, 32, 32, 32, 34, 105, 100, 34, 58, 32, 34, 115, 116, 101, 112, 95, 110, 97, 109, 101, 34, 44, 10, 32, 32, 32, 32, 34, 118, 101, 114, 115, 105, 111, 110, 34, 58, 32, 34, 49, 34, 44, 10, 32, 32, 32, 32, 34, 109, 101, 116, 97, 100, 97, 116, 97, 34, 58, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 99, 108, 111, 110, 101, 34, 58, 116, 114, 117, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 34, 58, 91, 34, 115, 116, 101, 112, 115, 34, 44, 34, 115, 101, 114, 118, 105, 99, 101, 115, 34, 44, 34, 115, 101, 99, 114, 101, 116, 115, 34, 93, 125, 44, 10, 32, 32, 32, 32, 34, 119, 111, 114, 107, 101, 114, 34, 58, 123, 125, 44, 10, 32, 32, 32, 32, 34, 115, 116, 101, 112, 115, 34, 58, 91, 10, 32, 32, 32, 32, 32, 32, 32, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 105, 100, 34, 58, 34, 115, 116, 101, 112, 95, 103, 105, 116, 104, 117, 98, 95, 111, 99, 116, 111, 99, 97, 116, 95, 49, 95, 105, 110, 105, 116, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 100, 105, 114, 101, 99, 116, 111, 114, 121, 34, 58, 34, 47, 118, 101, 108, 97, 47, 115, 114, 99, 47, 103, 105, 116, 104, 117, 98, 46, 99, 111, 109, 47, 103, 105, 116, 104, 117, 98, 47, 111, 99, 116, 111, 99, 97, 116, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 34, 58, 32, 123, 34, 66, 85, 73, 76, 68, 95, 65, 85, 84, 72, 79, 82, 34, 58, 34, 79, 99, 116, 111, 99, 97, 116, 34, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 93, 10, 125, 10, 1, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ {
+ name: "compression level 1",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 1, 92, 143, 65, 75, 3, 49, 16, 133, 239, 249, 21, 195, 59, 23, 151, 94, 115, 83, 60, 40, 8, 5, 177, 167, 82, 66, 76, 7, 13, 118, 19, 153, 76, 87, 100, 217, 255, 46, 217, 236, 86, 244, 157, 134, 151, 121, 243, 190, 152, 145, 12, 17, 17, 226, 9, 150, 80, 148, 63, 93, 242, 61, 99, 211, 236, 129, 165, 196, 156, 234, 219, 118, 245, 122, 86, 127, 242, 234, 97, 199, 121, 169, 10, 225, 156, 19, 195, 170, 92, 184, 69, 171, 192, 105, 136, 146, 83, 207, 73, 97, 15, 243, 249, 130, 13, 10, 203, 16, 3, 183, 49, 8, 107, 193, 113, 106, 49, 124, 101, 249, 96, 129, 29, 87, 163, 50, 21, 216, 195, 181, 235, 183, 181, 106, 38, 159, 151, 220, 91, 212, 247, 203, 171, 203, 65, 115, 240, 234, 182, 46, 166, 168, 11, 245, 42, 156, 162, 112, 208, 44, 223, 176, 232, 6, 62, 251, 174, 72, 232, 90, 244, 38, 228, 126, 25, 187, 229, 202, 255, 248, 159, 31, 209, 136, 187, 253, 227, 211, 189, 187, 221, 191, 60, 236, 158, 97, 177, 107, 221, 152, 174, 180, 147, 33, 34, 58, 154, 201, 252, 4, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ {
+ name: "compression level 2",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 94, 92, 143, 65, 75, 195, 64, 16, 133, 239, 249, 21, 203, 59, 23, 67, 175, 123, 83, 60, 40, 8, 5, 177, 167, 82, 150, 117, 51, 232, 98, 179, 35, 179, 211, 136, 132, 252, 119, 49, 147, 70, 236, 237, 241, 146, 111, 222, 183, 205, 232, 26, 231, 156, 67, 238, 224, 29, 170, 210, 103, 40, 177, 39, 108, 172, 30, 72, 106, 230, 242, 251, 109, 123, 233, 122, 210, 216, 69, 141, 240, 227, 252, 211, 204, 167, 19, 23, 130, 87, 57, 147, 161, 115, 75, 101, 200, 194, 165, 167, 162, 240, 135, 249, 124, 197, 6, 149, 100, 200, 137, 44, 38, 33, 173, 56, 78, 203, 226, 23, 203, 7, 9, 252, 120, 41, 12, 242, 135, 117, 235, 111, 117, 53, 55, 241, 183, 172, 239, 231, 215, 192, 73, 57, 69, 13, 219, 144, 75, 214, 197, 122, 21, 237, 178, 80, 82, 150, 111, 120, 180, 3, 157, 98, 91, 37, 181, 134, 222, 36, 238, 151, 216, 46, 87, 174, 241, 127, 47, 114, 35, 238, 246, 143, 79, 247, 225, 118, 255, 242, 176, 123, 134, 199, 206, 182, 49, 173, 182, 150, 142, 205, 212, 252, 4, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ {
+ name: "compression level 3",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 94, 92, 143, 65, 75, 195, 64, 16, 133, 239, 249, 21, 203, 59, 23, 67, 175, 123, 83, 60, 40, 8, 5, 177, 167, 82, 150, 117, 51, 232, 98, 179, 35, 179, 211, 136, 132, 252, 119, 49, 147, 70, 236, 237, 241, 118, 222, 123, 223, 54, 163, 107, 156, 115, 14, 185, 131, 119, 168, 74, 159, 161, 196, 158, 176, 49, 123, 32, 169, 153, 203, 239, 219, 246, 226, 245, 164, 177, 139, 26, 225, 199, 249, 104, 62, 76, 39, 46, 4, 175, 114, 38, 139, 206, 46, 149, 33, 11, 151, 158, 138, 194, 31, 230, 250, 138, 13, 42, 201, 144, 19, 153, 76, 66, 90, 113, 156, 150, 197, 47, 150, 15, 18, 248, 241, 98, 88, 200, 31, 214, 214, 191, 213, 149, 220, 192, 223, 178, 190, 159, 95, 3, 39, 229, 20, 53, 108, 67, 46, 89, 23, 234, 21, 169, 203, 66, 73, 89, 190, 225, 209, 14, 116, 138, 109, 149, 212, 90, 244, 38, 113, 191, 200, 118, 105, 185, 142, 255, 251, 145, 27, 113, 183, 127, 124, 186, 15, 183, 251, 151, 135, 221, 51, 60, 118, 182, 141, 105, 165, 53, 117, 108, 166, 230, 39, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ {
+ name: "compression level 4",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 94, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 23, 151, 94, 115, 83, 60, 40, 8, 5, 177, 167, 82, 66, 204, 14, 26, 236, 102, 100, 50, 93, 145, 101, 255, 187, 52, 73, 87, 244, 54, 124, 51, 223, 203, 75, 55, 155, 206, 24, 99, 16, 7, 88, 131, 172, 244, 233, 146, 31, 9, 155, 138, 39, 146, 28, 57, 93, 118, 219, 43, 27, 73, 253, 224, 213, 195, 206, 5, 20, 24, 78, 156, 8, 86, 229, 76, 245, 172, 80, 74, 83, 20, 78, 35, 37, 133, 61, 148, 248, 140, 13, 50, 201, 20, 3, 213, 49, 8, 105, 198, 113, 105, 233, 95, 44, 31, 36, 176, 243, 21, 84, 201, 30, 214, 212, 223, 87, 203, 254, 210, 188, 22, 127, 139, 250, 126, 126, 117, 28, 148, 131, 87, 183, 117, 49, 69, 109, 173, 215, 243, 33, 10, 5, 101, 249, 134, 69, 63, 209, 201, 247, 89, 66, 95, 213, 155, 192, 99, 27, 251, 150, 242, 95, 255, 243, 35, 51, 227, 110, 255, 248, 116, 239, 110, 247, 47, 15, 187, 103, 88, 236, 154, 181, 172, 86, 157, 142, 221, 210, 253, 4, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ {
+ name: "compression level 5",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 94, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ {
+ name: "compression level 6",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 156, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ {
+ name: "compression level 7",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 218, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ {
+ name: "compression level 8",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 218, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ {
+ name: "compression level 9",
+ failure: false,
+ buildExecutable: &BuildExecutable{Data: []byte{120, 218, 92, 143, 65, 75, 3, 49, 16, 133, 239, 251, 43, 194, 59, 47, 46, 189, 230, 166, 120, 80, 16, 10, 98, 79, 165, 132, 152, 29, 52, 216, 205, 200, 100, 186, 34, 203, 254, 119, 113, 147, 110, 105, 111, 143, 47, 249, 94, 94, 154, 201, 52, 198, 24, 131, 216, 195, 26, 100, 165, 111, 151, 252, 64, 104, 11, 30, 73, 114, 228, 244, 127, 182, 57, 179, 129, 212, 247, 94, 61, 236, 180, 128, 5, 134, 35, 39, 130, 85, 57, 81, 123, 161, 148, 198, 40, 156, 6, 74, 10, 187, 95, 234, 51, 90, 100, 146, 49, 6, 42, 49, 8, 105, 198, 97, 174, 237, 63, 44, 95, 36, 176, 211, 25, 20, 201, 238, 215, 214, 203, 171, 235, 242, 50, 252, 35, 234, 231, 233, 221, 113, 80, 14, 94, 221, 198, 197, 20, 21, 237, 245, 245, 62, 10, 5, 101, 249, 133, 69, 55, 210, 209, 119, 89, 66, 87, 212, 187, 192, 67, 141, 93, 109, 185, 213, 175, 126, 100, 38, 60, 236, 158, 95, 30, 221, 253, 238, 237, 105, 251, 10, 139, 109, 181, 230, 213, 42, 233, 208, 204, 205, 95, 0, 0, 0, 255, 255, 225, 62, 100, 105}},
+ want: testBuildExecutableData(),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ t.Run(test.name, func(t *testing.T) {
+ err := test.buildExecutable.Decompress()
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Decompress for %s should have returned err", test.name)
+ }
+
+ return
+ }
+
+ if err != nil {
+ t.Errorf("Decompress for %s returned err: %v", test.name, err)
+ }
+
+ if !reflect.DeepEqual(test.buildExecutable.Data, test.want) {
+ t.Errorf("Decompress for %s is %v, want %v", test.name, string(test.buildExecutable.Data), string(test.want))
+ }
+ })
+ }
+}
+
+func TestDatabase_BuildExecutable_Decrypt(t *testing.T) {
+ // setup types
+ key := "C639A572E14D5075C526FDDD43E4ECF6"
+ encrypted := testBuildExecutable()
+
+ err := encrypted.Encrypt(key)
+ if err != nil {
+ t.Errorf("unable to encrypt repo: %v", err)
+ }
+
+ // setup tests
+ tests := []struct {
+ failure bool
+ key string
+ executable BuildExecutable
+ }{
+ {
+ failure: false,
+ key: key,
+ executable: *encrypted,
+ },
+ {
+ failure: true,
+ key: "",
+ executable: *encrypted,
+ },
+ {
+ failure: true,
+ key: key,
+ executable: *testBuildExecutable(),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ err := test.executable.Decrypt(test.key)
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Decrypt should have returned err")
+ }
+
+ continue
+ }
+
+ if err != nil {
+ t.Errorf("Decrypt returned err: %v", err)
+ }
+ }
+}
+
+func TestDatabase_BuildExecutable_Encrypt(t *testing.T) {
+ // setup types
+ key := "C639A572E14D5075C526FDDD43E4ECF6"
+
+ // setup tests
+ tests := []struct {
+ failure bool
+ key string
+ executable *BuildExecutable
+ }{
+ {
+ failure: false,
+ key: key,
+ executable: testBuildExecutable(),
+ },
+ {
+ failure: true,
+ key: "",
+ executable: testBuildExecutable(),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ err := test.executable.Encrypt(test.key)
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Encrypt should have returned err")
+ }
+
+ continue
+ }
+
+ if err != nil {
+ t.Errorf("Encrypt returned err: %v", err)
+ }
+ }
+}
+
+func TestDatabase_BuildExecutable_Nullify(t *testing.T) {
+ // setup types
+ var p *BuildExecutable
+
+ want := &BuildExecutable{
+ ID: sql.NullInt64{Int64: 0, Valid: false},
+ BuildID: sql.NullInt64{Int64: 0, Valid: false},
+ }
+
+ // setup tests
+ tests := []struct {
+ buildExecutable *BuildExecutable
+ want *BuildExecutable
+ }{
+ {
+ buildExecutable: testBuildExecutable(),
+ want: testBuildExecutable(),
+ },
+ {
+ buildExecutable: p,
+ want: nil,
+ },
+ {
+ buildExecutable: new(BuildExecutable),
+ want: want,
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := test.buildExecutable.Nullify()
+
+ if !reflect.DeepEqual(got, test.want) {
+ t.Errorf("Nullify is %v, want %v", got, test.want)
+ }
+ }
+}
+
+func TestDatabase_BuildExecutable_ToAPI(t *testing.T) {
+ // setup types
+ want := new(api.BuildExecutable)
+
+ want.SetID(1)
+ want.SetBuildID(1)
+ want.SetData(testBuildExecutableData())
+
+ // run test
+ got := testBuildExecutable().ToAPI()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("ToAPI is %v, want %v", got, want)
+ }
+}
+
+func TestDatabase_BuildExecutable_Validate(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ failure bool
+ buildExecutable *BuildExecutable
+ }{
+ {
+ failure: false,
+ buildExecutable: testBuildExecutable(),
+ },
+ { // no build_id set for buildExecutable
+ failure: true,
+ buildExecutable: &BuildExecutable{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ },
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ err := test.buildExecutable.Validate()
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Validate should have returned err")
+ }
+
+ continue
+ }
+
+ if err != nil {
+ t.Errorf("Validate returned err: %v", err)
+ }
+ }
+}
+
+func TestDatabase_BuildExecutableFromAPI(t *testing.T) {
+ // setup types
+ c := new(api.BuildExecutable)
+
+ c.SetID(1)
+ c.SetBuildID(1)
+ c.SetData(testBuildExecutableData())
+
+ want := testBuildExecutable()
+
+ // run test
+ got := BuildExecutableFromAPI(c)
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("BuildExecutableFromAPI is %v, want %v", got, want)
+ }
+}
+
+// testBuildExecutable is a test helper function to create a BuildExecutable
+// type with all fields set to a fake value.
+func testBuildExecutable() *BuildExecutable {
+ return &BuildExecutable{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ Data: testBuildExecutableData(),
+ }
+}
+
+// testBuildExecutableData is a test helper function to create the
+// content for the Data field for the BuildExecutable type.
+func testBuildExecutableData() []byte {
+ return []byte(`
+{
+ "id": "step_name",
+ "version": "1",
+ "metadata":{
+ "clone":true,
+ "environment":["steps","services","secrets"]},
+ "worker":{},
+ "steps":[
+ {
+ "id":"step_github_octocat_1_init",
+ "directory":"/vela/src/github.com/github/octocat",
+ "environment": {"BUILD_AUTHOR":"Octocat"}
+ }
+ ]
+}
+`)
+}
diff --git a/database/types/log.go b/database/types/log.go
new file mode 100644
index 000000000..0c208440f
--- /dev/null
+++ b/database/types/log.go
@@ -0,0 +1,159 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "database/sql"
+ "errors"
+
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/util"
+)
+
+var (
+ // ErrEmptyLogBuildID defines the error type when a
+ // Log type has an empty BuildID field provided.
+ ErrEmptyLogBuildID = errors.New("empty log build_id provided")
+
+ // ErrEmptyLogRepoID defines the error type when a
+ // Log type has an empty RepoID field provided.
+ ErrEmptyLogRepoID = errors.New("empty log repo_id provided")
+
+ // ErrEmptyLogStepOrServiceID defines the error type when a
+ // Log type has an empty StepID or ServiceID field provided.
+ ErrEmptyLogStepOrServiceID = errors.New("empty log step_id or service_id not provided")
+)
+
+// Log is the database representation of a log for a step in a build.
+type Log struct {
+ ID sql.NullInt64 `sql:"id"`
+ BuildID sql.NullInt64 `sql:"build_id"`
+ RepoID sql.NullInt64 `sql:"repo_id"`
+ ServiceID sql.NullInt64 `sql:"service_id"`
+ StepID sql.NullInt64 `sql:"step_id"`
+ Data []byte `sql:"data"`
+}
+
+// Compress will manipulate the existing data for the
+// log entry by compressing that data. This produces
+// a significantly smaller amount of data that is
+// stored in the system.
+func (l *Log) Compress(level int) error {
+ // compress the database log data
+ data, err := util.Compress(level, l.Data)
+ if err != nil {
+ return err
+ }
+
+ // overwrite database log data with compressed log data
+ l.Data = data
+
+ return nil
+}
+
+// Decompress will manipulate the existing data for the
+// log entry by decompressing that data. This allows us
+// to have a significantly smaller amount of data that
+// is stored in the system.
+func (l *Log) Decompress() error {
+ // decompress the database log data
+ data, err := util.Decompress(l.Data)
+ if err != nil {
+ return err
+ }
+
+ // overwrite compressed log data with decompressed log data
+ l.Data = data
+
+ return nil
+}
+
+// Nullify ensures the valid flag for
+// the sql.Null types are properly set.
+//
+// When a field within the Log type is the zero
+// value for the field, the valid flag is set to
+// false causing it to be NULL in the database.
+func (l *Log) Nullify() *Log {
+ if l == nil {
+ return nil
+ }
+
+ // check if the ID field should be false
+ if l.ID.Int64 == 0 {
+ l.ID.Valid = false
+ }
+
+ // check if the BuildID field should be false
+ if l.BuildID.Int64 == 0 {
+ l.BuildID.Valid = false
+ }
+
+ // check if the RepoID field should be false
+ if l.RepoID.Int64 == 0 {
+ l.RepoID.Valid = false
+ }
+
+ // check if the ServiceID field should be false
+ if l.ServiceID.Int64 == 0 {
+ l.ServiceID.Valid = false
+ }
+
+ // check if the StepID field should be false
+ if l.StepID.Int64 == 0 {
+ l.StepID.Valid = false
+ }
+
+ return l
+}
+
+// ToAPI converts the Log type
+// to a API Log type.
+func (l *Log) ToAPI() *api.Log {
+ log := new(api.Log)
+
+ log.SetID(l.ID.Int64)
+ log.SetBuildID(l.BuildID.Int64)
+ log.SetRepoID(l.RepoID.Int64)
+ log.SetServiceID(l.ServiceID.Int64)
+ log.SetStepID(l.StepID.Int64)
+ log.SetData(l.Data)
+
+ return log
+}
+
+// Validate verifies the necessary fields for
+// the Log type are populated correctly.
+func (l *Log) Validate() error {
+ // verify the has StepID or ServiceID field populated
+ if l.StepID.Int64 <= 0 && l.ServiceID.Int64 <= 0 {
+ return ErrEmptyLogStepOrServiceID
+ }
+
+ // verify the BuildID field is populated
+ if l.BuildID.Int64 <= 0 {
+ return ErrEmptyLogBuildID
+ }
+
+ // verify the RepoID field is populated
+ if l.RepoID.Int64 <= 0 {
+ return ErrEmptyLogRepoID
+ }
+
+ return nil
+}
+
+// LogFromAPI converts the Log type
+// to a API Log type.
+func LogFromAPI(l *api.Log) *Log {
+ log := &Log{
+ ID: sql.NullInt64{Int64: l.GetID(), Valid: true},
+ BuildID: sql.NullInt64{Int64: l.GetBuildID(), Valid: true},
+ RepoID: sql.NullInt64{Int64: l.GetRepoID(), Valid: true},
+ ServiceID: sql.NullInt64{Int64: l.GetServiceID(), Valid: true},
+ StepID: sql.NullInt64{Int64: l.GetStepID(), Valid: true},
+ Data: l.GetData(),
+ }
+
+ return log.Nullify()
+}
diff --git a/database/types/log_test.go b/database/types/log_test.go
new file mode 100644
index 000000000..f45b15c4f
--- /dev/null
+++ b/database/types/log_test.go
@@ -0,0 +1,374 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package types
+
+import (
+ "database/sql"
+ "reflect"
+ "testing"
+
+ api "github.com/go-vela/server/api/types"
+ "github.com/go-vela/server/constants"
+)
+
+func TestDatabase_Log_Compress(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ name string
+ failure bool
+ level int
+ log *Log
+ want []byte
+ }{
+ {
+ name: "compression level -1",
+ failure: false,
+ level: constants.CompressionNegOne,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 156, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ {
+ name: "compression level 0",
+ failure: false,
+ level: constants.CompressionZero,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 1, 0, 3, 0, 252, 255, 102, 111, 111, 1, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ {
+ name: "compression level 1",
+ failure: false,
+ level: constants.CompressionOne,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 1, 0, 3, 0, 252, 255, 102, 111, 111, 1, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ {
+ name: "compression level 2",
+ failure: false,
+ level: constants.CompressionTwo,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 94, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ {
+ name: "compression level 3",
+ failure: false,
+ level: constants.CompressionThree,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 94, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ {
+ name: "compression level 4",
+ failure: false,
+ level: constants.CompressionFour,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 94, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ {
+ name: "compression level 5",
+ failure: false,
+ level: constants.CompressionFive,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 94, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ {
+ name: "compression level 6",
+ failure: false,
+ level: constants.CompressionSix,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 156, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ {
+ name: "compression level 7",
+ failure: false,
+ level: constants.CompressionSeven,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 218, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ {
+ name: "compression level 8",
+ failure: false,
+ level: constants.CompressionEight,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 218, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ {
+ name: "compression level 9",
+ failure: false,
+ level: constants.CompressionNine,
+ log: &Log{Data: []byte("foo")},
+ want: []byte{120, 218, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69},
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ t.Run(test.name, func(t *testing.T) {
+ err := test.log.Compress(test.level)
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Compress for %s should have returned err", test.name)
+ }
+
+ return
+ }
+
+ if err != nil {
+ t.Errorf("Compress for %s returned err: %v", test.name, err)
+ }
+
+ if !reflect.DeepEqual(test.log.Data, test.want) {
+ t.Errorf("Compress for %s is %v, want %v", test.name, string(test.log.Data), string(test.want))
+ }
+ })
+ }
+}
+
+func TestDatabase_Log_Decompress(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ name string
+ failure bool
+ log *Log
+ want []byte
+ }{
+ {
+ name: "compression level -1",
+ failure: false,
+ log: &Log{Data: []byte{120, 156, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ {
+ name: "compression level 0",
+ failure: false,
+ log: &Log{Data: []byte{120, 1, 0, 3, 0, 252, 255, 102, 111, 111, 1, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ {
+ name: "compression level 1",
+ failure: false,
+ log: &Log{Data: []byte{120, 1, 0, 3, 0, 252, 255, 102, 111, 111, 1, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ {
+ name: "compression level 2",
+ failure: false,
+ log: &Log{Data: []byte{120, 94, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ {
+ name: "compression level 3",
+ failure: false,
+ log: &Log{Data: []byte{120, 94, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ {
+ name: "compression level 4",
+ failure: false,
+ log: &Log{Data: []byte{120, 94, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ {
+ name: "compression level 5",
+ failure: false,
+ log: &Log{Data: []byte{120, 94, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ {
+ name: "compression level 6",
+ failure: false,
+ log: &Log{Data: []byte{120, 156, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ {
+ name: "compression level 7",
+ failure: false,
+ log: &Log{Data: []byte{120, 218, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ {
+ name: "compression level 8",
+ failure: false,
+ log: &Log{Data: []byte{120, 218, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ {
+ name: "compression level 9",
+ failure: false,
+ log: &Log{Data: []byte{120, 218, 74, 203, 207, 7, 4, 0, 0, 255, 255, 2, 130, 1, 69}},
+ want: []byte("foo"),
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ t.Run(test.name, func(t *testing.T) {
+ err := test.log.Decompress()
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Decompress for %s should have returned err", test.name)
+ }
+
+ return
+ }
+
+ if err != nil {
+ t.Errorf("Decompress for %s returned err: %v", test.name, err)
+ }
+
+ if !reflect.DeepEqual(test.log.Data, test.want) {
+ t.Errorf("Decompress for %s is %v, want %v", test.name, string(test.log.Data), string(test.want))
+ }
+ })
+ }
+}
+
+func TestDatabase_Log_Nullify(t *testing.T) {
+ // setup types
+ var l *Log
+
+ want := &Log{
+ ID: sql.NullInt64{Int64: 0, Valid: false},
+ BuildID: sql.NullInt64{Int64: 0, Valid: false},
+ RepoID: sql.NullInt64{Int64: 0, Valid: false},
+ ServiceID: sql.NullInt64{Int64: 0, Valid: false},
+ StepID: sql.NullInt64{Int64: 0, Valid: false},
+ }
+
+ // setup tests
+ tests := []struct {
+ log *Log
+ want *Log
+ }{
+ {
+ log: testLog(),
+ want: testLog(),
+ },
+ {
+ log: l,
+ want: nil,
+ },
+ {
+ log: new(Log),
+ want: want,
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ got := test.log.Nullify()
+
+ if !reflect.DeepEqual(got, test.want) {
+ t.Errorf("Nullify is %v, want %v", got, test.want)
+ }
+ }
+}
+
+func TestDatabase_Log_ToAPI(t *testing.T) {
+ // setup types
+ want := new(api.Log)
+
+ want.SetID(1)
+ want.SetServiceID(1)
+ want.SetStepID(1)
+ want.SetBuildID(1)
+ want.SetRepoID(1)
+ want.SetData([]byte("foo"))
+
+ // run test
+ got := testLog().ToAPI()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("ToAPI is %v, want %v", got, want)
+ }
+}
+
+func TestDatabase_Log_Validate(t *testing.T) {
+ // setup tests
+ tests := []struct {
+ failure bool
+ log *Log
+ }{
+ {
+ failure: false,
+ log: testLog(),
+ },
+ { // no service_id or step_id set for log
+ failure: true,
+ log: &Log{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ },
+ },
+ { // no build_id set for log
+ failure: true,
+ log: &Log{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ ServiceID: sql.NullInt64{Int64: 1, Valid: true},
+ StepID: sql.NullInt64{Int64: 1, Valid: true},
+ },
+ },
+ { // no repo_id set for log
+ failure: true,
+ log: &Log{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ ServiceID: sql.NullInt64{Int64: 1, Valid: true},
+ StepID: sql.NullInt64{Int64: 1, Valid: true},
+ },
+ },
+ }
+
+ // run tests
+ for _, test := range tests {
+ err := test.log.Validate()
+
+ if test.failure {
+ if err == nil {
+ t.Errorf("Validate should have returned err")
+ }
+
+ continue
+ }
+
+ if err != nil {
+ t.Errorf("Validate returned err: %v", err)
+ }
+ }
+}
+
+func TestDatabase_LogFromAPI(t *testing.T) {
+ // setup types
+ l := new(api.Log)
+
+ l.SetID(1)
+ l.SetServiceID(1)
+ l.SetStepID(1)
+ l.SetBuildID(1)
+ l.SetRepoID(1)
+ l.SetData([]byte("foo"))
+
+ want := testLog()
+
+ // run test
+ got := LogFromAPI(l)
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("LogFromAPI is %v, want %v", got, want)
+ }
+}
+
+// testLog is a test helper function to create a Log
+// type with all fields set to a fake value.
+func testLog() *Log {
+ return &Log{
+ ID: sql.NullInt64{Int64: 1, Valid: true},
+ BuildID: sql.NullInt64{Int64: 1, Valid: true},
+ RepoID: sql.NullInt64{Int64: 1, Valid: true},
+ ServiceID: sql.NullInt64{Int64: 1, Valid: true},
+ StepID: sql.NullInt64{Int64: 1, Valid: true},
+ Data: []byte("foo"),
+ }
+}
diff --git a/database/types/step_test.go b/database/types/step_test.go
index 6d6aa2829..d2614effe 100644
--- a/database/types/step_test.go
+++ b/database/types/step_test.go
@@ -89,7 +89,7 @@ func TestDatabase_Step_ToAPI(t *testing.T) {
got := testStep().ToAPI()
if !reflect.DeepEqual(got, want) {
- t.Errorf("ToLibrary is %v, want %v", got, want)
+ t.Errorf("ToAPI is %v, want %v", got, want)
}
}
@@ -201,7 +201,7 @@ func TestDatabase_StepFromAPI(t *testing.T) {
got := StepFromAPI(s)
if !reflect.DeepEqual(got, want) {
- t.Errorf("StepFromLibrary is %v, want %v", got, want)
+ t.Errorf("StepFromAPI is %v, want %v", got, want)
}
}
diff --git a/database/types/worker_test.go b/database/types/worker_test.go
index ec835d1f1..44d676de9 100644
--- a/database/types/worker_test.go
+++ b/database/types/worker_test.go
@@ -171,7 +171,7 @@ func TestTypes_Worker_WorkerFromAPI(t *testing.T) {
got := WorkerFromAPI(w)
if !reflect.DeepEqual(got, want) {
- t.Errorf("WorkerFromLibrary is %v, want %v", got, want)
+ t.Errorf("WorkerFromAPI is %v, want %v", got, want)
}
}
diff --git a/database/user/create.go b/database/user/create.go
index efa73e0ce..ce2162d96 100644
--- a/database/user/create.go
+++ b/database/user/create.go
@@ -24,16 +24,12 @@ func (e *engine) CreateUser(ctx context.Context, u *api.User) (*api.User, error)
user := types.UserFromAPI(u)
// validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#User.Validate
err := user.Validate()
if err != nil {
return nil, err
}
// encrypt the fields for the user
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#User.Encrypt
err = user.Encrypt(e.config.EncryptionKey)
if err != nil {
return nil, fmt.Errorf("unable to encrypt user %s: %w", u.GetName(), err)
diff --git a/database/user/update.go b/database/user/update.go
index 4a68ebaca..bd8850502 100644
--- a/database/user/update.go
+++ b/database/user/update.go
@@ -20,7 +20,7 @@ func (e *engine) UpdateUser(ctx context.Context, u *api.User) (*api.User, error)
"user": u.GetName(),
}).Tracef("updating user %s", u.GetName())
- // cast the library type to database type
+ // cast the API type to database type
user := types.UserFromAPI(u)
// validate the necessary fields are populated
diff --git a/database/worker/create.go b/database/worker/create.go
index 658b69bf0..efac2daa2 100644
--- a/database/worker/create.go
+++ b/database/worker/create.go
@@ -18,14 +18,10 @@ func (e *engine) CreateWorker(ctx context.Context, w *api.Worker) (*api.Worker,
"worker": w.GetHostname(),
}).Tracef("creating worker %s", w.GetHostname())
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#WorkerFromLibrary
+ // cast the API type to database type
worker := types.WorkerFromAPI(w)
// validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Worker.Validate
err := worker.Validate()
if err != nil {
return nil, err
diff --git a/database/worker/delete.go b/database/worker/delete.go
index 5dac85391..bf2f813c3 100644
--- a/database/worker/delete.go
+++ b/database/worker/delete.go
@@ -18,9 +18,7 @@ func (e *engine) DeleteWorker(ctx context.Context, w *api.Worker) error {
"worker": w.GetHostname(),
}).Tracef("deleting worker %s", w.GetHostname())
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#WorkerFromLibrary
+ // cast the API type to database type
worker := types.WorkerFromAPI(w)
// send query to the database
diff --git a/database/worker/get.go b/database/worker/get.go
index e4c2f14f3..2a96be249 100644
--- a/database/worker/get.go
+++ b/database/worker/get.go
@@ -29,7 +29,5 @@ func (e *engine) GetWorker(ctx context.Context, id int64) (*api.Worker, error) {
}
// return the worker
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Worker.ToLibrary
return w.ToAPI(convertToBuilds(w.RunningBuildIDs)), nil
}
diff --git a/database/worker/get_hostname.go b/database/worker/get_hostname.go
index 39ee2871e..b9192137a 100644
--- a/database/worker/get_hostname.go
+++ b/database/worker/get_hostname.go
@@ -33,7 +33,5 @@ func (e *engine) GetWorkerForHostname(ctx context.Context, hostname string) (*ap
}
// return the worker
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Worker.ToLibrary
return w.ToAPI(convertToBuilds(w.RunningBuildIDs)), nil
}
diff --git a/database/worker/list.go b/database/worker/list.go
index 0843abc2d..26a7acf86 100644
--- a/database/worker/list.go
+++ b/database/worker/list.go
@@ -49,9 +49,7 @@ func (e *engine) ListWorkers(ctx context.Context, active string, before, after i
// https://golang.org/doc/faq#closures_and_goroutines
tmp := worker
- // convert query result to library type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Worker.ToLibrary
+ // convert query result to API type
workers = append(workers, tmp.ToAPI(convertToBuilds(tmp.RunningBuildIDs)))
}
diff --git a/database/worker/update.go b/database/worker/update.go
index 10449cba5..fa8a9deb2 100644
--- a/database/worker/update.go
+++ b/database/worker/update.go
@@ -18,14 +18,10 @@ func (e *engine) UpdateWorker(ctx context.Context, w *api.Worker) (*api.Worker,
"worker": w.GetHostname(),
}).Tracef("updating worker %s", w.GetHostname())
- // cast the library type to database type
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#WorkerFromLibrary
+ // cast the API type to database type
worker := types.WorkerFromAPI(w)
// validate the necessary fields are populated
- //
- // https://pkg.go.dev/github.com/go-vela/types/database#Worker.Validate
err := worker.Validate()
if err != nil {
return nil, err
diff --git a/database/worker/worker_test.go b/database/worker/worker_test.go
index bf54eb4da..976eb46f8 100644
--- a/database/worker/worker_test.go
+++ b/database/worker/worker_test.go
@@ -206,7 +206,7 @@ func testSqlite(t *testing.T) *engine {
return _engine
}
-// testWorker is a test helper function to create a library
+// testWorker is a test helper function to create a API
// Worker type with all fields set to their zero values.
func testWorker() *api.Worker {
b := new(api.Build)
diff --git a/go.mod b/go.mod
index a417873a3..290078d95 100644
--- a/go.mod
+++ b/go.mod
@@ -16,7 +16,6 @@ require (
github.com/ghodss/yaml v1.0.0
github.com/gin-gonic/gin v1.10.0
github.com/go-playground/assert/v2 v2.2.0
- github.com/go-vela/types v0.25.0
github.com/golang-jwt/jwt/v5 v5.2.1
github.com/google/go-cmp v0.6.0
github.com/google/go-github/v65 v65.0.0
diff --git a/go.sum b/go.sum
index b1c403b2a..1957fb598 100644
--- a/go.sum
+++ b/go.sum
@@ -102,8 +102,6 @@ github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27
github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
github.com/go-test/deep v1.0.2 h1:onZX1rnHT3Wv6cqNgYyFOOlgVKJrksuCMCRvJStbMYw=
github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
-github.com/go-vela/types v0.25.0 h1:5jSXgW8uf2ODbhOiWdVmKtbznF/CfNIzkZSYuNQIars=
-github.com/go-vela/types v0.25.0/go.mod h1:gyKVRQjNosAJy4AJ164CnEF6jIkwd1y6Cm5pZ6M20ZM=
github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA=
github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
diff --git a/mock/server/authentication.go b/mock/server/authentication.go
index 3b4c2b97c..8d940934e 100644
--- a/mock/server/authentication.go
+++ b/mock/server/authentication.go
@@ -11,8 +11,6 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/constants"
- "github.com/go-vela/types"
- "github.com/go-vela/types/library"
)
const (
@@ -67,7 +65,7 @@ const (
func getTokenRefresh(c *gin.Context) {
data := []byte(TokenRefreshResp)
- var body library.Token
+ var body api.Token
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -84,12 +82,12 @@ func getAuthenticate(c *gin.Context) {
err := "error"
if len(state) == 0 && len(code) == 0 {
- c.AbortWithStatusJSON(http.StatusUnauthorized, types.Error{Message: &err})
+ c.AbortWithStatusJSON(http.StatusUnauthorized, api.Error{Message: &err})
return
}
- var body library.Token
+ var body api.Token
_ = json.Unmarshal(data, &body)
c.SetCookie(constants.RefreshTokenName, "refresh", 2, "/", "", true, true)
@@ -106,10 +104,10 @@ func getAuthenticateFromToken(c *gin.Context) {
token := c.Request.Header.Get("Token")
if len(token) == 0 {
- c.AbortWithStatusJSON(http.StatusUnauthorized, types.Error{Message: &err})
+ c.AbortWithStatusJSON(http.StatusUnauthorized, api.Error{Message: &err})
}
- var body library.Token
+ var body api.Token
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -123,7 +121,7 @@ func validateToken(c *gin.Context) {
token := c.Request.Header.Get("Authorization")
if len(token) == 0 {
- c.AbortWithStatusJSON(http.StatusUnauthorized, types.Error{Message: &err})
+ c.AbortWithStatusJSON(http.StatusUnauthorized, api.Error{Message: &err})
}
c.JSON(http.StatusOK, "vela-server")
@@ -137,7 +135,7 @@ func validateOAuthToken(c *gin.Context) {
token := c.Request.Header.Get("Authorization")
if len(token) == 0 {
- c.AbortWithStatusJSON(http.StatusUnauthorized, types.Error{Message: &err})
+ c.AbortWithStatusJSON(http.StatusUnauthorized, api.Error{Message: &err})
}
c.JSON(http.StatusOK, "oauth token was created by vela")
diff --git a/mock/server/build.go b/mock/server/build.go
index ebbe44b88..786f26cb0 100644
--- a/mock/server/build.go
+++ b/mock/server/build.go
@@ -11,8 +11,6 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
- "github.com/go-vela/types/library"
)
const (
@@ -245,7 +243,7 @@ func getBuild(c *gin.Context) {
if strings.EqualFold(b, "0") {
msg := fmt.Sprintf("Build %s does not exist", b)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -267,14 +265,14 @@ func getLogs(c *gin.Context) {
if strings.EqualFold(b, "0") {
msg := fmt.Sprintf("Build %s does not exist", b)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
data := []byte(BuildLogsResp)
- var body []library.Log
+ var body []api.Log
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -300,7 +298,7 @@ func updateBuild(c *gin.Context) {
if strings.EqualFold(b, "0") {
msg := fmt.Sprintf("Build %s does not exist", b)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -323,7 +321,7 @@ func removeBuild(c *gin.Context) {
if strings.EqualFold(b, "0") {
msg := fmt.Sprintf("Build %s does not exist", b)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -340,7 +338,7 @@ func restartBuild(c *gin.Context) {
if strings.EqualFold(b, "0") {
msg := fmt.Sprintf("Build %s does not exist", b)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -362,7 +360,7 @@ func cancelBuild(c *gin.Context) {
if strings.EqualFold(b, "0") {
msg := fmt.Sprintf("Build %s does not exist", b)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -379,7 +377,7 @@ func approveBuild(c *gin.Context) {
if strings.EqualFold(b, "0") {
msg := "user does not have admin permissions for the repo"
- c.AbortWithStatusJSON(http.StatusForbidden, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusForbidden, api.Error{Message: &msg})
return
}
@@ -428,7 +426,7 @@ func buildToken(c *gin.Context) {
data := []byte(BuildTokenResp)
- var body library.Token
+ var body api.Token
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -448,7 +446,7 @@ func idToken(c *gin.Context) {
data := []byte(IDTokenResp)
- var body library.Token
+ var body api.Token
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -468,7 +466,7 @@ func idTokenRequestToken(c *gin.Context) {
data := []byte(IDTokenRequestTokenResp)
- var body library.Token
+ var body api.Token
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -483,14 +481,14 @@ func buildExecutable(c *gin.Context) {
if strings.EqualFold(b, "0") {
msg := fmt.Sprintf("unable to get build executable for build %s", b)
- c.AbortWithStatusJSON(http.StatusInternalServerError, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusInternalServerError, api.Error{Message: &msg})
return
}
data := []byte(BuildExecutableResp)
- var body library.BuildExecutable
+ var body api.BuildExecutable
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
diff --git a/mock/server/dashboard.go b/mock/server/dashboard.go
index 2b89c3265..3b3fc5759 100644
--- a/mock/server/dashboard.go
+++ b/mock/server/dashboard.go
@@ -11,7 +11,6 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
)
const (
@@ -221,7 +220,7 @@ func getDashboard(c *gin.Context) {
if strings.EqualFold(d, "0") {
msg := fmt.Sprintf("Dashboard %s does not exist", d)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/deployment.go b/mock/server/deployment.go
index 19323ec14..f6f0bd1c7 100644
--- a/mock/server/deployment.go
+++ b/mock/server/deployment.go
@@ -11,7 +11,6 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
)
const (
@@ -438,7 +437,7 @@ func getDeployment(c *gin.Context) {
if strings.EqualFold(d, "0") {
msg := fmt.Sprintf("Deployment %s does not exist", d)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/hook.go b/mock/server/hook.go
index 84334bd42..0721a8a8f 100644
--- a/mock/server/hook.go
+++ b/mock/server/hook.go
@@ -12,7 +12,6 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
)
const (
@@ -298,7 +297,7 @@ func getHook(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Hook %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -331,7 +330,7 @@ func updateHook(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Hook %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -354,7 +353,7 @@ func removeHook(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Hook %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/log.go b/mock/server/log.go
index 98b359b57..d44c29fab 100644
--- a/mock/server/log.go
+++ b/mock/server/log.go
@@ -10,8 +10,7 @@ import (
"github.com/gin-gonic/gin"
- "github.com/go-vela/types"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
const (
@@ -35,14 +34,14 @@ func getServiceLog(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Log %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
data := []byte(LogResp)
- var body library.Log
+ var body api.Log
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -62,7 +61,7 @@ func updateServiceLog(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Log %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -79,7 +78,7 @@ func removeServiceLog(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Log %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -96,14 +95,14 @@ func getStepLog(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Log %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
data := []byte(LogResp)
- var body library.Log
+ var body api.Log
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -123,7 +122,7 @@ func updateStepLog(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Log %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -140,7 +139,7 @@ func removeStepLog(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Log %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/log_test.go b/mock/server/log_test.go
index a77e55d55..28fbdc4a9 100644
--- a/mock/server/log_test.go
+++ b/mock/server/log_test.go
@@ -7,11 +7,11 @@ import (
"reflect"
"testing"
- "github.com/go-vela/types/library"
+ api "github.com/go-vela/server/api/types"
)
func TestLog_ActiveLogResp(t *testing.T) {
- testLog := library.Log{}
+ testLog := api.Log{}
err := json.Unmarshal([]byte(LogResp), &testLog)
if err != nil {
diff --git a/mock/server/pipeline.go b/mock/server/pipeline.go
index beb0b3b7a..f7eabde04 100644
--- a/mock/server/pipeline.go
+++ b/mock/server/pipeline.go
@@ -13,7 +13,6 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/compiler/types/yaml"
- "github.com/go-vela/types"
)
const (
@@ -343,7 +342,7 @@ func getPipeline(c *gin.Context) {
if strings.EqualFold(p, "0") {
msg := fmt.Sprintf("Pipeline %s does not exist", p)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -376,7 +375,7 @@ func updatePipeline(c *gin.Context) {
if strings.EqualFold(p, "0") {
msg := fmt.Sprintf("Pipeline %s does not exist", p)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -399,7 +398,7 @@ func removePipeline(c *gin.Context) {
if strings.EqualFold(p, "0") {
msg := fmt.Sprintf("Pipeline %s does not exist", p)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -416,7 +415,7 @@ func compilePipeline(c *gin.Context) {
if strings.EqualFold(p, "0") {
msg := fmt.Sprintf("Pipeline %s does not exist", p)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -438,7 +437,7 @@ func expandPipeline(c *gin.Context) {
if strings.EqualFold(p, "0") {
msg := fmt.Sprintf("Pipeline %s does not exist", p)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -460,7 +459,7 @@ func getTemplates(c *gin.Context) {
if strings.EqualFold(p, "0") {
msg := fmt.Sprintf("Pipeline %s does not exist", p)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -482,7 +481,7 @@ func validatePipeline(c *gin.Context) {
if strings.EqualFold(p, "0") {
msg := fmt.Sprintf("Pipeline %s does not exist", p)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/repo.go b/mock/server/repo.go
index aba7cbaf9..9b156669e 100644
--- a/mock/server/repo.go
+++ b/mock/server/repo.go
@@ -11,7 +11,6 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
)
const (
@@ -119,7 +118,7 @@ func getRepo(c *gin.Context) {
if strings.Contains(r, "not-found") {
msg := fmt.Sprintf("Repo %s does not exist", r)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -152,7 +151,7 @@ func updateRepo(c *gin.Context) {
if strings.Contains(r, "not-found") {
msg := fmt.Sprintf("Repo %s does not exist", r)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -175,7 +174,7 @@ func removeRepo(c *gin.Context) {
if strings.Contains(r, "not-found") {
msg := fmt.Sprintf("Repo %s does not exist", r)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -192,7 +191,7 @@ func repairRepo(c *gin.Context) {
if strings.Contains(r, "not-found") {
msg := fmt.Sprintf("Repo %s does not exist", r)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -209,7 +208,7 @@ func chownRepo(c *gin.Context) {
if strings.Contains(r, "not-found") {
msg := fmt.Sprintf("Repo %s does not exist", r)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/rotate_keys.go b/mock/server/rotate_keys.go
index 3623f4c12..3e65133aa 100644
--- a/mock/server/rotate_keys.go
+++ b/mock/server/rotate_keys.go
@@ -8,8 +8,8 @@ import (
"github.com/gin-gonic/gin"
+ api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/router/middleware/auth"
- "github.com/go-vela/types"
)
// rotateKeys returns success message. Pass `invalid` to auth header to test 401 error.
@@ -18,7 +18,7 @@ func rotateKeys(c *gin.Context) {
if strings.EqualFold(tkn, "invalid") {
data := "unauthorized"
- c.AbortWithStatusJSON(http.StatusUnauthorized, types.Error{Message: &data})
+ c.AbortWithStatusJSON(http.StatusUnauthorized, api.Error{Message: &data})
return
}
diff --git a/mock/server/schedule.go b/mock/server/schedule.go
index 73882e4af..262e73cf9 100644
--- a/mock/server/schedule.go
+++ b/mock/server/schedule.go
@@ -11,7 +11,6 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
)
const (
@@ -219,7 +218,7 @@ func getSchedule(c *gin.Context) {
if strings.Contains(s, "not-found") {
msg := fmt.Sprintf("Schedule %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -252,7 +251,7 @@ func updateSchedule(c *gin.Context) {
if strings.Contains(s, "not-found") {
msg := fmt.Sprintf("Schedule %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -275,7 +274,7 @@ func removeSchedule(c *gin.Context) {
if strings.Contains(s, "not-found") {
msg := fmt.Sprintf("Schedule %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/scm.go b/mock/server/scm.go
index e191da268..6e70f2369 100644
--- a/mock/server/scm.go
+++ b/mock/server/scm.go
@@ -9,7 +9,7 @@ import (
"github.com/gin-gonic/gin"
- "github.com/go-vela/types"
+ api "github.com/go-vela/server/api/types"
)
// syncRepo has a param :repo returns mock JSON for a http PATCH.
@@ -20,7 +20,7 @@ func syncRepo(c *gin.Context) {
if strings.Contains(r, "not-found") {
msg := fmt.Sprintf("Repo %s does not exist", r)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -36,7 +36,7 @@ func syncRepos(c *gin.Context) {
if strings.Contains(o, "not-found") {
msg := fmt.Sprintf("Repo %s does not exist", o)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/secret.go b/mock/server/secret.go
index 0fa228e29..5410a4a75 100644
--- a/mock/server/secret.go
+++ b/mock/server/secret.go
@@ -12,7 +12,6 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
)
//nolint:gosec // these are mock responses
@@ -116,7 +115,7 @@ func getSecret(c *gin.Context) {
if strings.Contains(n, "not-found") {
msg := fmt.Sprintf("Secret %s does not exist", n)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -149,7 +148,7 @@ func updateSecret(c *gin.Context) {
if strings.Contains(n, "not-found") {
msg := fmt.Sprintf("Repo or team %s does not exist for secret", n)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -172,7 +171,7 @@ func removeSecret(c *gin.Context) {
if strings.Contains(n, "not-found") {
msg := fmt.Sprintf("Secret %s does not exist", n)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/service.go b/mock/server/service.go
index 75448a966..bd241bf73 100644
--- a/mock/server/service.go
+++ b/mock/server/service.go
@@ -12,7 +12,6 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
)
const (
@@ -85,7 +84,7 @@ func getService(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Service %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -118,7 +117,7 @@ func updateService(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Service %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -141,7 +140,7 @@ func removeService(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Service %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/step.go b/mock/server/step.go
index b0a43da20..9b4a67e3f 100644
--- a/mock/server/step.go
+++ b/mock/server/step.go
@@ -12,7 +12,6 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
)
const (
@@ -95,7 +94,7 @@ func getStep(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Step %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -128,7 +127,7 @@ func updateStep(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Step %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -151,7 +150,7 @@ func removeStep(c *gin.Context) {
if strings.EqualFold(s, "0") {
msg := fmt.Sprintf("Step %s does not exist", s)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/user.go b/mock/server/user.go
index 9df1ef087..96537cfc7 100644
--- a/mock/server/user.go
+++ b/mock/server/user.go
@@ -12,7 +12,6 @@ import (
api "github.com/go-vela/server/api/types"
"github.com/go-vela/server/router/middleware/auth"
- "github.com/go-vela/types"
)
const (
@@ -69,7 +68,7 @@ func getUser(c *gin.Context) {
if strings.Contains(u, "not-found") {
msg := fmt.Sprintf("User %s does not exist", u)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -91,7 +90,7 @@ func currentUser(c *gin.Context) {
if strings.Contains(tkn, "invalid") {
msg := "unauthorized"
- c.AbortWithStatusJSON(http.StatusUnauthorized, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusUnauthorized, api.Error{Message: &msg})
return
}
@@ -124,7 +123,7 @@ func updateUser(c *gin.Context) {
if strings.Contains(u, "not-found") {
msg := fmt.Sprintf("User %s does not exist", u)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -147,7 +146,7 @@ func removeUser(c *gin.Context) {
if strings.Contains(u, "not-found") {
msg := fmt.Sprintf("User %s does not exist", u)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
diff --git a/mock/server/worker.go b/mock/server/worker.go
index 6e5e6ac5e..c92b508ec 100644
--- a/mock/server/worker.go
+++ b/mock/server/worker.go
@@ -11,8 +11,6 @@ import (
"github.com/gin-gonic/gin"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
- "github.com/go-vela/types/library"
)
const (
@@ -209,7 +207,7 @@ func getWorker(c *gin.Context) {
if strings.EqualFold(w, "0") {
msg := fmt.Sprintf("Worker %s does not exist", w)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -226,7 +224,7 @@ func getWorker(c *gin.Context) {
func addWorker(c *gin.Context) {
data := []byte(AddWorkerResp)
- var body library.Token
+ var body api.Token
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusCreated, body)
@@ -241,7 +239,7 @@ func updateWorker(c *gin.Context) {
if strings.EqualFold(w, "0") {
msg := fmt.Sprintf("Worker %s does not exist", w)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -263,14 +261,14 @@ func refreshWorkerAuth(c *gin.Context) {
if strings.EqualFold(w, "0") {
msg := fmt.Sprintf("Worker %s does not exist", w)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
data := []byte(RefreshWorkerAuthResp)
- var body library.Token
+ var body api.Token
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusOK, body)
@@ -285,7 +283,7 @@ func removeWorker(c *gin.Context) {
if strings.EqualFold(w, "0") {
msg := fmt.Sprintf("Worker %s does not exist", w)
- c.AbortWithStatusJSON(http.StatusNotFound, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusNotFound, api.Error{Message: &msg})
return
}
@@ -302,14 +300,14 @@ func registerToken(c *gin.Context) {
if strings.EqualFold(w, "0") {
msg := fmt.Sprintf("user %s is not a platform admin", w)
- c.AbortWithStatusJSON(http.StatusUnauthorized, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusUnauthorized, api.Error{Message: &msg})
return
}
data := []byte(RegisterTokenResp)
- var body library.Token
+ var body api.Token
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusCreated, body)
@@ -324,14 +322,14 @@ func getQueueCreds(c *gin.Context) {
if token == "" {
msg := "unable get queue credentials; invalid registration token"
- c.AbortWithStatusJSON(http.StatusUnauthorized, types.Error{Message: &msg})
+ c.AbortWithStatusJSON(http.StatusUnauthorized, api.Error{Message: &msg})
return
}
data := []byte(QueueInfoResp)
- var body library.QueueInfo
+ var body api.QueueInfo
_ = json.Unmarshal(data, &body)
c.JSON(http.StatusCreated, body)
diff --git a/queue/redis/route.go b/queue/redis/route.go
index cca2ad0e4..77de050c4 100644
--- a/queue/redis/route.go
+++ b/queue/redis/route.go
@@ -19,8 +19,6 @@ func (c *client) Route(w *pipeline.Worker) (string, error) {
buf := bytes.Buffer{}
// if pipline does not specify route information return default
- //
- // https://github.com/go-vela/types/blob/main/constants/queue.go#L10
if w.Empty() {
return constants.DefaultRoute, nil
}
diff --git a/scm/github/deployment.go b/scm/github/deployment.go
index b4f89627b..e7f8ed0b4 100644
--- a/scm/github/deployment.go
+++ b/scm/github/deployment.go
@@ -135,7 +135,7 @@ func (c *client) GetDeploymentList(ctx context.Context, u *api.User, r *api.Repo
createdAt := deployment.CreatedAt.Unix()
- // convert query result to library type
+ // convert query result to API type
deployments = append(deployments, &api.Deployment{
ID: deployment.ID,
Repo: r,
diff --git a/scm/github/repo.go b/scm/github/repo.go
index a35c0179e..31fa2b9e8 100644
--- a/scm/github/repo.go
+++ b/scm/github/repo.go
@@ -485,7 +485,7 @@ func (c *client) GetRepo(ctx context.Context, u *api.User, r *api.Repo) (*api.Re
return nil, resp.StatusCode, err
}
- return toLibraryRepo(*repo), resp.StatusCode, nil
+ return toAPIRepo(*repo), resp.StatusCode, nil
}
// GetOrgAndRepoName returns the name of the org and the repository in the SCM.
@@ -556,14 +556,14 @@ func (c *client) ListUserRepos(ctx context.Context, u *api.User) ([]*api.Repo, e
continue
}
- f = append(f, toLibraryRepo(*repo))
+ f = append(f, toAPIRepo(*repo))
}
return f, nil
}
-// toLibraryRepo does a partial conversion of a github repo to a library repo.
-func toLibraryRepo(gr github.Repository) *api.Repo {
+// toAPIRepo does a partial conversion of a github repo to a API repo.
+func toAPIRepo(gr github.Repository) *api.Repo {
// setting the visbility to match the SCM visbility
var visibility string
if *gr.Private {
diff --git a/scm/github/webhook.go b/scm/github/webhook.go
index aa51c375f..b6f6556fe 100644
--- a/scm/github/webhook.go
+++ b/scm/github/webhook.go
@@ -139,7 +139,7 @@ func (c *client) processPushEvent(ctx context.Context, h *api.Hook, payload *git
repo := payload.GetRepo()
- // convert payload to library repo
+ // convert payload to API repo
r := new(api.Repo)
r.SetOrg(repo.GetOwner().GetLogin())
r.SetName(repo.GetName())
@@ -150,7 +150,7 @@ func (c *client) processPushEvent(ctx context.Context, h *api.Hook, payload *git
r.SetPrivate(repo.GetPrivate())
r.SetTopics(repo.Topics)
- // convert payload to library build
+ // convert payload to API build
b := new(api.Build)
b.SetEvent(constants.EventPush)
b.SetClone(repo.GetCloneURL())
@@ -268,7 +268,7 @@ func (c *client) processPREvent(h *api.Hook, payload *github.PullRequestEvent) (
// capture the repo from the payload
repo := payload.GetRepo()
- // convert payload to library repo
+ // convert payload to API repo
r := new(api.Repo)
r.SetOrg(repo.GetOwner().GetLogin())
r.SetName(repo.GetName())
@@ -355,7 +355,7 @@ func (c *client) processDeploymentEvent(h *api.Hook, payload *github.DeploymentE
// capture the repo from the payload
repo := payload.GetRepo()
- // convert payload to library repo
+ // convert payload to API repo
r := new(api.Repo)
r.SetOrg(repo.GetOwner().GetLogin())
r.SetName(repo.GetName())
@@ -473,7 +473,7 @@ func (c *client) processIssueCommentEvent(h *api.Hook, payload *github.IssueComm
// capture the repo from the payload
repo := payload.GetRepo()
- // convert payload to library repo
+ // convert payload to API repo
r := new(api.Repo)
r.SetOrg(repo.GetOwner().GetLogin())
r.SetName(repo.GetName())
@@ -484,7 +484,7 @@ func (c *client) processIssueCommentEvent(h *api.Hook, payload *github.IssueComm
r.SetPrivate(repo.GetPrivate())
r.SetTopics(repo.Topics)
- // convert payload to library build
+ // convert payload to API build
b := new(api.Build)
b.SetEvent(constants.EventComment)
b.SetEventAction(payload.GetAction())
@@ -516,7 +516,7 @@ func (c *client) processRepositoryEvent(h *api.Hook, payload *github.RepositoryE
repo := payload.GetRepo()
- // convert payload to library repo
+ // convert payload to API repo
r := new(api.Repo)
r.SetOrg(repo.GetOwner().GetLogin())
r.SetName(repo.GetName())
diff --git a/util/util.go b/util/util.go
index 864fad7b3..f56b7670f 100644
--- a/util/util.go
+++ b/util/util.go
@@ -12,7 +12,6 @@ import (
"github.com/microcosm-cc/bluemonday"
api "github.com/go-vela/server/api/types"
- "github.com/go-vela/types"
)
// HandleError appends the error to the handler chain for logging and outputs it.
@@ -23,7 +22,7 @@ func HandleError(c context.Context, status int, err error) {
case *gin.Context:
//nolint:errcheck // ignore checking error
ctx.Error(err)
- ctx.AbortWithStatusJSON(status, types.Error{Message: &msg})
+ ctx.AbortWithStatusJSON(status, api.Error{Message: &msg})
return
default:
diff --git a/version/metadata.go b/version/metadata.go
new file mode 100644
index 000000000..3cb7fcfba
--- /dev/null
+++ b/version/metadata.go
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package version
+
+import "fmt"
+
+const metaFormat = `{
+ Architecture: %s,
+ BuildDate: %s,
+ Compiler: %s,
+ GitCommit: %s,
+ GoVersion: %s,
+ OperatingSystem: %s,
+}`
+
+// Metadata represents extra information surrounding the application version.
+type Metadata struct {
+ // Architecture represents the architecture information for the application.
+ Architecture string `json:"architecture,omitempty"`
+ // BuildDate represents the build date information for the application.
+ BuildDate string `json:"build_date,omitempty"`
+ // Compiler represents the compiler information for the application.
+ Compiler string `json:"compiler,omitempty"`
+ // GitCommit represents the git commit information for the application.
+ GitCommit string `json:"git_commit,omitempty"`
+ // GoVersion represents the golang version information for the application.
+ GoVersion string `json:"go_version,omitempty"`
+ // OperatingSystem represents the operating system information for the application.
+ OperatingSystem string `json:"operating_system,omitempty"`
+}
+
+// String implements the Stringer interface for the Metadata type.
+func (m *Metadata) String() string {
+ return fmt.Sprintf(
+ metaFormat,
+ m.Architecture,
+ m.BuildDate,
+ m.Compiler,
+ m.GitCommit,
+ m.GoVersion,
+ m.OperatingSystem,
+ )
+}
diff --git a/version/metadata_test.go b/version/metadata_test.go
new file mode 100644
index 000000000..831e2c321
--- /dev/null
+++ b/version/metadata_test.go
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package version
+
+import (
+ "fmt"
+ "reflect"
+ "testing"
+)
+
+func TestVersion_Metadata_String(t *testing.T) {
+ // setup types
+ m := &Metadata{
+ Architecture: "amd64",
+ BuildDate: "1970-1-1T00:00:00Z",
+ Compiler: "gc",
+ GitCommit: "abcdef123456789",
+ GoVersion: "1.19.0",
+ OperatingSystem: "linux",
+ }
+
+ want := fmt.Sprintf(
+ metaFormat,
+ m.Architecture,
+ m.BuildDate,
+ m.Compiler,
+ m.GitCommit,
+ m.GoVersion,
+ m.OperatingSystem,
+ )
+
+ // run test
+ got := m.String()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}
diff --git a/version/version.go b/version/version.go
index f363d79b4..efc7a68ae 100644
--- a/version/version.go
+++ b/version/version.go
@@ -8,10 +8,72 @@ import (
"github.com/Masterminds/semver/v3"
"github.com/sirupsen/logrus"
-
- "github.com/go-vela/types/version"
)
+const versionFormat = `{
+ Canonical: %s,
+ Major: %d,
+ Minor: %d,
+ Patch: %d,
+ PreRelease: %s,
+ Metadata: {
+ Architecture: %s,
+ BuildDate: %s,
+ Compiler: %s,
+ GitCommit: %s,
+ GoVersion: %s,
+ OperatingSystem: %s,
+ }
+}`
+
+// Version represents application information that
+// follows semantic version guidelines from
+// https://semver.org/.
+//
+// swagger:model Version
+type Version struct {
+ // Canonical represents a canonical semantic version for the application.
+ Canonical string `json:"canonical"`
+ // Major represents incompatible API changes.
+ Major uint64 `json:"major"`
+ // Minor represents added functionality in a backwards compatible manner.
+ Minor uint64 `json:"minor"`
+ // Patch represents backwards compatible bug fixes.
+ Patch uint64 `json:"patch"`
+ // PreRelease represents unstable changes that might not be compatible.
+ PreRelease string `json:"pre_release,omitempty"`
+ // Metadata represents extra information surrounding the application version.
+ Metadata Metadata `json:"metadata,omitempty"`
+}
+
+// Meta implements a formatted string containing only metadata for the Version type.
+func (v *Version) Meta() string {
+ return v.Metadata.String()
+}
+
+// Semantic implements a formatted string containing a formal semantic version for the Version type.
+func (v *Version) Semantic() string {
+ return v.Canonical
+}
+
+// String implements the Stringer interface for the Version type.
+func (v *Version) String() string {
+ return fmt.Sprintf(
+ versionFormat,
+ v.Canonical,
+ v.Major,
+ v.Minor,
+ v.Patch,
+ v.PreRelease,
+ v.Metadata.Architecture,
+ v.Metadata.BuildDate,
+ v.Metadata.Compiler,
+ v.Metadata.GitCommit,
+ v.Metadata.GoVersion,
+ v.Metadata.OperatingSystem,
+ )
+}
+
var (
// Arch represents the architecture information for the package.
Arch = runtime.GOARCH
@@ -30,7 +92,7 @@ var (
)
// New creates a new version object for Vela that is used throughout the application.
-func New() *version.Version {
+func New() *Version {
// check if a semantic tag was provided
if len(Tag) == 0 {
logrus.Warning("no semantic tag provided - defaulting to v0.0.0")
@@ -44,13 +106,13 @@ func New() *version.Version {
fmt.Println(fmt.Errorf("unable to parse semantic version for %s: %w", Tag, err))
}
- return &version.Version{
+ return &Version{
Canonical: Tag,
Major: v.Major(),
Minor: v.Minor(),
Patch: v.Patch(),
PreRelease: v.Prerelease(),
- Metadata: version.Metadata{
+ Metadata: Metadata{
Architecture: Arch,
BuildDate: Date,
Compiler: Compiler,
diff --git a/version/version_test.go b/version/version_test.go
new file mode 100644
index 000000000..620ad5267
--- /dev/null
+++ b/version/version_test.go
@@ -0,0 +1,106 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package version
+
+import (
+ "fmt"
+ "reflect"
+ "testing"
+)
+
+func TestVersion_Version_Meta(t *testing.T) {
+ // setup types
+ v := &Version{
+ Canonical: "v1.2.3",
+ Major: 1,
+ Minor: 2,
+ Patch: 3,
+ PreRelease: "",
+ Metadata: Metadata{
+ Architecture: "amd64",
+ BuildDate: "1970-1-1T00:00:00Z",
+ Compiler: "gc",
+ GitCommit: "abcdef123456789",
+ GoVersion: "1.19.0",
+ OperatingSystem: "linux",
+ },
+ }
+
+ want := v.Metadata.String()
+
+ // run test
+ got := v.Meta()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}
+
+func TestVersion_Version_Semantic(t *testing.T) {
+ // setup types
+ v := &Version{
+ Canonical: "v1.2.3",
+ Major: 1,
+ Minor: 2,
+ Patch: 3,
+ PreRelease: "",
+ Metadata: Metadata{
+ Architecture: "amd64",
+ BuildDate: "1970-1-1T00:00:00Z",
+ Compiler: "gc",
+ GitCommit: "abcdef123456789",
+ GoVersion: "1.19.0",
+ OperatingSystem: "linux",
+ },
+ }
+
+ want := v.Canonical
+
+ // run test
+ got := v.Semantic()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}
+
+func TestVersion_Version_String(t *testing.T) {
+ // setup types
+ v := &Version{
+ Canonical: "v1.2.3",
+ Major: 1,
+ Minor: 2,
+ Patch: 3,
+ PreRelease: "",
+ Metadata: Metadata{
+ Architecture: "amd64",
+ BuildDate: "1970-1-1T00:00:00Z",
+ Compiler: "gc",
+ GitCommit: "abcdef123456789",
+ GoVersion: "1.19.0",
+ OperatingSystem: "linux",
+ },
+ }
+
+ want := fmt.Sprintf(
+ versionFormat,
+ v.Canonical,
+ v.Major,
+ v.Minor,
+ v.Patch,
+ v.PreRelease,
+ v.Metadata.Architecture,
+ v.Metadata.BuildDate,
+ v.Metadata.Compiler,
+ v.Metadata.GitCommit,
+ v.Metadata.GoVersion,
+ v.Metadata.OperatingSystem,
+ )
+
+ // run test
+ got := v.String()
+
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("String is %v, want %v", got, want)
+ }
+}