#3383 code cleanup

This commit is contained in:
Unknwon committed 2016-08-24 16:05:56 -07:00
1 parent 84b56c3c53
commit 0b273ac4d5
15 files changed
+114 -246

No files matched your search

+2 -2
View File
@@ -18,8 +18,8 @@ github.com/go-xorm/core = commit:5bf745d
github.com/go-xorm/xorm = commit:c6c7056
github.com/gogits/chardet = commit:2404f77
github.com/gogits/cron = commit:7f3990a
github.com/gogits/git-module = commit:f78bf3b
github.com/gogits/go-gogs-client = commit:5e50f02
github.com/gogits/git-module = commit:7b206b5
github.com/gogits/go-gogs-client = commit:2ffd470
github.com/issue9/identicon = commit:d36b545
github.com/jaytaylor/html2text = commit:52d9b78
github.com/kardianos/minwinsvc = commit:cad6b2b
+1 -1
View File
@@ -3,7 +3,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra
![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true)
##### Current tip version: 0.9.83 (see [Releases](https://github.com/gogits/gogs/releases) for binary versions)
##### Current tip version: 0.9.84 (see [Releases](https://github.com/gogits/gogs/releases) for binary versions)
| Web | UI | Preview |
|:-------------:|:-------:|:-------:|
+1 -1
View File
@@ -88,7 +88,7 @@ func checkVersion() {
{"github.com/go-macaron/toolbox", toolbox.Version, "0.1.0"},
{"gopkg.in/ini.v1", ini.Version, "1.8.4"},
{"gopkg.in/macaron.v1", macaron.Version, "1.1.7"},
{"github.com/gogits/git-module", git.Version, "0.3.7"},
{"github.com/gogits/git-module", git.Version, "0.3.8"},
{"github.com/gogits/go-gogs-client", gogs.Version, "0.12.1"},
}
for _, c := range checkers {
Generated
+2 -2
View File
@@ -41,9 +41,9 @@ imports:
- name: github.com/gogits/cron
version: 7f3990acf1833faa5ebd0e86f0a4c72a4b5eba3c
- name: github.com/gogits/git-module
version: f78bf3bf703cb3eb0e85a9475d26826939feda4f
version: 7b206b529a09ae8cfa1df52a6c0cdd2612cfc6fc
- name: github.com/gogits/go-gogs-client
version: 5e50f0292565471b41b3c73fcadcb886140f0082
version: 2ffd4704c6f37d7fb10110450fe035fa6df08db8
- name: github.com/issue9/identicon
version: d36b54562f4cf70c83653e13dc95c220c79ef521
- name: github.com/jaytaylor/html2text
+1 -1
View File
@@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting"
)
const APP_VER = "0.9.83.0816"
const APP_VER = "0.9.84.0824"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
+49 -58
View File
@@ -62,73 +62,73 @@ type Issue struct {
Comments []*Comment `xorm:"-"`
}
func (i *Issue) BeforeInsert() {
i.CreatedUnix = time.Now().Unix()
i.UpdatedUnix = i.CreatedUnix
func (issue *Issue) BeforeInsert() {
issue.CreatedUnix = time.Now().Unix()
issue.UpdatedUnix = issue.CreatedUnix
}
func (i *Issue) BeforeUpdate() {
i.UpdatedUnix = time.Now().Unix()
i.DeadlineUnix = i.Deadline.Unix()
func (issue *Issue) BeforeUpdate() {
issue.UpdatedUnix = time.Now().Unix()
issue.DeadlineUnix = issue.Deadline.Unix()
}
func (i *Issue) AfterSet(colName string, _ xorm.Cell) {
func (issue *Issue) AfterSet(colName string, _ xorm.Cell) {
var err error
switch colName {
case "id":
i.Attachments, err = GetAttachmentsByIssueID(i.ID)
issue.Attachments, err = GetAttachmentsByIssueID(issue.ID)
if err != nil {
log.Error(3, "GetAttachmentsByIssueID[%d]: %v", i.ID, err)
log.Error(3, "GetAttachmentsByIssueID[%d]: %v", issue.ID, err)
}
i.Comments, err = GetCommentsByIssueID(i.ID)
issue.Comments, err = GetCommentsByIssueID(issue.ID)
if err != nil {
log.Error(3, "GetCommentsByIssueID[%d]: %v", i.ID, err)
log.Error(3, "GetCommentsByIssueID[%d]: %v", issue.ID, err)
}
i.Labels, err = GetLabelsByIssueID(i.ID)
issue.Labels, err = GetLabelsByIssueID(issue.ID)
if err != nil {
log.Error(3, "GetLabelsByIssueID[%d]: %v", i.ID, err)
log.Error(3, "GetLabelsByIssueID[%d]: %v", issue.ID, err)
}
case "poster_id":
i.Poster, err = GetUserByID(i.PosterID)
issue.Poster, err = GetUserByID(issue.PosterID)
if err != nil {
if IsErrUserNotExist(err) {
i.PosterID = -1
i.Poster = NewGhostUser()
issue.PosterID = -1
issue.Poster = NewGhostUser()
} else {
log.Error(3, "GetUserByID[%d]: %v", i.ID, err)
log.Error(3, "GetUserByID[%d]: %v", issue.ID, err)
}
return
}
case "milestone_id":
if i.MilestoneID == 0 {
if issue.MilestoneID == 0 {
return
}
i.Milestone, err = GetMilestoneByID(i.MilestoneID)
issue.Milestone, err = GetMilestoneByRepoID(issue.RepoID, issue.MilestoneID)
if err != nil {
log.Error(3, "GetMilestoneById[%d]: %v", i.ID, err)
log.Error(3, "GetMilestoneById[%d]: %v", issue.ID, err)
}
case "assignee_id":
if i.AssigneeID == 0 {
if issue.AssigneeID == 0 {
return
}
i.Assignee, err = GetUserByID(i.AssigneeID)
issue.Assignee, err = GetUserByID(issue.AssigneeID)
if err != nil {
log.Error(3, "GetUserByID[%d]: %v", i.ID, err)
log.Error(3, "GetUserByID[%d]: %v", issue.ID, err)
}
case "deadline_unix":
i.Deadline = time.Unix(i.DeadlineUnix, 0).Local()
issue.Deadline = time.Unix(issue.DeadlineUnix, 0).Local()
case "created_unix":
i.Created = time.Unix(i.CreatedUnix, 0).Local()
issue.Created = time.Unix(issue.CreatedUnix, 0).Local()
case "updated_unix":
i.Updated = time.Unix(i.UpdatedUnix, 0).Local()
issue.Updated = time.Unix(issue.UpdatedUnix, 0).Local()
}
}
@@ -600,7 +600,7 @@ func newIssue(e *xorm.Session, opts NewIssueOptions) (err error) {
opts.Issue.Index = opts.Repo.NextIssueIndex()
if opts.Issue.MilestoneID > 0 {
milestone, err := getMilestoneByID(e, opts.Issue.MilestoneID)
milestone, err := getMilestoneByRepoID(e, opts.Issue.RepoID, opts.Issue.MilestoneID)
if err != nil && !IsErrMilestoneNotExist(err) {
return fmt.Errorf("getMilestoneByID: %v", err)
}
@@ -1392,50 +1392,41 @@ func NewMilestone(m *Milestone) (err error) {
return err
}
if _, err = sess.Exec("UPDATE `repository` SET num_milestones=num_milestones+1 WHERE id=?", m.RepoID); err != nil {
if _, err = sess.Exec("UPDATE `repository` SET num_milestones = num_milestones + 1 WHERE id = ?", m.RepoID); err != nil {
return err
}
return sess.Commit()
}
func getMilestoneByID(e Engine, id int64) (*Milestone, error) {
m := &Milestone{ID: id}
func getMilestoneByRepoID(e Engine, repoID, id int64) (*Milestone, error) {
m := &Milestone{
ID: id,
RepoID: repoID,
}
has, err := e.Get(m)
if err != nil {
return nil, err
} else if !has {
return nil, ErrMilestoneNotExist{id, 0}
return nil, ErrMilestoneNotExist{id, repoID}
}
return m, nil
}
// GetMilestoneByID returns the milestone of given ID.
func GetMilestoneByID(id int64) (*Milestone, error) {
return getMilestoneByID(x, id)
// GetWebhookByRepoID returns milestone of repository by given ID.
func GetMilestoneByRepoID(repoID, id int64) (*Milestone, error) {
return getMilestoneByRepoID(x, repoID, id)
}
// GetRepoMilestoneByID returns the milestone of given ID and repository.
func GetRepoMilestoneByID(repoID, milestoneID int64) (*Milestone, error) {
m := &Milestone{ID: milestoneID, RepoID: repoID}
has, err := x.Get(m)
if err != nil {
return nil, err
} else if !has {
return nil, ErrMilestoneNotExist{milestoneID, repoID}
}
return m, nil
}
// GetAllRepoMilestones returns all milestones of given repository.
func GetAllRepoMilestones(repoID int64) ([]*Milestone, error) {
// GetMilestonesByRepoID returns all milestones of a repository.
func GetMilestonesByRepoID(repoID int64) ([]*Milestone, error) {
miles := make([]*Milestone, 0, 10)
return miles, x.Where("repo_id=?", repoID).Find(&miles)
return miles, x.Where("repo_id = ?", repoID).Find(&miles)
}
// GetMilestones returns a list of milestones of given repository and status.
func GetMilestones(repoID int64, page int, isClosed bool) ([]*Milestone, error) {
miles := make([]*Milestone, 0, setting.UI.IssuePagingNum)
sess := x.Where("repo_id=? AND is_closed=?", repoID, isClosed)
sess := x.Where("repo_id = ? AND is_closed = ?", repoID, isClosed)
if page > 0 {
sess = sess.Limit(setting.UI.IssuePagingNum, (page-1)*setting.UI.IssuePagingNum)
}
@@ -1509,7 +1500,7 @@ func changeMilestoneIssueStats(e *xorm.Session, issue *Issue) error {
return nil
}
m, err := getMilestoneByID(e, issue.MilestoneID)
m, err := getMilestoneByRepoID(e, issue.RepoID, issue.MilestoneID)
if err != nil {
return err
}
@@ -1543,7 +1534,7 @@ func ChangeMilestoneIssueStats(issue *Issue) (err error) {
func changeMilestoneAssign(e *xorm.Session, issue *Issue, oldMilestoneID int64) error {
if oldMilestoneID > 0 {
m, err := getMilestoneByID(e, oldMilestoneID)
m, err := getMilestoneByRepoID(e, issue.RepoID, oldMilestoneID)
if err != nil {
return err
}
@@ -1561,7 +1552,7 @@ func changeMilestoneAssign(e *xorm.Session, issue *Issue, oldMilestoneID int64)
}
if issue.MilestoneID > 0 {
m, err := getMilestoneByID(e, issue.MilestoneID)
m, err := getMilestoneByRepoID(e, issue.RepoID, issue.MilestoneID)
if err != nil {
return err
}
@@ -1595,9 +1586,9 @@ func ChangeMilestoneAssign(issue *Issue, oldMilestoneID int64) (err error) {
return sess.Commit()
}
// DeleteMilestoneByID deletes a milestone by given ID.
func DeleteMilestoneByID(id int64) error {
m, err := GetMilestoneByID(id)
// DeleteMilestoneByRepoID deletes a milestone from a repository.
func DeleteMilestoneByRepoID(repoID, id int64) error {
m, err := GetMilestoneByRepoID(repoID, id)
if err != nil {
if IsErrMilestoneNotExist(err) {
return nil
@@ -1626,9 +1617,9 @@ func DeleteMilestoneByID(id int64) error {
return err
}
if _, err = sess.Exec("UPDATE `issue` SET milestone_id=0 WHERE milestone_id=?", m.ID); err != nil {
if _, err = sess.Exec("UPDATE `issue` SET milestone_id = 0 WHERE milestone_id = ?", m.ID); err != nil {
return err
} else if _, err = sess.Exec("UPDATE `issue_user` SET milestone_id=0 WHERE milestone_id=?", m.ID); err != nil {
} else if _, err = sess.Exec("UPDATE `issue_user` SET milestone_id = 0 WHERE milestone_id = ?", m.ID); err != nil {
return err
}
return sess.Commit()
+1 -1
View File
@@ -359,7 +359,7 @@ func (repo *Repository) GetAssigneeByID(userID int64) (*User, error) {
// GetMilestoneByID returns the milestone belongs to repository by given ID.
func (repo *Repository) GetMilestoneByID(milestoneID int64) (*Milestone, error) {
return GetRepoMilestoneByID(repo.ID, milestoneID)
return GetMilestoneByRepoID(repo.ID, milestoneID)
}
// IssueStats returns number of open and closed repository issues by given filter mode.
+10 -7
View File
@@ -210,15 +210,18 @@ func GetWebhookByOrgID(orgID, id int64) (*Webhook, error) {
}
// GetActiveWebhooksByRepoID returns all active webhooks of repository.
func GetActiveWebhooksByRepoID(repoID int64) (ws []*Webhook, err error) {
err = x.Where("repo_id=?", repoID).And("is_active=?", true).Find(&ws)
return ws, err
func GetActiveWebhooksByRepoID(repoID int64) ([]*Webhook, error) {
webhooks := make([]*Webhook, 0, 5)
return webhooks, x.Find(&webhooks, &Webhook{
RepoID: repoID,
IsActive: true,
})
}
// GetWebhooksByRepoID returns all webhooks of repository.
func GetWebhooksByRepoID(repoID int64) (ws []*Webhook, err error) {
err = x.Find(&ws, &Webhook{RepoID: repoID})
return ws, err
// GetWebhooksByRepoID returns all webhooks of a repository.
func GetWebhooksByRepoID(repoID int64) ([]*Webhook, error) {
webhooks := make([]*Webhook, 0, 5)
return webhooks, x.Find(&webhooks, &Webhook{RepoID: repoID})
}
// UpdateWebhook updates information of webhook.
+2 -2
View File
@@ -286,7 +286,7 @@ func (fi bindataFileInfo) Sys() interface{} {
return nil
}
var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x5b\x5b\x6f\x23\xc9\x75\x7e\xef\x5f\x51\xab\xcd\x66\x34\x41\x93\xd4\x65\xa4\xd1\xca\x96\xb3\x14\xd9\x94\xe8\xe1\xcd\xdd\xd4\xcc\xce\x0e\x84\x56\x8b\x5d\x24\x7b\xd5\xec\xe6\x76\x35\xa5\xd1\x22\x08\x6c\xe4\x21\x17\x20\xc8\x43\x82\x04\x01\x82\x20\x79\x48\x0c\x38\x37\x1b\x79\xb1\x13\x27\x2f\x9b\xbc\xcf\xfe\x07\x67\x1d\x3f\xf9\x2f\xe4\x3b\xa7\xaa\xc9\xa6\x46\xab\xec\xe6\xea\x15\xfb\x52\x75\xaa\xce\xfd\x3b\xa7\x7a\xde\x15\x3d\xe7\xb9\xe3\x0a\xfe\xd3\xed\x37\xdb\xad\x97\x62\x78\xda\xf6\x44\xab\xdd\x71\xac\x77\xc5\xa0\xe3\xd4\x3d\x47\x74\xeb\xcf\x1c\xd1\x38\xad\xf7\x4e\x1c\x4f\xf4\x7b\xa2\xd1\x77\x5d\xc7\x1b\xf4\x7b\xcd\x76\xef\x44\x34\xce\xbc\x61\xbf\x8b\x87\xbd\x56\xfb\x44\xcf\xb4\xbe\x21\xea\xf3\xb9\x48\x82\x99\x14\xf9\x34\xc8\x85\x9a\xa6\x37\x4a\xa4\x89\x90\xd7\x32\xbb\x15\xf3\x60\x82\x17\x51\x1e\x4b\xab\x3e\x18\xf8\xbd\x7a\xd7\x11\x47\xe2\x24\x9d\xa8\x43\xfc\x15\x27\x51\x2e\x3c\x99\x5d\x47\x23\x09\x4a\x8d\x69\x90\x60\x38\x9e\x45\x63\x71\x9b\x2e\x44\xb6\x48\x44\x9c\x8e\x82\x38\xbe\xb5\xdc\xb3\x9e\x7f\xe6\x61\xf7\x47\x62\x12\xe5\x18\xed\x44\xf9\x54\x66\x62\x23\x94\xd7\x1b\xb6\xd8\x98\x67\x69\xb8\x21\x52\x3c\xc8\xa5\xca\xf1\x24\x94\xe3\x60\x11\x83\x96\xd2\x63\x98\x02\x58\xa7\x0d\xe0\xde\xb2\x5e\x65\x72\x9e\xaa\x28\x4f\xb3\xdb\x73\xcb\xed\xf7\x87\xe2\xc8\xf2\x1a\x6e\x7b\x30\xf4\x87\x2f\x07\x34\xec\x32\x50\x53\xac\xd4\x34\x94\xea\x3d\xaf\x2d\x46\xd3\x20\x53\x32\xb7\xe8\xc6\x87\xa8\x5c\xcf\xa1\x89\xdf\x10\xad\x34\x1b\x49\xc3\x76\x22\x6f\xc4\x8a\xba\xc8\x53\x71\x29\xc5\x3c\x8b\xae\x83\x5c\x5a\xad\xbe\xdb\x70\xfc\x81\xdb\x7e\x5e\x1f\xd2\x2a\xe3\x20\x56\xc4\xfe\x49\x9c\x5e\x06\xb1\x98\x05\xaf\xa3\xd9\x62\x26\x46\x99\x0c\xf2\x08\x92\x8c\xa3\x19\x44\x92\x8e\xcb\x14\xe7\xe0\x7c\xa1\x64\x66\x8b\xca\xb6\x98\xc9\x20\x51\x22\x49\xf5\x48\xab\x5b\xff\xd0\x6f\xb8\x4e\x7d\xd8\xee\xf7\xfc\x4e\xbb\xdb\xc6\xfe\x30\x0c\x2b\x0c\x82\x7c\x34\x15\x24\x1f\xf1\xc9\x42\x2e\xa4\x88\x65\x32\xc9\xa7\x36\xd6\xbc\x62\xb9\x07\x4a\xc4\x41\x06\x1d\xe0\x02\x6b\xa9\xe8\x12\x8a\x1b\x9c\x75\x3a\xbe\xeb\x7c\xe7\xcc\xf1\x86\x3e\xfe\x9e\x39\x7e\xc7\xe9\x9d\x0c\x4f\x41\x76\x7b\x0b\xff\xb7\x26\xca\xaa\x0c\xe9\xf7\x1c\xcb\x75\x22\xc5\xfb\x1e\x47\x31\x04\xf3\x3a\x97\x89\x02\x3f\x6a\x69\x28\x8b\x38\x14\xd3\xe0\x1a\xdb\x88\x12\x29\x6e\xb2\x60\xae\x44\x94\xe0\xb5\x14\x8d\x34\x94\xdd\x28\xcb\xa0\x4f\x4d\x0f\xe4\x3c\x39\x0f\x32\x08\xb0\x4c\xea\x06\x46\x20\x02\x31\x4a\x67\xb3\xa0\x2a\x86\xe9\x8a\x14\xaf\x8a\x01\xb5\x74\x35\xde\x16\x1f\x2f\xb0\xa5\xf9\x22\x2f\xe6\x58\x9d\x76\xcf\xf1\x5f\xb8\xf5\x81\xef\x7c\x38\x74\xa0\xd3\x7e\xcf\x03\x5f\xd5\xfc\x75\x6e\x57\x67\x21\xfe\x0b\xb2\xab\x30\xbd\x49\xe8\x4e\xff\x5c\x85\x36\x76\xf3\x3c\x88\xa3\x50\xb3\x36\xc3\x66\x0d\x57\xcc\x4e\x00\x55\xcb\xeb\x08\x36\x50\x1f\xb4\x21\x4a\x95\x8e\x22\xec\x3b\xd4\xbb\x05\x7b\x33\x5b\xa8\x05\x34\x01\x29\x07\xf3\xa8\x76\xbd\x5d\x2b\x56\x29\xb3\x79\x1d\xc4\x0b\xd0\xbd\xbc\xd5\x5b\x55\x55\x31\x30\x64\xf3\xe0\x92\x04\x45\x92\xe1\xc5\xc5\x4d\x9a\x3c\xd2\xbe\x47\xae\x43\x02\x5c\x97\xb9\x08\x53\xa9\x68\xc8\x8c\x2c\xc0\x1a\xb8\xce\xf3\xb6\xf3\xa2\x7e\xdc\x71\x7c\x72\x63\x76\x0b\x62\x7b\xb9\x8d\x35\x8d\x2e\xe6\x71\x1a\x84\xa4\xd1\x17\x53\xc9\x4e\x57\xb2\x44\x5e\x48\x8f\x00\x37\x19\x16\x4d\x02\x58\x4d\x58\x2d\xdc\x46\x91\xf9\x5f\xe4\xd9\x42\x5e\x58\x4e\x8f\xd6\x6c\x62\x25\xba\xd7\x16\x39\x15\x63\x68\xd9\x50\xb8\x33\x2b\x0c\xf2\xa0\x96\xcf\xe6\x35\xf3\xfa\x42\x6c\xe2\x4e\x4c\x24\xde\x87\x32\x96\x24\x54\x70\x37\x41\x3c\xc1\x9e\x54\x1e\x64\xf9\x63\x6b\xe8\x74\x07\xfe\xa0\xce\xf6\x79\x97\x00\x96\xec\xc3\x40\xb0\xe0\x2c\xc5\x5e\x11\x59\xd2\x1b\xd0\xc8\x6f\xe7\x52\xd9\x42\x56\x27\x55\x11\xcd\x10\xb3\x6a\x1f\xcf\xe5\xe4\x37\xf4\xe5\x3c\xc1\xd3\x5e\x9a\x4f\xa3\x64\x62\x7c\x2d\x48\x0c\xe3\x34\xd1\xaa\x77\x3a\xfd\x17\x4e\x93\xa3\x86\xc7\xb1\xa0\x1b\xbc\x16\x2a\xfa\x54\x92\xf5\xcb\x00\x9a\xe6\xc1\x50\x59\xf7\x78\x9d\xc3\xdd\x9d\xee\xb1\xa5\x55\x00\xaf\xf5\xda\x1f\x51\x40\xd8\xdd\x31\x24\x92\xc5\xec\x12\xd2\x36\x2e\xa4\xb4\xd7\x33\x23\xeb\x54\xb6\xb7\xd8\xe9\x89\x8e\xc7\x4e\x09\xfd\x2d\x22\x52\x58\x6f\x49\x61\xa9\xb2\xa8\xb0\x55\x52\x16\x99\x0c\xf8\xc7\xce\xd2\x84\xec\x05\xc4\xf1\x94\xa2\xb6\xe5\x7c\x38\xe8\xf4\x5d\x04\xaa\xfa\x09\x82\xbf\xdf\x3b\xeb\x82\xf4\xce\xd6\x1a\xd1\x48\xa9\xc5\x97\x93\x63\x32\x6d\xcf\x3b\xbb\x43\x64\x7b\x9d\xc8\x32\xe0\xc1\xca\x23\x30\xb4\x4e\x24\x18\xe5\xd1\x75\x94\x43\xde\x52\x86\x56\xcb\x81\x9c\x39\xc0\xf5\xbb\x08\x6c\x86\xe0\x9e\xf6\xc7\x05\xcb\xfb\x82\x1c\x4c\x56\x46\x29\x58\xb9\x80\xbe\xf2\x00\xfe\x32\xb1\x29\x5c\x86\xe4\x4c\xf5\x24\xcc\x52\xb8\xee\xb7\x30\xaf\x4a\x3b\xa9\x27\x58\xeb\x9a\xdd\x99\x27\x21\x86\x20\x1a\x6e\x24\x58\x5d\x27\x94\x30\x52\x64\xd2\x1b\xf0\xdf\x38\xd6\x2e\x4e\x2e\x56\x24\x18\x95\xdf\xc6\x64\xcb\x5d\x12\x5d\x94\x8c\xd3\x43\x31\xcd\xf3\xb9\x3a\xac\xd5\x90\x67\x64\x9c\x42\x6d\xaa\x3a\x49\xd3\x49\x2c\xab\x60\xb2\x76\x23\x2f\x61\x8f\x30\x4d\xa9\x6a\x3b\x5b\xdb\x4f\x6a\xdb\xdb\x35\x6f\x31\x9f\xa7\x59\x5e\x81\x2f\x54\x4a\x0c\x54\xa2\xa4\xd2\x98\x66\x29\xee\x77\xdf\xe7\x97\x66\xfb\xd6\xf0\xd4\xe9\Line truncated
var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x5b\x5b\x6f\x23\xc9\x75\x7e\xef\x5f\x51\xab\xcd\x66\x34\x41\x93\xd4\x65\xa4\xd1\xca\x96\xb3\x14\xd9\x94\xe8\xe1\xcd\xdd\xd4\xcc\xce\x0e\x84\x56\x8b\x5d\x24\x7b\xd5\xec\xe6\x76\x35\xa5\xd1\x22\x08\x6c\xe4\x21\x17\x20\xc8\x43\x82\x04\x01\x82\x20\x79\x48\x0c\x38\x37\x1b\x79\xb1\x13\x27\x2f\x9b\xbc\xcf\xfe\x07\x67\x1d\x3f\xf9\x2f\xe4\x3b\xa7\xaa\xc9\xa6\x46\xab\xec\xe6\xea\x15\xfb\x52\x75\xaa\xce\xfd\x3b\xa7\x7a\xde\x15\x3d\xe7\xb9\xe3\x0a\xfe\xd3\xed\x37\xdb\xad\x97\x62\x78\xda\xf6\x44\xab\xdd\x71\xac\x77\xc5\xa0\xe3\xd4\x3d\x47\x74\xeb\xcf\x1c\xd1\x38\xad\xf7\x4e\x1c\x4f\xf4\x7b\xa2\xd1\x77\x5d\xc7\x1b\xf4\x7b\xcd\x76\xef\x44\x34\xce\xbc\x61\xbf\x8b\x87\xbd\x56\xfb\x44\xcf\xb4\xbe\x21\xea\xf3\xb9\x48\x82\x99\x14\xf9\x34\xc8\x85\x9a\xa6\x37\x4a\xa4\x89\x90\xd7\x32\xbb\x15\xf3\x60\x82\x17\x51\x1e\x4b\xab\x3e\x18\xf8\xbd\x7a\xd7\x11\x47\xe2\x24\x9d\xa8\x43\xfc\x15\x27\x51\x2e\x3c\x99\x5d\x47\x23\x09\x4a\x8d\x69\x90\x60\x38\x9e\x45\x63\x71\x9b\x2e\x44\xb6\x48\x44\x9c\x8e\x82\x38\xbe\xb5\xdc\xb3\x9e\x7f\xe6\x61\xf7\x47\x62\x12\xe5\x18\xed\x44\xf9\x54\x66\x62\x23\x94\xd7\x1b\xb6\xd8\x98\x67\x69\xb8\x21\x52\x3c\xc8\xa5\xca\xf1\x24\x94\xe3\x60\x11\x83\x96\xd2\x63\x98\x02\x58\xa7\x0d\xe0\xde\xb2\x5e\x65\x72\x9e\xaa\x28\x4f\xb3\xdb\x73\xcb\xed\xf7\x87\xe2\xc8\xf2\x1a\x6e\x7b\x30\xf4\x87\x2f\x07\x34\xec\x32\x50\x53\xac\xd4\x34\x94\xea\x3d\xaf\x2d\x46\xd3\x20\x53\x32\xb7\xe8\xc6\x87\xa8\x5c\xcf\xa1\x89\xdf\x10\xad\x34\x1b\x49\xc3\x76\x22\x6f\xc4\x8a\xba\xc8\x53\x71\x29\xc5\x3c\x8b\xae\x83\x5c\x5a\xad\xbe\xdb\x70\xfc\x81\xdb\x7e\x5e\x1f\xd2\x2a\xe3\x20\x56\xc4\xfe\x49\x9c\x5e\x06\xb1\x98\x05\xaf\xa3\xd9\x62\x26\x46\x99\x0c\xf2\x08\x92\x8c\xa3\x19\x44\x92\x8e\xcb\x14\xe7\xe0\x7c\xa1\x64\x66\x8b\xca\xb6\x98\xc9\x20\x51\x22\x49\xf5\x48\xab\x5b\xff\xd0\x6f\xb8\x4e\x7d\xd8\xee\xf7\xfc\x4e\xbb\xdb\xc6\xfe\x30\x0c\x2b\x0c\x82\x7c\x34\x15\x24\x1f\xf1\xc9\x42\x2e\xa4\x88\x65\x32\xc9\xa7\x36\xd6\xbc\x62\xb9\x07\x4a\xc4\x41\x06\x1d\xe0\x02\x6b\xa9\xe8\x12\x8a\x1b\x9c\x75\x3a\xbe\xeb\x7c\xe7\xcc\xf1\x86\x3e\xfe\x9e\x39\x7e\xc7\xe9\x9d\x0c\x4f\x41\x76\x7b\x0b\xff\xb7\x26\xca\xaa\x0c\xe9\xf7\x1c\xcb\x75\x22\xc5\xfb\x1e\x47\x31\x04\xf3\x3a\x97\x89\x02\x3f\x6a\x69\x28\x8b\x38\x14\xd3\xe0\x1a\xdb\x88\x12\x29\x6e\xb2\x60\xae\x44\x94\xe0\xb5\x14\x8d\x34\x94\xdd\x28\xcb\xa0\x4f\x4d\x0f\xe4\x3c\x39\x0f\x32\x08\xb0\x4c\xea\x06\x46\x20\x02\x31\x4a\x67\xb3\xa0\x2a\x86\xe9\x8a\x14\xaf\x8a\x01\xb5\x74\x35\xde\x16\x1f\x2f\xb0\xa5\xf9\x22\x2f\xe6\x58\x9d\x76\xcf\xf1\x5f\xb8\xf5\x81\xef\x7c\x38\x74\xa0\xd3\x7e\xcf\x03\x5f\xd5\xfc\x75\x6e\x57\x67\x21\xfe\x0b\xb2\xab\x30\xbd\x49\xe8\x4e\xff\x5c\x85\x36\x76\xf3\x3c\x88\xa3\x50\xb3\x36\xc3\x66\x0d\x57\xcc\x4e\x00\x55\xcb\xeb\x08\x36\x50\x1f\xb4\x21\x4a\x95\x8e\x22\xec\x3b\xd4\xbb\x05\x7b\x33\x5b\xa8\x05\x34\x01\x29\x07\xf3\xa8\x76\xbd\x5d\x2b\x56\x29\xb3\x79\x1d\xc4\x0b\xd0\xbd\xbc\xd5\x5b\x55\x55\x31\x30\x64\xf3\xe0\x92\x04\x45\x92\xe1\xc5\xc5\x4d\x9a\x3c\xd2\xbe\x47\xae\x43\x02\x5c\x97\xb9\x08\x53\xa9\x68\xc8\x8c\x2c\xc0\x1a\xb8\xce\xf3\xb6\xf3\xa2\x7e\xdc\x71\x7c\x72\x63\x76\x0b\x62\x7b\xb9\x8d\x35\x8d\x2e\xe6\x71\x1a\x84\xa4\xd1\x17\x53\xc9\x4e\x57\xb2\x44\x5e\x48\x8f\x00\x37\x19\x16\x4d\x02\x58\x4d\x58\x2d\xdc\x46\x91\xf9\x5f\xe4\xd9\x42\x5e\x58\x4e\x8f\xd6\x6c\x62\x25\xba\xd7\x16\x39\x15\x63\x68\xd9\x50\xb8\x33\x2b\x0c\xf2\xa0\x96\xcf\xe6\x35\xf3\xfa\x42\x6c\xe2\x4e\x4c\x24\xde\x87\x32\x96\x24\x54\x70\x37\x41\x3c\xc1\x9e\x54\x1e\x64\xf9\x63\x6b\xe8\x74\x07\xfe\xa0\xce\xf6\x79\x97\x00\x96\xec\xc3\x40\xb0\xe0\x2c\xc5\x5e\x11\x59\xd2\x1b\xd0\xc8\x6f\xe7\x52\xd9\x42\x56\x27\x55\x11\xcd\x10\xb3\x6a\x1f\xcf\xe5\xe4\x37\xf4\xe5\x3c\xc1\xd3\x5e\x9a\x4f\xa3\x64\x62\x7c\x2d\x48\x0c\xe3\x34\xd1\xaa\x77\x3a\xfd\x17\x4e\x93\xa3\x86\xc7\xb1\xa0\x1b\xbc\x16\x2a\xfa\x54\x92\xf5\xcb\x00\x9a\xe6\xc1\x50\x59\xf7\x78\x9d\xc3\xdd\x9d\xee\xb1\xa5\x55\x00\xaf\xf5\xda\x1f\x51\x40\xd8\xdd\x31\x24\x92\xc5\xec\x12\xd2\x36\x2e\xa4\xb4\xd7\x33\x23\xeb\x54\xb6\xb7\xd8\xe9\x89\x8e\xc7\x4e\x09\xfd\x2d\x22\x52\x58\x6f\x49\x61\xa9\xb2\xa8\xb0\x55\x52\x16\x99\x0c\xf8\xc7\xce\xd2\x84\xec\x05\xc4\xf1\x94\xa2\xb6\xe5\x7c\x38\xe8\xf4\x5d\x04\xaa\xfa\x09\x82\xbf\xdf\x3b\xeb\x82\xf4\xce\xd6\x1a\xd1\x48\xa9\xc5\x97\x93\x63\x32\x6d\xcf\x3b\xbb\x43\x64\x7b\x9d\xc8\x32\xe0\xc1\xca\x23\x30\xb4\x4e\x24\x18\xe5\xd1\x75\x94\x43\xde\x52\x86\x56\xcb\x81\x9c\x39\xc0\xf5\xbb\x08\x6c\x86\xe0\x9e\xf6\xc7\x05\xcb\xfb\x82\x1c\x4c\x56\x46\x29\x58\xb9\x80\xbe\xf2\x00\xfe\x32\xb1\x29\x5c\x86\xe4\x4c\xf5\x24\xcc\x52\xb8\xee\xb7\x30\xaf\x4a\x3b\xa9\x27\x58\xeb\x9a\xdd\x99\x27\x21\x86\x20\x1a\x6e\x24\x58\x5d\x27\x94\x30\x52\x64\xd2\x1b\xf0\xdf\x38\xd6\x2e\x4e\x2e\x56\x24\x18\x95\xdf\xc6\x64\xcb\x5d\x12\x5d\x94\x8c\xd3\x43\x31\xcd\xf3\xb9\x3a\xac\xd5\x90\x67\x64\x9c\x42\x6d\xaa\x3a\x49\xd3\x49\x2c\xab\x60\xb2\x76\x23\x2f\x61\x8f\x30\x4d\xa9\x6a\x3b\x5b\xdb\x4f\x6a\xdb\xdb\x35\x6f\x31\x9f\xa7\x59\x5e\x81\x2f\x54\x4a\x0c\x54\xa2\xa4\xd2\x98\x66\x29\xee\x77\xdf\xe7\x97\x66\xfb\xd6\xf0\xd4\xe9\Line truncated
func confAppIniBytes() ([]byte, error) {
return bindataRead(
@@ -301,7 +301,7 @@ func confAppIni() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "conf/app.ini", size: 13460, mode: os.FileMode(420), modTime: time.Unix(1471250630, 0)}
info := bindataFileInfo{name: "conf/app.ini", size: 13461, mode: os.FileMode(420), modTime: time.Unix(1472077157, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
+13 -9
View File
@@ -110,6 +110,15 @@ func reqAdmin() macaron.Handler {
}
}
func reqRepoWriter() macaron.Handler {
return func(ctx *context.Context) {
if !ctx.Repo.IsWriter() {
ctx.Error(403)
return
}
}
}
func orgAssignment(args ...bool) macaron.Handler {
var (
assignOrg bool
@@ -259,11 +268,6 @@ func RegisterRoutes(m *macaron.Macaron) {
Delete(repo.ClearIssueLabels)
m.Delete("/:id", repo.DeleteIssueLabel)
})
m.Group("/milestone", func() {
m.Combo("").Get(repo.GetIssueMilestone).
Post(bind(api.SetIssueMilestoneOption{}), repo.SetIssueMilestone).
Delete(repo.DeleteIssueMilestone)
})
})
}, mustEnableIssues)
@@ -275,10 +279,10 @@ func RegisterRoutes(m *macaron.Macaron) {
})
m.Group("/milestones", func() {
m.Combo("").Get(repo.ListMilestones).
Post(bind(api.CreateMilestoneOption{}), repo.CreateMilestone)
m.Combo("/:id").Get(repo.GetMilestone).Patch(bind(api.EditMilestoneOption{}), repo.EditMilestone).
Delete(repo.DeleteMilestone)
m.Post("/:id/:action", repo.ChangeMilestoneStatus)
Post(reqRepoWriter(), bind(api.CreateMilestoneOption{}), repo.CreateMilestone)
m.Combo("/:id").Get(repo.GetMilestone).
Patch(reqRepoWriter(), bind(api.EditMilestoneOption{}), repo.EditMilestone).
Delete(reqRepoWriter(), repo.DeleteMilestone)
})
}, repoAssignment())
}, reqToken())
+1 -2
View File
@@ -49,7 +49,6 @@ func GetIssue(ctx *context.APIContext) {
}
return
}
ctx.JSON(200, issue.APIFormat())
}
@@ -133,7 +132,7 @@ func EditIssue(ctx *context.APIContext, form api.EditIssueOption) {
assignee, err := models.GetUserByName(*form.Assignee)
if err != nil {
if models.IsErrUserNotExist(err) {
ctx.Error(422, "", fmt.Sprintf("Assignee does not exist: [name: %s]", *form.Assignee))
ctx.Error(422, "", fmt.Sprintf("assignee does not exist: [name: %s]", *form.Assignee))
} else {
ctx.Error(500, "GetUserByName", err)
}
-76
View File
@@ -1,76 +0,0 @@
// Copyright 2016 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package repo
import (
api "github.com/gogits/go-gogs-client"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/context"
"github.com/gogits/gogs/routers/api/v1/convert"
)
func GetIssueMilestone(ctx *context.APIContext) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
return
}
apiMilestone := convert.ToMilestone(issue.Milestone)
ctx.JSON(200, &apiMilestone)
}
func SetIssueMilestone(ctx *context.APIContext, form api.SetIssueMilestoneOption) {
if !ctx.Repo.IsWriter() {
ctx.Status(403)
return
}
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
return
}
oldMid := issue.MilestoneID
if oldMid != form.ID {
issue.MilestoneID = form.ID
if err = models.ChangeMilestoneAssign(oldMid, issue); err != nil {
ctx.Error(500, "ChangeMilestoneAssign", err)
return
}
}
// Refresh issue to return updated milestone
issue, err = models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
return
}
apiMilestone := convert.ToMilestone(issue.Milestone)
ctx.JSON(200, &apiMilestone)
}
func DeleteIssueMilestone(ctx *context.APIContext) {
form := api.SetIssueMilestoneOption{
ID: 0,
}
SetIssueMilestone(ctx, form)
}
+18 -71
View File
@@ -5,47 +5,42 @@
package repo
import (
"time"
api "github.com/gogits/go-gogs-client"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/context"
"github.com/gogits/gogs/routers/api/v1/convert"
"time"
)
func ListMilestones(ctx *context.APIContext) {
milestones, err := models.GetAllRepoMilestones(ctx.Repo.Repository.ID)
milestones, err := models.GetMilestonesByRepoID(ctx.Repo.Repository.ID)
if err != nil {
ctx.Error(500, "GetAllRepoMilestones", err)
ctx.Error(500, "GetMilestonesByRepoID", err)
return
}
apiMilestones := make([]*api.Milestone, len(milestones))
for i := range milestones {
apiMilestones[i] = convert.ToMilestone(milestones[i])
apiMilestones[i] = milestones[i].APIFormat()
}
ctx.JSON(200, &apiMilestones)
}
func GetMilestone(ctx *context.APIContext) {
milestone, err := models.GetRepoMilestoneByID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
milestone, err := models.GetMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrMilestoneNotExist(err) {
ctx.Status(404)
} else {
ctx.Error(500, "GetRepoMilestoneByID", err)
ctx.Error(500, "GetMilestoneByRepoID", err)
}
return
}
ctx.JSON(200, convert.ToMilestone(milestone))
ctx.JSON(200, milestone.APIFormat())
}
func CreateMilestone(ctx *context.APIContext, form api.CreateMilestoneOption) {
if !ctx.Repo.IsWriter() {
ctx.Status(403)
return
}
if form.Deadline == nil {
defaultDeadline, _ := time.ParseInLocation("2006-01-02", "9999-12-31", time.Local)
form.Deadline = &defaultDeadline
@@ -62,21 +57,16 @@ func CreateMilestone(ctx *context.APIContext, form api.CreateMilestoneOption) {
ctx.Error(500, "NewMilestone", err)
return
}
ctx.JSON(201, convert.ToMilestone(milestone))
ctx.JSON(201, milestone.APIFormat())
}
func EditMilestone(ctx *context.APIContext, form api.EditMilestoneOption) {
if !ctx.Repo.IsWriter() {
ctx.Status(403)
return
}
milestone, err := models.GetRepoMilestoneByID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
milestone, err := models.GetMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrMilestoneNotExist(err) {
ctx.Status(404)
} else {
ctx.Error(500, "GetRepoMilestoneByID", err)
ctx.Error(500, "GetMilestoneByRepoID", err)
}
return
}
@@ -84,67 +74,24 @@ func EditMilestone(ctx *context.APIContext, form api.EditMilestoneOption) {
if len(form.Title) > 0 {
milestone.Name = form.Title
}
if len(form.Description) > 0 {
milestone.Content = form.Description
if form.Description != nil {
milestone.Content = *form.Description
}
if !form.Deadline.IsZero() {
if form.Deadline != nil && !form.Deadline.IsZero() {
milestone.Deadline = *form.Deadline
}
if err := models.UpdateMilestone(milestone); err != nil {
ctx.Handle(500, "UpdateMilestone", err)
return
}
ctx.JSON(200, convert.ToMilestone(milestone))
ctx.JSON(200, milestone.APIFormat())
}
func DeleteMilestone(ctx *context.APIContext) {
if !ctx.Repo.IsWriter() {
ctx.Status(403)
return
}
if err := models.DeleteMilestoneByID(ctx.ParamsInt64(":id")); err != nil {
ctx.Error(500, "DeleteMilestoneByID", err)
if err := models.DeleteMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id")); err != nil {
ctx.Error(500, "DeleteMilestoneByRepoID", err)
return
}
ctx.Status(204)
}
func ChangeMilestoneStatus(ctx *context.APIContext) {
if !ctx.Repo.IsWriter() {
ctx.Status(403)
return
}
m, err := models.GetMilestoneByID(ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrMilestoneNotExist(err) {
ctx.Handle(404, "GetMilestoneByID", err)
} else {
ctx.Handle(500, "GetMilestoneByID", err)
}
return
}
switch ctx.Params(":action") {
case "open":
if m.IsClosed {
if err = models.ChangeMilestoneStatus(m, false); err != nil {
ctx.Handle(500, "ChangeMilestoneStatus", err)
return
}
}
ctx.JSON(200, convert.ToMilestone(m))
case "close":
if !m.IsClosed {
m.ClosedDate = time.Now()
if err = models.ChangeMilestoneStatus(m, true); err != nil {
ctx.Handle(500, "ChangeMilestoneStatus", err)
return
}
}
ctx.JSON(200, convert.ToMilestone(m))
default:
ctx.Status(400)
}
}
+12 -12
View File
@@ -210,7 +210,7 @@ func Issues(ctx *context.Context) {
ctx.Data["Issues"] = issues
// Get milestones.
ctx.Data["Milestones"], err = models.GetAllRepoMilestones(repo.ID)
ctx.Data["Milestones"], err = models.GetMilestonesByRepoID(repo.ID)
if err != nil {
ctx.Handle(500, "GetAllRepoMilestones", err)
return
@@ -1099,12 +1099,12 @@ func EditMilestone(ctx *context.Context) {
ctx.Data["RequireDatetimepicker"] = true
ctx.Data["DateLang"] = setting.DateLang(ctx.Locale.Language())
m, err := models.GetMilestoneByID(ctx.ParamsInt64(":id"))
m, err := models.GetMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrMilestoneNotExist(err) {
ctx.Handle(404, "GetMilestoneByID", nil)
ctx.Handle(404, "", nil)
} else {
ctx.Handle(500, "GetMilestoneByID", err)
ctx.Handle(500, "GetMilestoneByRepoID", err)
}
return
}
@@ -1138,12 +1138,12 @@ func EditMilestonePost(ctx *context.Context, form auth.CreateMilestoneForm) {
return
}
m, err := models.GetMilestoneByID(ctx.ParamsInt64(":id"))
m, err := models.GetMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrMilestoneNotExist(err) {
ctx.Handle(404, "GetMilestoneByID", nil)
ctx.Handle(404, "", nil)
} else {
ctx.Handle(500, "GetMilestoneByID", err)
ctx.Handle(500, "GetMilestoneByRepoID", err)
}
return
}
@@ -1160,12 +1160,12 @@ func EditMilestonePost(ctx *context.Context, form auth.CreateMilestoneForm) {
}
func ChangeMilestonStatus(ctx *context.Context) {
m, err := models.GetMilestoneByID(ctx.ParamsInt64(":id"))
m, err := models.GetMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrMilestoneNotExist(err) {
ctx.Handle(404, "GetMilestoneByID", err)
ctx.Handle(404, "", err)
} else {
ctx.Handle(500, "GetMilestoneByID", err)
ctx.Handle(500, "GetMilestoneByRepoID", err)
}
return
}
@@ -1194,8 +1194,8 @@ func ChangeMilestonStatus(ctx *context.Context) {
}
func DeleteMilestone(ctx *context.Context) {
if err := models.DeleteMilestoneByID(ctx.QueryInt64("id")); err != nil {
ctx.Flash.Error("DeleteMilestoneByID: " + err.Error())
if err := models.DeleteMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.QueryInt64("id")); err != nil {
ctx.Flash.Error("DeleteMilestoneByRepoID: " + err.Error())
} else {
ctx.Flash.Success(ctx.Tr("repo.milestones.deletion_success"))
}
+1 -1
View File
@@ -1 +1 @@
0.9.83.0816
0.9.84.0824