mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Implement Issue Config (#20956)
Closes #20955 This PR adds the possibility to disable blank Issues, when the Repo has templates. This can be done by creating the file `.gitea/issue_config.yaml` with the content `blank_issues_enabled` in the Repo.
This commit is contained in:
@@ -20,17 +20,40 @@
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="ui attached segment">
|
||||
<div class="ui two column grid">
|
||||
<div class="column left aligned">
|
||||
<strong>{{.locale.Tr "repo.issues.choose.blank"}}</strong>
|
||||
<br>{{.locale.Tr "repo.issues.choose.blank_about"}}
|
||||
</div>
|
||||
<div class="column right aligned">
|
||||
<a href="{{.RepoLink}}/issues/new?{{if .milestone}}&milestone={{.milestone}}{{end}}{{if $.project}}&project={{$.project}}{{end}}" class="ui green button">{{$.locale.Tr "repo.issues.choose.get_started"}}</a>
|
||||
{{range .IssueConfig.ContactLinks}}
|
||||
<div class="ui attached segment">
|
||||
<div class="ui two column grid">
|
||||
<div class="column left aligned">
|
||||
<strong>{{.Name | RenderEmojiPlain}}</strong>
|
||||
<br>{{.About | RenderEmojiPlain}}
|
||||
</div>
|
||||
<div class="column right aligned">
|
||||
<a href="{{.URL}}" class="ui green button">{{svg "octicon-link-external"}} {{$.locale.Tr "repo.issues.choose.open_external_link"}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .IssueConfig.BlankIssuesEnabled}}
|
||||
<div class="ui attached segment">
|
||||
<div class="ui two column grid">
|
||||
<div class="column left aligned">
|
||||
<strong>{{.locale.Tr "repo.issues.choose.blank"}}</strong>
|
||||
<br/>{{.locale.Tr "repo.issues.choose.blank_about"}}
|
||||
</div>
|
||||
<div class="column right aligned">
|
||||
<a href="{{.RepoLink}}/issues/new?{{if .milestone}}&milestone={{.milestone}}{{end}}{{if $.project}}&project={{$.project}}{{end}}" class="ui green button">{{$.locale.Tr "repo.issues.choose.get_started"}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{- if .IssueConfigError}}{{/* normal warning flash makes problems here*/}}
|
||||
<div class="ui warning message">
|
||||
<div class="text left">
|
||||
<div>{{.locale.Tr "repo.issues.choose.invalid_config"}}</div>
|
||||
<diy>{{.IssueConfigError}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
{{template "base/footer" .}}
|
||||
|
@@ -5013,6 +5013,72 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/repos/{owner}/{repo}/issue_config": {
|
||||
"get": {
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"repository"
|
||||
],
|
||||
"summary": "Returns the issue config for a repo",
|
||||
"operationId": "repoGetIssueConfig",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "owner of the repo",
|
||||
"name": "owner",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the repo",
|
||||
"name": "repo",
|
||||
"in": "path",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/RepoIssueConfig"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/repos/{owner}/{repo}/issue_config/validate": {
|
||||
"get": {
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"repository"
|
||||
],
|
||||
"summary": "Returns the validation information for a issue config",
|
||||
"operationId": "repoValidateIssueConfig",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "owner of the repo",
|
||||
"name": "owner",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the repo",
|
||||
"name": "repo",
|
||||
"in": "path",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/RepoIssueConfigValidation"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/repos/{owner}/{repo}/issue_templates": {
|
||||
"get": {
|
||||
"produces": [
|
||||
@@ -18165,6 +18231,55 @@
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/modules/structs"
|
||||
},
|
||||
"IssueConfig": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"blank_issues_enabled": {
|
||||
"type": "boolean",
|
||||
"x-go-name": "BlankIssuesEnabled"
|
||||
},
|
||||
"contact_links": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/IssueConfigContactLink"
|
||||
},
|
||||
"x-go-name": "ContactLinks"
|
||||
}
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/modules/structs"
|
||||
},
|
||||
"IssueConfigContactLink": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"about": {
|
||||
"type": "string",
|
||||
"x-go-name": "About"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"x-go-name": "Name"
|
||||
},
|
||||
"url": {
|
||||
"type": "string",
|
||||
"x-go-name": "URL"
|
||||
}
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/modules/structs"
|
||||
},
|
||||
"IssueConfigValidation": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string",
|
||||
"x-go-name": "Message"
|
||||
},
|
||||
"valid": {
|
||||
"type": "boolean",
|
||||
"x-go-name": "Valid"
|
||||
}
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/modules/structs"
|
||||
},
|
||||
"IssueDeadline": {
|
||||
"description": "IssueDeadline represents an issue deadline",
|
||||
"type": "object",
|
||||
@@ -21444,6 +21559,18 @@
|
||||
"$ref": "#/definitions/RepoCollaboratorPermission"
|
||||
}
|
||||
},
|
||||
"RepoIssueConfig": {
|
||||
"description": "RepoIssueConfig",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/IssueConfig"
|
||||
}
|
||||
},
|
||||
"RepoIssueConfigValidation": {
|
||||
"description": "RepoIssueConfigValidation",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/IssueConfigValidation"
|
||||
}
|
||||
},
|
||||
"Repository": {
|
||||
"description": "Repository",
|
||||
"schema": {
|
||||
|
Reference in New Issue
Block a user