Api: advanced settings for repository (external wiki, issue tracker etc.) (#7756)

* Add API for Repo Advanced Settings of wiki and issue tracker

Signed-off-by: David Svantesson <davidsvantesson@gmail.com>

* Add some integration tests for tracker and wiki settings through API

* Should return StatusUnprocessableEntity in case of invalid API values.

* Add tests for invalid URLs for external tracker and wiki.

* Do not set inital values if they are default of type

* Make issue tracker and wiki units separate structures in Repository API structure.

Signed-off-by: David Svantesson <davidsvantesson@gmail.com>

* Fix comment of structures

Signed-off-by: David Svantesson <davidsvantesson@gmail.com>

* Rewrite API to use struct for setting tracker and wiki settings.

* LetOnlyContributorsTrackTime -> AllowOnlyContributorsToTrackTime
This commit is contained in:
David Svantesson 2019-10-02 11:30:41 +02:00 committed by Lunny Xiao
parent f8899678d2
commit 90ab3056eb
5 changed files with 327 additions and 41 deletions

View file

@ -8469,6 +8469,12 @@
"type": "string",
"x-go-name": "Description"
},
"external_tracker": {
"$ref": "#/definitions/ExternalTracker"
},
"external_wiki": {
"$ref": "#/definitions/ExternalWiki"
},
"has_issues": {
"description": "either `true` to enable issues for this repository or `false` to disable them.",
"type": "boolean",
@ -8489,6 +8495,9 @@
"type": "boolean",
"x-go-name": "IgnoreWhitespaceConflicts"
},
"internal_tracker": {
"$ref": "#/definitions/InternalTracker"
},
"name": {
"description": "name of the repository",
"type": "string",
@ -8644,6 +8653,40 @@
},
"x-go-package": "code.gitea.io/gitea/modules/structs"
},
"ExternalTracker": {
"description": "ExternalTracker represents settings for external tracker",
"type": "object",
"properties": {
"external_tracker_format": {
"description": "External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.",
"type": "string",
"x-go-name": "ExternalTrackerFormat"
},
"external_tracker_style": {
"description": "External Issue Tracker Number Format, either `numeric` or `alphanumeric`",
"type": "string",
"x-go-name": "ExternalTrackerStyle"
},
"external_tracker_url": {
"description": "URL of external issue tracker.",
"type": "string",
"x-go-name": "ExternalTrackerURL"
}
},
"x-go-package": "code.gitea.io/gitea/modules/structs"
},
"ExternalWiki": {
"description": "ExternalWiki represents setting for external wiki",
"type": "object",
"properties": {
"external_wiki_url": {
"description": "URL of external wiki.",
"type": "string",
"x-go-name": "ExternalWikiURL"
}
},
"x-go-package": "code.gitea.io/gitea/modules/structs"
},
"FileCommitResponse": {
"type": "object",
"title": "FileCommitResponse contains information generated from a Git commit for a repo's file.",
@ -9008,6 +9051,28 @@
},
"x-go-package": "code.gitea.io/gitea/modules/structs"
},
"InternalTracker": {
"description": "InternalTracker represents settings for internal tracker",
"type": "object",
"properties": {
"allow_only_contributors_to_track_time": {
"description": "Let only contributors track time (Built-in issue tracker)",
"type": "boolean",
"x-go-name": "AllowOnlyContributorsToTrackTime"
},
"enable_issue_dependencies": {
"description": "Enable dependencies for issues and pull requests (Built-in issue tracker)",
"type": "boolean",
"x-go-name": "EnableIssueDependencies"
},
"enable_time_tracker": {
"description": "Enable time tracking (Built-in issue tracker)",
"type": "boolean",
"x-go-name": "EnableTimeTracker"
}
},
"x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Issue": {
"description": "Issue represents an issue in a repository",
"type": "object",
@ -9863,6 +9928,12 @@
"type": "boolean",
"x-go-name": "Empty"
},
"external_tracker": {
"$ref": "#/definitions/ExternalTracker"
},
"external_wiki": {
"$ref": "#/definitions/ExternalWiki"
},
"fork": {
"type": "boolean",
"x-go-name": "Fork"
@ -9901,6 +9972,9 @@
"type": "boolean",
"x-go-name": "IgnoreWhitespaceConflicts"
},
"internal_tracker": {
"$ref": "#/definitions/InternalTracker"
},
"mirror": {
"type": "boolean",
"x-go-name": "Mirror"