Skip to content

Commit

Permalink
GitHub API Compliance (& linting)
Browse files Browse the repository at this point in the history
  • Loading branch information
bkcsoft committed Nov 24, 2016
1 parent 09ec5d0 commit b17506c
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 9 deletions.
28 changes: 27 additions & 1 deletion models/issue_label.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func (label *Label) APIFormat() *api.Label {
return &api.Label{
ID: label.ID,
Name: label.Name,
Color: label.Color,
Color: strings.TrimLeft(label.Color, "#"),
}
}

Expand Down Expand Up @@ -101,6 +101,27 @@ func NewLabels(labels ...*Label) error {
return err
}

// getLabelInRepoByName returns a label by Name in given repository.
// If pass repoID as 0, then ORM will ignore limitation of repository
// and can return arbitrary label with any valid ID.
func getLabelInRepoByName(e Engine, repoID int64, labelName string) (*Label, error) {
if len(labelName) <= 0 {
return nil, ErrLabelNotExist{0, repoID}
}

l := &Label{
Name: labelName,
RepoID: repoID,
}
has, err := x.Get(l)
if err != nil {
return nil, err
} else if !has {
return nil, ErrLabelNotExist{0, l.RepoID}
}
return l, nil
}

// getLabelInRepoByID returns a label by ID in given repository.
// If pass repoID as 0, then ORM will ignore limitation of repository
// and can return arbitrary label with any valid ID.
Expand All @@ -127,6 +148,11 @@ func GetLabelByID(id int64) (*Label, error) {
return getLabelInRepoByID(x, 0, id)
}

// GetLabelInRepoByID returns a label by ID in given repository.
func GetLabelInRepoByName(repoID int64, labelName string) (*Label, error) {
return getLabelInRepoByName(x, repoID, labelName)
}

// GetLabelInRepoByID returns a label by ID in given repository.
func GetLabelInRepoByID(repoID, labelID int64) (*Label, error) {
return getLabelInRepoByID(x, repoID, labelID)
Expand Down
3 changes: 3 additions & 0 deletions modules/auth/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ func SignedInID(ctx *macaron.Context, sess session.Store) int64 {
// Check access token.
if IsAPIPath(ctx.Req.URL.Path) {
tokenSHA := ctx.Query("token")
if len(tokenSHA) <= 0 {
tokenSHA = ctx.Query("access_token")
}
if len(tokenSHA) == 0 {
// Well, check with header again.
auHead := ctx.Req.Header.Get("Authorization")
Expand Down
20 changes: 16 additions & 4 deletions routers/api/v1/repo/issue.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,26 @@ import (

// ListIssues list the issues of a repository
func ListIssues(ctx *context.APIContext) {
issues, err := models.Issues(&models.IssuesOptions{
RepoID: ctx.Repo.Repository.ID,
Page: ctx.QueryInt("page"),
})
issueOpts := models.IssuesOptions{
RepoID: ctx.Repo.Repository.ID,
Page: ctx.QueryInt("page"),
IsClosed: ctx.Query("state") == "closed",
}

issues, err := models.Issues(&issueOpts)
if err != nil {
ctx.Error(500, "Issues", err)
return
}
if ctx.Query("state") == "all" {
issueOpts.IsClosed = !issueOpts.IsClosed
temp_issues, err := models.Issues(&issueOpts)
if err != nil {
ctx.Error(500, "Issues", err)
return
}
issues = append(issues, temp_issues...)
}

// FIXME: use IssueList to improve performance.
apiIssues := make([]*api.Issue, len(issues))
Expand Down
13 changes: 12 additions & 1 deletion routers/api/v1/repo/label.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
package repo

import (
"strconv"

api "code.gitea.io/sdk/gitea"

"code.gitea.io/gitea/models"
Expand All @@ -28,7 +30,16 @@ func ListLabels(ctx *context.APIContext) {

// GetLabel get label by repository and label id
func GetLabel(ctx *context.APIContext) {
label, err := models.GetLabelInRepoByID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
var (
label *models.Label
err error
)
strID := ctx.Params(":id")
if intID, err2 := strconv.ParseInt(strID, 10, 64); err2 != nil {
label, err = models.GetLabelInRepoByName(ctx.Repo.Repository.ID, strID)
} else {
label, err = models.GetLabelInRepoByID(ctx.Repo.Repository.ID, intID)
}
if err != nil {
if models.IsErrLabelNotExist(err) {
ctx.Status(404)
Expand Down
6 changes: 3 additions & 3 deletions routers/api/v1/repo/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ func CreateUserRepo(ctx *context.APIContext, owner *models.User, opt api.CreateR
ctx.JSON(201, repo.APIFormat(&api.Permission{true, true, true}))
}

// Create create one repository of mine
// Create one repository of mine
// see https://github.com/gogits/go-gogs-client/wiki/Repositories#create
func Create(ctx *context.APIContext, opt api.CreateRepoOption) {
// Shouldn't reach this condition, but just in case.
Expand Down Expand Up @@ -244,7 +244,7 @@ func Migrate(ctx *context.APIContext, form auth.MigrateRepoForm) {
ctx.JSON(201, repo.APIFormat(&api.Permission{true, true, true}))
}

// Get get one repository
// Get one repository
// see https://github.com/gogits/go-gogs-client/wiki/Repositories#get
func Get(ctx *context.APIContext) {
repo := ctx.Repo.Repository
Expand All @@ -266,7 +266,7 @@ func GetByID(ctx *context.APIContext) {
ctx.JSON(200, repo.APIFormat(&api.Permission{true, true, true}))
}

// Delete delete one repository
// Delete one repository
// see https://github.com/gogits/go-gogs-client/wiki/Repositories#delete
func Delete(ctx *context.APIContext) {
owner := ctx.Repo.Owner
Expand Down

0 comments on commit b17506c

Please sign in to comment.