mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-11-22 18:01:02 +00:00
Clean up models (#3228)
This commit is contained in:
parent
a19c488a99
commit
5e2f7d81b3
27 changed files with 101 additions and 98 deletions
|
@ -37,9 +37,7 @@ func (r *Runner) createLogger(logger zerolog.Logger, uploads *sync.WaitGroup, wo
|
||||||
|
|
||||||
var secrets []string
|
var secrets []string
|
||||||
for _, secret := range workflow.Config.Secrets {
|
for _, secret := range workflow.Config.Secrets {
|
||||||
if secret.Mask {
|
secrets = append(secrets, secret.Value)
|
||||||
secrets = append(secrets, secret.Value)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
loglogger.Debug().Msg("log stream opened")
|
loglogger.Debug().Msg("log stream opened")
|
||||||
|
|
|
@ -3784,9 +3784,6 @@ const docTemplate = `{
|
||||||
"refspec": {
|
"refspec": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"remote": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"repo_id": {
|
"repo_id": {
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
|
@ -3913,9 +3910,6 @@ const docTemplate = `{
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"clone_url": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"commit": {
|
"commit": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
@ -3925,9 +3919,6 @@ const docTemplate = `{
|
||||||
"deploy_to": {
|
"deploy_to": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"enqueued_at": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"errors": {
|
"errors": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
|
@ -4037,18 +4028,12 @@ const docTemplate = `{
|
||||||
"address": {
|
"address": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"email": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"id": {
|
"id": {
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"token": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"username": {
|
"username": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,7 +151,7 @@ func TestToConfigFull(t *testing.T) {
|
||||||
OnFailure: true,
|
OnFailure: true,
|
||||||
OnSuccess: true,
|
OnSuccess: true,
|
||||||
Failure: "fail",
|
Failure: "fail",
|
||||||
AuthConfig: backend.Auth{Username: "user", Password: "123456", Email: "user@example.com"},
|
AuthConfig: backend.Auth{Username: "user", Password: "123456"},
|
||||||
NetworkMode: "bridge",
|
NetworkMode: "bridge",
|
||||||
Ports: []backend.Port{{Number: 21}, {Number: 22}},
|
Ports: []backend.Port{{Number: 21}, {Number: 22}},
|
||||||
})
|
})
|
||||||
|
|
|
@ -18,5 +18,4 @@ package types
|
||||||
type Auth struct {
|
type Auth struct {
|
||||||
Username string `json:"username,omitempty"`
|
Username string `json:"username,omitempty"`
|
||||||
Password string `json:"password,omitempty"`
|
Password string `json:"password,omitempty"`
|
||||||
Email string `json:"email,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,5 +18,4 @@ package types
|
||||||
type Secret struct {
|
type Secret struct {
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Value string `json:"value,omitempty"`
|
Value string `json:"value,omitempty"`
|
||||||
Mask bool `json:"mask,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,7 +129,6 @@ func (c *Compiler) Compile(conf *yaml_types.Workflow) (*backend_types.Config, er
|
||||||
config.Secrets = append(config.Secrets, &backend_types.Secret{
|
config.Secrets = append(config.Secrets, &backend_types.Secret{
|
||||||
Name: sec.Name,
|
Name: sec.Name,
|
||||||
Value: sec.Value,
|
Value: sec.Value,
|
||||||
Mask: true,
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,6 @@ func (c *Compiler) createProcess(container *yaml_types.Container, stepType backe
|
||||||
if utils.MatchHostname(container.Image, registry.Hostname) {
|
if utils.MatchHostname(container.Image, registry.Hostname) {
|
||||||
authConfig.Username = registry.Username
|
authConfig.Username = registry.Username
|
||||||
authConfig.Password = registry.Password
|
authConfig.Password = registry.Password
|
||||||
authConfig.Email = registry.Email
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,8 +70,6 @@ func PostRegistry(c *gin.Context) {
|
||||||
Address: in.Address,
|
Address: in.Address,
|
||||||
Username: in.Username,
|
Username: in.Username,
|
||||||
Password: in.Password,
|
Password: in.Password,
|
||||||
Token: in.Token,
|
|
||||||
Email: in.Email,
|
|
||||||
}
|
}
|
||||||
if err := registry.Validate(); err != nil {
|
if err := registry.Validate(); err != nil {
|
||||||
c.String(http.StatusBadRequest, "Error inserting registry. %s", err)
|
c.String(http.StatusBadRequest, "Error inserting registry. %s", err)
|
||||||
|
@ -119,12 +117,6 @@ func PatchRegistry(c *gin.Context) {
|
||||||
if in.Password != "" {
|
if in.Password != "" {
|
||||||
registry.Password = in.Password
|
registry.Password = in.Password
|
||||||
}
|
}
|
||||||
if in.Token != "" {
|
|
||||||
registry.Token = in.Token
|
|
||||||
}
|
|
||||||
if in.Email != "" {
|
|
||||||
registry.Email = in.Email
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := registry.Validate(); err != nil {
|
if err := registry.Validate(); err != nil {
|
||||||
c.String(http.StatusUnprocessableEntity, "Error updating registry. %s", err)
|
c.String(http.StatusUnprocessableEntity, "Error updating registry. %s", err)
|
||||||
|
|
|
@ -176,7 +176,6 @@ func convertPullHook(from *internal.PullRequestHook) *model.Pipeline {
|
||||||
from.PullRequest.Source.Branch.Name,
|
from.PullRequest.Source.Branch.Name,
|
||||||
from.PullRequest.Dest.Branch.Name,
|
from.PullRequest.Dest.Branch.Name,
|
||||||
),
|
),
|
||||||
CloneURL: fmt.Sprintf("https://bitbucket.org/%s", from.PullRequest.Source.Repo.FullName),
|
|
||||||
ForgeURL: from.PullRequest.Links.HTML.Href,
|
ForgeURL: from.PullRequest.Links.HTML.Href,
|
||||||
Branch: from.PullRequest.Dest.Branch.Name,
|
Branch: from.PullRequest.Dest.Branch.Name,
|
||||||
Message: from.PullRequest.Desc,
|
Message: from.PullRequest.Desc,
|
||||||
|
|
|
@ -142,7 +142,6 @@ func Test_helper(t *testing.T) {
|
||||||
g.Assert(pipeline.ForgeURL).Equal(hook.PullRequest.Links.HTML.Href)
|
g.Assert(pipeline.ForgeURL).Equal(hook.PullRequest.Links.HTML.Href)
|
||||||
g.Assert(pipeline.Ref).Equal("refs/heads/main")
|
g.Assert(pipeline.Ref).Equal("refs/heads/main")
|
||||||
g.Assert(pipeline.Refspec).Equal("change:main")
|
g.Assert(pipeline.Refspec).Equal("change:main")
|
||||||
g.Assert(pipeline.CloneURL).Equal("https://bitbucket.org/baz/bar")
|
|
||||||
g.Assert(pipeline.Message).Equal(hook.PullRequest.Desc)
|
g.Assert(pipeline.Message).Equal(hook.PullRequest.Desc)
|
||||||
g.Assert(pipeline.Timestamp).Equal(hook.PullRequest.Updated.Unix())
|
g.Assert(pipeline.Timestamp).Equal(hook.PullRequest.Updated.Unix())
|
||||||
})
|
})
|
||||||
|
|
|
@ -212,7 +212,6 @@ func Test_helper(t *testing.T) {
|
||||||
g.Assert(pipeline.Branch).Equal(*from.PullRequest.Base.Ref)
|
g.Assert(pipeline.Branch).Equal(*from.PullRequest.Base.Ref)
|
||||||
g.Assert(pipeline.Ref).Equal("refs/pull/42/merge")
|
g.Assert(pipeline.Ref).Equal("refs/pull/42/merge")
|
||||||
g.Assert(pipeline.Refspec).Equal("changes:main")
|
g.Assert(pipeline.Refspec).Equal("changes:main")
|
||||||
g.Assert(pipeline.CloneURL).Equal("https://github.com/octocat/hello-world-fork")
|
|
||||||
g.Assert(pipeline.Commit).Equal(*from.PullRequest.Head.SHA)
|
g.Assert(pipeline.Commit).Equal(*from.PullRequest.Head.SHA)
|
||||||
g.Assert(pipeline.Message).Equal(*from.PullRequest.Title)
|
g.Assert(pipeline.Message).Equal(*from.PullRequest.Title)
|
||||||
g.Assert(pipeline.Title).Equal(*from.PullRequest.Title)
|
g.Assert(pipeline.Title).Equal(*from.PullRequest.Title)
|
||||||
|
@ -264,7 +263,6 @@ func Test_helper(t *testing.T) {
|
||||||
g.Assert(pipeline.Author).Equal(*from.Sender.Login)
|
g.Assert(pipeline.Author).Equal(*from.Sender.Login)
|
||||||
g.Assert(pipeline.Avatar).Equal(*from.Sender.AvatarURL)
|
g.Assert(pipeline.Avatar).Equal(*from.Sender.AvatarURL)
|
||||||
g.Assert(pipeline.Email).Equal(*from.HeadCommit.Author.Email)
|
g.Assert(pipeline.Email).Equal(*from.HeadCommit.Author.Email)
|
||||||
g.Assert(pipeline.CloneURL).Equal(*from.Repo.CloneURL)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
g.It("should convert a tag from webhook", func() {
|
g.It("should convert a tag from webhook", func() {
|
||||||
|
|
|
@ -90,7 +90,6 @@ func parsePushHook(hook *github.PushEvent) (*model.Repo, *model.Pipeline) {
|
||||||
Email: hook.GetHeadCommit().GetAuthor().GetEmail(),
|
Email: hook.GetHeadCommit().GetAuthor().GetEmail(),
|
||||||
Avatar: hook.GetSender().GetAvatarURL(),
|
Avatar: hook.GetSender().GetAvatarURL(),
|
||||||
Author: hook.GetSender().GetLogin(),
|
Author: hook.GetSender().GetLogin(),
|
||||||
CloneURL: hook.GetRepo().GetCloneURL(),
|
|
||||||
Sender: hook.GetSender().GetLogin(),
|
Sender: hook.GetSender().GetLogin(),
|
||||||
ChangedFiles: getChangedFilesFromCommits(hook.Commits),
|
ChangedFiles: getChangedFilesFromCommits(hook.Commits),
|
||||||
}
|
}
|
||||||
|
@ -164,7 +163,6 @@ func parsePullHook(hook *github.PullRequestEvent, merge bool) (*github.PullReque
|
||||||
Avatar: hook.GetPullRequest().GetUser().GetAvatarURL(),
|
Avatar: hook.GetPullRequest().GetUser().GetAvatarURL(),
|
||||||
Title: hook.GetPullRequest().GetTitle(),
|
Title: hook.GetPullRequest().GetTitle(),
|
||||||
Sender: hook.GetSender().GetLogin(),
|
Sender: hook.GetSender().GetLogin(),
|
||||||
CloneURL: hook.GetPullRequest().GetHead().GetRepo().GetCloneURL(),
|
|
||||||
Refspec: fmt.Sprintf(refSpec,
|
Refspec: fmt.Sprintf(refSpec,
|
||||||
hook.GetPullRequest().GetHead().GetRef(),
|
hook.GetPullRequest().GetHead().GetRef(),
|
||||||
hook.GetPullRequest().GetBase().GetRef(),
|
hook.GetPullRequest().GetBase().GetRef(),
|
||||||
|
|
|
@ -120,7 +120,6 @@ func convertMergeRequestHook(hook *gitlab.MergeEvent, req *http.Request) (int, *
|
||||||
|
|
||||||
pipeline.Message = lastCommit.Message
|
pipeline.Message = lastCommit.Message
|
||||||
pipeline.Commit = lastCommit.ID
|
pipeline.Commit = lastCommit.ID
|
||||||
pipeline.CloneURL = obj.Source.HTTPURL
|
|
||||||
|
|
||||||
pipeline.Ref = fmt.Sprintf(mergeRefs, obj.IID)
|
pipeline.Ref = fmt.Sprintf(mergeRefs, obj.IID)
|
||||||
pipeline.Branch = obj.SourceBranch
|
pipeline.Branch = obj.SourceBranch
|
||||||
|
|
|
@ -18,15 +18,15 @@ type Agent struct {
|
||||||
ID int64 `json:"id" xorm:"pk autoincr 'id'"`
|
ID int64 `json:"id" xorm:"pk autoincr 'id'"`
|
||||||
Created int64 `json:"created" xorm:"created"`
|
Created int64 `json:"created" xorm:"created"`
|
||||||
Updated int64 `json:"updated" xorm:"updated"`
|
Updated int64 `json:"updated" xorm:"updated"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name" xorm:"name"`
|
||||||
OwnerID int64 `json:"owner_id" xorm:"'owner_id'"`
|
OwnerID int64 `json:"owner_id" xorm:"'owner_id'"`
|
||||||
Token string `json:"token"`
|
Token string `json:"token" xorm:"token"`
|
||||||
LastContact int64 `json:"last_contact"`
|
LastContact int64 `json:"last_contact" xorm:"last_contact"`
|
||||||
Platform string `json:"platform" xorm:"VARCHAR(100)"`
|
Platform string `json:"platform" xorm:"VARCHAR(100) 'platform'"`
|
||||||
Backend string `json:"backend" xorm:"VARCHAR(100)"`
|
Backend string `json:"backend" xorm:"VARCHAR(100) 'backend'"`
|
||||||
Capacity int32 `json:"capacity"`
|
Capacity int32 `json:"capacity" xorm:"capacity"`
|
||||||
Version string `json:"version"`
|
Version string `json:"version" xorm:"version"`
|
||||||
NoSchedule bool `json:"no_schedule"`
|
NoSchedule bool `json:"no_schedule" xorm:"no_schedule"`
|
||||||
} // @name Agent
|
} // @name Agent
|
||||||
|
|
||||||
// TableName return database table name for xorm
|
// TableName return database table name for xorm
|
||||||
|
|
|
@ -36,7 +36,6 @@ type EnvironStore interface {
|
||||||
|
|
||||||
// Environ represents an environment variable.
|
// Environ represents an environment variable.
|
||||||
type Environ struct {
|
type Environ struct {
|
||||||
ID int64 `json:"id"`
|
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Value string `json:"value,omitempty"`
|
Value string `json:"value,omitempty"`
|
||||||
}
|
}
|
||||||
|
@ -56,7 +55,6 @@ func (e *Environ) Validate() error {
|
||||||
// Copy makes a copy of the environment variable without the value.
|
// Copy makes a copy of the environment variable without the value.
|
||||||
func (e *Environ) Copy() *Environ {
|
func (e *Environ) Copy() *Environ {
|
||||||
return &Environ{
|
return &Environ{
|
||||||
ID: e.ID,
|
|
||||||
Name: e.Name,
|
Name: e.Name,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,6 @@ type Feed struct {
|
||||||
Branch string `json:"branch,omitempty" xorm:"feed_pipeline_branch"`
|
Branch string `json:"branch,omitempty" xorm:"feed_pipeline_branch"`
|
||||||
Ref string `json:"ref,omitempty" xorm:"feed_pipeline_ref"`
|
Ref string `json:"ref,omitempty" xorm:"feed_pipeline_ref"`
|
||||||
Refspec string `json:"refspec,omitempty" xorm:"feed_pipeline_refspec"`
|
Refspec string `json:"refspec,omitempty" xorm:"feed_pipeline_refspec"`
|
||||||
Remote string `json:"remote,omitempty" xorm:"feed_pipeline_clone_url"`
|
|
||||||
Title string `json:"title,omitempty" xorm:"feed_pipeline_title"`
|
Title string `json:"title,omitempty" xorm:"feed_pipeline_title"`
|
||||||
Message string `json:"message,omitempty" xorm:"feed_pipeline_message"`
|
Message string `json:"message,omitempty" xorm:"feed_pipeline_message"`
|
||||||
Author string `json:"author,omitempty" xorm:"feed_pipeline_author"`
|
Author string `json:"author,omitempty" xorm:"feed_pipeline_author"`
|
||||||
|
|
|
@ -24,12 +24,10 @@ type Pipeline struct {
|
||||||
RepoID int64 `json:"-" xorm:"UNIQUE(s) INDEX 'pipeline_repo_id'"`
|
RepoID int64 `json:"-" xorm:"UNIQUE(s) INDEX 'pipeline_repo_id'"`
|
||||||
Number int64 `json:"number" xorm:"UNIQUE(s) 'pipeline_number'"`
|
Number int64 `json:"number" xorm:"UNIQUE(s) 'pipeline_number'"`
|
||||||
Author string `json:"author" xorm:"INDEX 'pipeline_author'"`
|
Author string `json:"author" xorm:"INDEX 'pipeline_author'"`
|
||||||
ConfigID int64 `json:"-" xorm:"pipeline_config_id"`
|
|
||||||
Parent int64 `json:"parent" xorm:"pipeline_parent"`
|
Parent int64 `json:"parent" xorm:"pipeline_parent"`
|
||||||
Event WebhookEvent `json:"event" xorm:"pipeline_event"`
|
Event WebhookEvent `json:"event" xorm:"pipeline_event"`
|
||||||
Status StatusValue `json:"status" xorm:"INDEX 'pipeline_status'"`
|
Status StatusValue `json:"status" xorm:"INDEX 'pipeline_status'"`
|
||||||
Errors []*errors.PipelineError `json:"errors" xorm:"json 'pipeline_errors'"`
|
Errors []*errors.PipelineError `json:"errors" xorm:"json 'pipeline_errors'"`
|
||||||
Enqueued int64 `json:"enqueued_at" xorm:"pipeline_enqueued"`
|
|
||||||
Created int64 `json:"created_at" xorm:"pipeline_created"`
|
Created int64 `json:"created_at" xorm:"pipeline_created"`
|
||||||
Updated int64 `json:"updated_at" xorm:"updated NOT NULL DEFAULT 0 'updated'"`
|
Updated int64 `json:"updated_at" xorm:"updated NOT NULL DEFAULT 0 'updated'"`
|
||||||
Started int64 `json:"started_at" xorm:"pipeline_started"`
|
Started int64 `json:"started_at" xorm:"pipeline_started"`
|
||||||
|
@ -39,7 +37,6 @@ type Pipeline struct {
|
||||||
Branch string `json:"branch" xorm:"pipeline_branch"`
|
Branch string `json:"branch" xorm:"pipeline_branch"`
|
||||||
Ref string `json:"ref" xorm:"pipeline_ref"`
|
Ref string `json:"ref" xorm:"pipeline_ref"`
|
||||||
Refspec string `json:"refspec" xorm:"pipeline_refspec"`
|
Refspec string `json:"refspec" xorm:"pipeline_refspec"`
|
||||||
CloneURL string `json:"clone_url" xorm:"pipeline_clone_url"`
|
|
||||||
Title string `json:"title" xorm:"pipeline_title"`
|
Title string `json:"title" xorm:"pipeline_title"`
|
||||||
Message string `json:"message" xorm:"TEXT 'pipeline_message'"`
|
Message string `json:"message" xorm:"TEXT 'pipeline_message'"`
|
||||||
Timestamp int64 `json:"timestamp" xorm:"pipeline_timestamp"`
|
Timestamp int64 `json:"timestamp" xorm:"pipeline_timestamp"`
|
||||||
|
|
|
@ -57,8 +57,6 @@ type Registry struct {
|
||||||
Address string `json:"address" xorm:"UNIQUE(s) INDEX 'registry_addr'"`
|
Address string `json:"address" xorm:"UNIQUE(s) INDEX 'registry_addr'"`
|
||||||
Username string `json:"username" xorm:"varchar(2000) 'registry_username'"`
|
Username string `json:"username" xorm:"varchar(2000) 'registry_username'"`
|
||||||
Password string `json:"password" xorm:"TEXT 'registry_password'"`
|
Password string `json:"password" xorm:"TEXT 'registry_password'"`
|
||||||
Token string `json:"token" xorm:"TEXT 'registry_token'"`
|
|
||||||
Email string `json:"email" xorm:"varchar(500) 'registry_email'"`
|
|
||||||
} // @name Registry
|
} // @name Registry
|
||||||
|
|
||||||
// Validate validates the registry information.
|
// Validate validates the registry information.
|
||||||
|
@ -83,7 +81,5 @@ func (r *Registry) Copy() *Registry {
|
||||||
RepoID: r.RepoID,
|
RepoID: r.RepoID,
|
||||||
Address: r.Address,
|
Address: r.Address,
|
||||||
Username: r.Username,
|
Username: r.Username,
|
||||||
Email: r.Email,
|
|
||||||
Token: r.Token,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
|
|
||||||
|
@ -130,7 +129,6 @@ func createNewOutOfOld(old *model.Pipeline) *model.Pipeline {
|
||||||
newPipeline.Status = model.StatusPending
|
newPipeline.Status = model.StatusPending
|
||||||
newPipeline.Started = 0
|
newPipeline.Started = 0
|
||||||
newPipeline.Finished = 0
|
newPipeline.Finished = 0
|
||||||
newPipeline.Enqueued = time.Now().UTC().Unix()
|
|
||||||
newPipeline.Errors = nil
|
newPipeline.Errors = nil
|
||||||
return &newPipeline
|
return &newPipeline
|
||||||
}
|
}
|
||||||
|
|
|
@ -256,7 +256,6 @@ func (b *StepBuilder) toInternalRepresentation(parsed *yaml_types.Workflow, envi
|
||||||
Hostname: reg.Address,
|
Hostname: reg.Address,
|
||||||
Username: reg.Username,
|
Username: reg.Username,
|
||||||
Password: reg.Password,
|
Password: reg.Password,
|
||||||
Email: reg.Email,
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,6 @@ pipelines.pipeline_commit as feed_pipeline_commit,
|
||||||
pipelines.pipeline_branch as feed_pipeline_branch,
|
pipelines.pipeline_branch as feed_pipeline_branch,
|
||||||
pipelines.pipeline_ref as feed_pipeline_ref,
|
pipelines.pipeline_ref as feed_pipeline_ref,
|
||||||
pipelines.pipeline_refspec as feed_pipeline_refspec,
|
pipelines.pipeline_refspec as feed_pipeline_refspec,
|
||||||
pipelines.pipeline_clone_url as feed_pipeline_clone_url,
|
|
||||||
pipelines.pipeline_title as feed_pipeline_title,
|
pipelines.pipeline_title as feed_pipeline_title,
|
||||||
pipelines.pipeline_message as feed_pipeline_message,
|
pipelines.pipeline_message as feed_pipeline_message,
|
||||||
pipelines.pipeline_author as feed_pipeline_author,
|
pipelines.pipeline_author as feed_pipeline_author,
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
// Copyright 2024 Woodpecker Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package migration
|
||||||
|
|
||||||
|
import (
|
||||||
|
"src.techknowlogick.com/xormigrate"
|
||||||
|
"xorm.io/xorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
type oldRegistry029 struct {
|
||||||
|
ID int64 `json:"id" xorm:"pk autoincr 'registry_id'"`
|
||||||
|
Token string `json:"token" xorm:"TEXT 'registry_token'"`
|
||||||
|
Email string `json:"email" xorm:"varchar(500) 'registry_email'"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (oldRegistry029) TableName() string {
|
||||||
|
return "registry"
|
||||||
|
}
|
||||||
|
|
||||||
|
type oldPipeline029 struct {
|
||||||
|
ID int64 `json:"id" xorm:"pk autoincr 'pipeline_id'"`
|
||||||
|
ConfigID int64 `json:"-" xorm:"pipeline_config_id"`
|
||||||
|
Enqueued int64 `json:"enqueued_at" xorm:"pipeline_enqueued"`
|
||||||
|
CloneURL string `json:"clone_url" xorm:"pipeline_clone_url"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// TableName return database table name for xorm
|
||||||
|
func (oldPipeline029) TableName() string {
|
||||||
|
return "pipelines"
|
||||||
|
}
|
||||||
|
|
||||||
|
var cleanRegistryPipeline = xormigrate.Migration{
|
||||||
|
ID: "clean-registry-pipeline",
|
||||||
|
MigrateSession: func(sess *xorm.Session) (err error) {
|
||||||
|
if err := sess.Sync(new(oldRegistry029), new(oldPipeline029)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := dropTableColumns(sess, "pipelines", "pipeline_clone_url", "pipeline_config_id", "pipeline_enqueued"); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return dropTableColumns(sess, "registry", "registry_email", "registry_token")
|
||||||
|
},
|
||||||
|
}
|
|
@ -58,6 +58,7 @@ var migrationTasks = []*xormigrate.Migration{
|
||||||
&removePluginOnlyOptionFromSecretsTable,
|
&removePluginOnlyOptionFromSecretsTable,
|
||||||
&convertToNewPipelineErrorFormat,
|
&convertToNewPipelineErrorFormat,
|
||||||
&renameLinkToURL,
|
&renameLinkToURL,
|
||||||
|
&cleanRegistryPipeline,
|
||||||
}
|
}
|
||||||
|
|
||||||
var allBeans = []any{
|
var allBeans = []any{
|
||||||
|
|
|
@ -114,7 +114,6 @@ func (s storage) CreatePipeline(pipeline *model.Pipeline, stepList ...*model.Ste
|
||||||
pipeline.Number = number + 1
|
pipeline.Number = number + 1
|
||||||
|
|
||||||
pipeline.Created = time.Now().UTC().Unix()
|
pipeline.Created = time.Now().UTC().Unix()
|
||||||
pipeline.Enqueued = pipeline.Created
|
|
||||||
// only Insert set auto created ID back to object
|
// only Insert set auto created ID back to object
|
||||||
if _, err := sess.Insert(pipeline); err != nil {
|
if _, err := sess.Insert(pipeline); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -32,8 +32,6 @@ func TestRegistryFind(t *testing.T) {
|
||||||
Address: "index.docker.io",
|
Address: "index.docker.io",
|
||||||
Username: "foo",
|
Username: "foo",
|
||||||
Password: "bar",
|
Password: "bar",
|
||||||
Email: "foo@bar.com",
|
|
||||||
Token: "12345",
|
|
||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
@ -43,8 +41,6 @@ func TestRegistryFind(t *testing.T) {
|
||||||
assert.Equal(t, "index.docker.io", registry.Address)
|
assert.Equal(t, "index.docker.io", registry.Address)
|
||||||
assert.Equal(t, "foo", registry.Username)
|
assert.Equal(t, "foo", registry.Username)
|
||||||
assert.Equal(t, "bar", registry.Password)
|
assert.Equal(t, "bar", registry.Password)
|
||||||
assert.Equal(t, "foo@bar.com", registry.Email)
|
|
||||||
assert.Equal(t, "12345", registry.Token)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRegistryList(t *testing.T) {
|
func TestRegistryList(t *testing.T) {
|
||||||
|
|
|
@ -30,9 +30,6 @@ export type Pipeline = {
|
||||||
// When the pipeline was updated last time in database.
|
// When the pipeline was updated last time in database.
|
||||||
updated_at: number;
|
updated_at: number;
|
||||||
|
|
||||||
// When the pipeline was enqueued.
|
|
||||||
enqueued_at: number;
|
|
||||||
|
|
||||||
// When the pipeline began execution.
|
// When the pipeline began execution.
|
||||||
started_at: number;
|
started_at: number;
|
||||||
|
|
||||||
|
|
|
@ -69,34 +69,35 @@ type (
|
||||||
|
|
||||||
// Pipeline defines a pipeline object.
|
// Pipeline defines a pipeline object.
|
||||||
Pipeline struct {
|
Pipeline struct {
|
||||||
ID int64 `json:"id"`
|
ID int64 `json:"id"`
|
||||||
Number int64 `json:"number"`
|
Number int64 `json:"number"`
|
||||||
Parent int64 `json:"parent"`
|
Parent int64 `json:"parent"`
|
||||||
Event string `json:"event"`
|
Event string `json:"event"`
|
||||||
Status string `json:"status"`
|
Status string `json:"status"`
|
||||||
Errors PipelineError `json:"errors"`
|
Errors PipelineError `json:"errors"`
|
||||||
Enqueued int64 `json:"enqueued_at"`
|
// Deprecated TODO remove in 3.x
|
||||||
Created int64 `json:"created_at"`
|
Enqueued int64 `json:"enqueued_at"`
|
||||||
Updated int64 `json:"updated_at"`
|
Created int64 `json:"created_at"`
|
||||||
Started int64 `json:"started_at"`
|
Updated int64 `json:"updated_at"`
|
||||||
Finished int64 `json:"finished_at"`
|
Started int64 `json:"started_at"`
|
||||||
Deploy string `json:"deploy_to"`
|
Finished int64 `json:"finished_at"`
|
||||||
Commit string `json:"commit"`
|
Deploy string `json:"deploy_to"`
|
||||||
Branch string `json:"branch"`
|
Commit string `json:"commit"`
|
||||||
Ref string `json:"ref"`
|
Branch string `json:"branch"`
|
||||||
Refspec string `json:"refspec"`
|
Ref string `json:"ref"`
|
||||||
CloneURL string `json:"clone_url"`
|
Refspec string `json:"refspec"`
|
||||||
Title string `json:"title"`
|
CloneURL string `json:"clone_url"`
|
||||||
Message string `json:"message"`
|
Title string `json:"title"`
|
||||||
Timestamp int64 `json:"timestamp"`
|
Message string `json:"message"`
|
||||||
Sender string `json:"sender"`
|
Timestamp int64 `json:"timestamp"`
|
||||||
Author string `json:"author"`
|
Sender string `json:"sender"`
|
||||||
Avatar string `json:"author_avatar"`
|
Author string `json:"author"`
|
||||||
Email string `json:"author_email"`
|
Avatar string `json:"author_avatar"`
|
||||||
ForgeURL string `json:"forge_url"`
|
Email string `json:"author_email"`
|
||||||
Reviewer string `json:"reviewed_by"`
|
ForgeURL string `json:"forge_url"`
|
||||||
Reviewed int64 `json:"reviewed_at"`
|
Reviewer string `json:"reviewed_by"`
|
||||||
Workflows []*Workflow `json:"workflows,omitempty"`
|
Reviewed int64 `json:"reviewed_at"`
|
||||||
|
Workflows []*Workflow `json:"workflows,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Workflow represents a workflow in the pipeline.
|
// Workflow represents a workflow in the pipeline.
|
||||||
|
@ -134,8 +135,10 @@ type (
|
||||||
Address string `json:"address"`
|
Address string `json:"address"`
|
||||||
Username string `json:"username"`
|
Username string `json:"username"`
|
||||||
Password string `json:"password,omitempty"`
|
Password string `json:"password,omitempty"`
|
||||||
Email string `json:"email"`
|
// Deprecated
|
||||||
Token string `json:"token"`
|
Email string `json:"email"` // TODO remove in 3.x
|
||||||
|
// Deprecated
|
||||||
|
Token string `json:"token"` // TODO remove in 3.x
|
||||||
}
|
}
|
||||||
|
|
||||||
// Secret represents a secret variable, such as a password or token.
|
// Secret represents a secret variable, such as a password or token.
|
||||||
|
|
Loading…
Reference in a new issue