aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2018-12-02 12:55:05 -0500
committerUnknwon <u@gogs.io>2018-12-02 12:55:05 -0500
commite1b3a250085195122c3b41b998504692f47fcb63 (patch)
tree40614fe982572c95f401af688c7d4d1617921ae8
parent69c1cd3f381b19b988a6af51a8e38303f216b001 (diff)
api/repo: support edit repository issue tracker (gogs/go-gogs-client#94)
-rw-r--r--gogs.go2
-rw-r--r--pkg/context/api.go5
-rw-r--r--routes/api/v1/api.go2
-rw-r--r--routes/api/v1/repo/repo.go31
-rw-r--r--templates/.VERSION2
5 files changed, 40 insertions, 2 deletions
diff --git a/gogs.go b/gogs.go
index b87b6c9a..a433ef24 100644
--- a/gogs.go
+++ b/gogs.go
@@ -16,7 +16,7 @@ import (
"github.com/gogs/gogs/pkg/setting"
)
-const APP_VER = "0.11.72.1201"
+const APP_VER = "0.11.73.1202"
func init() {
setting.AppVer = APP_VER
diff --git a/pkg/context/api.go b/pkg/context/api.go
index 7df5b23a..439fb5df 100644
--- a/pkg/context/api.go
+++ b/pkg/context/api.go
@@ -44,6 +44,11 @@ func (c *APIContext) Error(status int, title string, obj interface{}) {
})
}
+// NoContent renders the 204 response.
+func (c *APIContext) NoContent() {
+ c.Status(http.StatusNoContent)
+}
+
// NotFound renders the 404 response.
func (c *APIContext) NotFound() {
c.Status(http.StatusNotFound)
diff --git a/routes/api/v1/api.go b/routes/api/v1/api.go
index 3ac5ef98..2fb2ebb0 100644
--- a/routes/api/v1/api.go
+++ b/routes/api/v1/api.go
@@ -293,6 +293,8 @@ func RegisterRoutes(m *macaron.Macaron) {
Patch(reqRepoWriter(), bind(api.EditMilestoneOption{}), repo.EditMilestone).
Delete(reqRepoWriter(), repo.DeleteMilestone)
})
+
+ m.Patch("/issue-tracker", bind(api.EditIssueTrackerOption{}), repo.IssueTracker)
m.Post("/mirror-sync", repo.MirrorSync)
m.Get("/editorconfig/:filename", context.RepoRef(), repo.GetEditorconfig)
}, repoAssignment())
diff --git a/routes/api/v1/repo/repo.go b/routes/api/v1/repo/repo.go
index 6d4d0497..9c1ab476 100644
--- a/routes/api/v1/repo/repo.go
+++ b/routes/api/v1/repo/repo.go
@@ -291,6 +291,7 @@ func Migrate(c *context.APIContext, f form.MigrateRepo) {
c.JSON(201, repo.APIFormat(&api.Permission{true, true, true}))
}
+// FIXME: Inject to *context.APIContext
func parseOwnerAndRepo(c *context.APIContext) (*models.User, *models.Repository) {
owner, err := models.GetUserByName(c.Params(":username"))
if err != nil {
@@ -373,6 +374,36 @@ func ListForks(c *context.APIContext) {
c.JSON(200, &apiForks)
}
+func IssueTracker(c *context.APIContext, form api.EditIssueTrackerOption) {
+ _, repo := parseOwnerAndRepo(c)
+ if c.Written() {
+ return
+ }
+
+ if form.EnableIssues != nil {
+ repo.EnableIssues = *form.EnableIssues
+ }
+ if form.EnableExternalTracker != nil {
+ repo.EnableExternalTracker = *form.EnableExternalTracker
+ }
+ if form.ExternalTrackerURL != nil {
+ repo.ExternalTrackerURL = *form.ExternalTrackerURL
+ }
+ if form.TrackerURLFormat != nil {
+ repo.ExternalTrackerFormat = *form.TrackerURLFormat
+ }
+ if form.TrackerIssueStyle != nil {
+ repo.ExternalTrackerStyle = *form.TrackerIssueStyle
+ }
+
+ if err := models.UpdateRepository(repo, false); err != nil {
+ c.ServerError("UpdateRepository", err)
+ return
+ }
+
+ c.NoContent()
+}
+
func MirrorSync(c *context.APIContext) {
_, repo := parseOwnerAndRepo(c)
if c.Written() {
diff --git a/templates/.VERSION b/templates/.VERSION
index 2f9cfa54..8b3d065d 100644
--- a/templates/.VERSION
+++ b/templates/.VERSION
@@ -1 +1 @@
-0.11.72.1201
+0.11.73.1202