This commit is contained in:
Brad Rydzewski 2017-05-14 19:57:38 +02:00
parent 78fa97d53c
commit 833b5af087
3 changed files with 64 additions and 35 deletions

View file

@ -2,41 +2,46 @@ package model
// swagger:model build // swagger:model build
type Build struct { type Build struct {
ID int64 `json:"id" meddler:"build_id,pk"` ID int64 `json:"id" meddler:"build_id,pk"`
RepoID int64 `json:"-" meddler:"build_repo_id"` RepoID int64 `json:"-" meddler:"build_repo_id"`
ConfigID int64 `json:"-" meddler:"build_config_id"` ConfigID int64 `json:"-" meddler:"build_config_id"`
Number int `json:"number" meddler:"build_number"` Number int `json:"number" meddler:"build_number"`
Parent int `json:"parent" meddler:"build_parent"` Parent int `json:"parent" meddler:"build_parent"`
Event string `json:"event" meddler:"build_event"` Event string `json:"event" meddler:"build_event"`
Status string `json:"status" meddler:"build_status"` Status string `json:"status" meddler:"build_status"`
Error string `json:"error" meddler:"build_error"` Error string `json:"error" meddler:"build_error"`
Enqueued int64 `json:"enqueued_at" meddler:"build_enqueued"` Enqueued int64 `json:"enqueued_at" meddler:"build_enqueued"`
Created int64 `json:"created_at" meddler:"build_created"` Created int64 `json:"created_at" meddler:"build_created"`
Started int64 `json:"started_at" meddler:"build_started"` Started int64 `json:"started_at" meddler:"build_started"`
Finished int64 `json:"finished_at" meddler:"build_finished"` Finished int64 `json:"finished_at" meddler:"build_finished"`
Deploy string `json:"deploy_to" meddler:"build_deploy"` Deploy string `json:"deploy_to" meddler:"build_deploy"`
Commit string `json:"commit" meddler:"build_commit"` Commit string `json:"commit" meddler:"build_commit"`
Branch string `json:"branch" meddler:"build_branch"` Branch string `json:"branch" meddler:"build_branch"`
Ref string `json:"ref" meddler:"build_ref"` Ref string `json:"ref" meddler:"build_ref"`
Refspec string `json:"refspec" meddler:"build_refspec"` Refspec string `json:"refspec" meddler:"build_refspec"`
Remote string `json:"remote" meddler:"build_remote"` Remote string `json:"remote" meddler:"build_remote"`
Title string `json:"title" meddler:"build_title"` Title string `json:"title" meddler:"build_title"`
Message string `json:"message" meddler:"build_message"` Message string `json:"message" meddler:"build_message"`
Timestamp int64 `json:"timestamp" meddler:"build_timestamp"` Timestamp int64 `json:"timestamp" meddler:"build_timestamp"`
Sender string `json:"sender" meddler:"build_sender"` Sender string `json:"sender" meddler:"build_sender"`
Author string `json:"author" meddler:"build_author"` Author string `json:"author" meddler:"build_author"`
Avatar string `json:"author_avatar" meddler:"build_avatar"` Avatar string `json:"author_avatar" meddler:"build_avatar"`
Email string `json:"author_email" meddler:"build_email"` Email string `json:"author_email" meddler:"build_email"`
Link string `json:"link_url" meddler:"build_link"` Link string `json:"link_url" meddler:"build_link"`
Signed bool `json:"signed" meddler:"build_signed"` // deprecate Signed bool `json:"signed" meddler:"build_signed"` // deprecate
Verified bool `json:"verified" meddler:"build_verified"` // deprecate Verified bool `json:"verified" meddler:"build_verified"` // deprecate
Reviewer string `json:"reviewed_by" meddler:"build_reviewer"` Reviewer string `json:"reviewed_by" meddler:"build_reviewer"`
Reviewed int64 `json:"reviewed_at" meddler:"build_reviewed"` Reviewed int64 `json:"reviewed_at" meddler:"build_reviewed"`
// Jobs []*Job `json:"jobs,omitempty" meddler:"-"` Procs []*Proc `json:"procs,omitempty" meddler:"-"`
Procs []*Proc `json:"procs,omitempty" meddler:"-"`
} }
type BuildGroup struct { // Trim trims string values that would otherwise exceed
Date string // the database column sizes and fail to insert.
Builds []*Build func (b *Build) Trim() {
if len(b.Title) > 500 {
b.Title = b.Title[:500]
}
if len(b.Message) > 500 {
b.Message = b.Message[:500]
}
} }

23
model/build_test.go Normal file
View file

@ -0,0 +1,23 @@
package model
import (
"crypto/rand"
"fmt"
"testing"
)
func TestBuildTrim(t *testing.T) {
d := make([]byte, 1000)
rand.Read(d)
b := Build{}
b.Message = fmt.Sprintf("%X", d)
if len(b.Message) != 2000 {
t.Errorf("Failed to generate 2000 byte test string")
}
b.Trim()
if len(b.Message) != 500 {
t.Errorf("Failed to trim text string to 500 bytes")
}
}

View file

@ -197,6 +197,7 @@ func PostHook(c *gin.Context) {
} }
} }
build.Trim()
err = store.CreateBuild(c, build, build.Procs...) err = store.CreateBuild(c, build, build.Procs...)
if err != nil { if err != nil {
logrus.Errorf("failure to save commit for %s. %s", repo.FullName, err) logrus.Errorf("failure to save commit for %s. %s", repo.FullName, err)