forked from forgejo/forgejo
Rewrite reference processing code in preparation for opening/closing from comment references (#8261)
* Add a markdown stripper for mentions and xrefs * Improve comments * Small code simplification * Move reference code to modules/references * Fix typo * Make MarkdownStripper return [][]byte * Implement preliminary keywords parsing * Add FIXME comment * Fix comment * make fmt * Fix permissions check * Fix text assumptions * Fix imports * Fix lint, fmt * Fix unused import * Add missing export comment * Bypass revive on implemented interface * Move mdstripper into its own package * Support alphanumeric patterns * Refactor FindAllMentions * Move mentions test to references * Parse mentions from reference package * Refactor code to implement renderizable references * Fix typo * Move patterns and tests to the references package * Fix nil reference * Preliminary rendering attempt of closing keywords * Normalize names, comments, general tidy-up * Add CSS style for action keywords * Fix permission for admin and owner * Fix golangci-lint * Fix golangci-lint
This commit is contained in:
parent
6e3f51098b
commit
15809d81f7
16 changed files with 1123 additions and 438 deletions
|
@ -13,6 +13,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/modules/references"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/test"
|
||||
|
||||
|
@ -207,7 +208,7 @@ func TestIssueCrossReference(t *testing.T) {
|
|||
RefIssueID: issueRef.ID,
|
||||
RefCommentID: 0,
|
||||
RefIsPull: false,
|
||||
RefAction: models.XRefActionNone})
|
||||
RefAction: references.XRefActionNone})
|
||||
|
||||
// Edit title, neuter ref
|
||||
testIssueChangeInfo(t, "user2", issueRefURL, "title", "Title no ref")
|
||||
|
@ -217,7 +218,7 @@ func TestIssueCrossReference(t *testing.T) {
|
|||
RefIssueID: issueRef.ID,
|
||||
RefCommentID: 0,
|
||||
RefIsPull: false,
|
||||
RefAction: models.XRefActionNeutered})
|
||||
RefAction: references.XRefActionNeutered})
|
||||
|
||||
// Ref from issue content
|
||||
issueRefURL, issueRef = testIssueWithBean(t, "user2", 1, "TitleXRef", fmt.Sprintf("Description ref #%d", issueBase.Index))
|
||||
|
@ -227,7 +228,7 @@ func TestIssueCrossReference(t *testing.T) {
|
|||
RefIssueID: issueRef.ID,
|
||||
RefCommentID: 0,
|
||||
RefIsPull: false,
|
||||
RefAction: models.XRefActionNone})
|
||||
RefAction: references.XRefActionNone})
|
||||
|
||||
// Edit content, neuter ref
|
||||
testIssueChangeInfo(t, "user2", issueRefURL, "content", "Description no ref")
|
||||
|
@ -237,7 +238,7 @@ func TestIssueCrossReference(t *testing.T) {
|
|||
RefIssueID: issueRef.ID,
|
||||
RefCommentID: 0,
|
||||
RefIsPull: false,
|
||||
RefAction: models.XRefActionNeutered})
|
||||
RefAction: references.XRefActionNeutered})
|
||||
|
||||
// Ref from a comment
|
||||
session := loginUser(t, "user2")
|
||||
|
@ -248,7 +249,7 @@ func TestIssueCrossReference(t *testing.T) {
|
|||
RefIssueID: issueRef.ID,
|
||||
RefCommentID: commentID,
|
||||
RefIsPull: false,
|
||||
RefAction: models.XRefActionNone}
|
||||
RefAction: references.XRefActionNone}
|
||||
models.AssertExistsAndLoadBean(t, comment)
|
||||
|
||||
// Ref from a different repository
|
||||
|
@ -259,7 +260,7 @@ func TestIssueCrossReference(t *testing.T) {
|
|||
RefIssueID: issueRef.ID,
|
||||
RefCommentID: 0,
|
||||
RefIsPull: false,
|
||||
RefAction: models.XRefActionNone})
|
||||
RefAction: references.XRefActionNone})
|
||||
}
|
||||
|
||||
func testIssueWithBean(t *testing.T, user string, repoID int64, title, content string) (string, *models.Issue) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue