feat: vendor gitea 1.16.2

This commit is contained in:
2026-06-02 08:36:01 +00:00
parent 247cd60f69
commit 54798b4615
2145 changed files with 162965 additions and 126447 deletions
+25 -2
View File
@@ -89,13 +89,31 @@ func issueAddTime(ctx context.Context, issue *issues_model.Issue, doer *user_mod
return err
}
// isSelfReference checks if a commit is the merge commit of the PR it references.
// This prevents creating self-referencing timeline entries when a PR merge commit
// contains a reference to its own PR number in the commit message.
func isSelfReference(ctx context.Context, issue *issues_model.Issue, commitSHA string) bool {
if !issue.IsPull {
return false
}
if err := issue.LoadPullRequest(ctx); err != nil {
if !issues_model.IsErrPullRequestNotExist(err) {
log.Error("LoadPullRequest: %v", err)
}
return false
}
return issue.PullRequest.MergedCommitID == commitSHA
}
// getIssueFromRef returns the issue referenced by a ref. Returns a nil *Issue
// if the provided ref references a non-existent issue.
func getIssueFromRef(ctx context.Context, repo *repo_model.Repository, index int64) (*issues_model.Issue, error) {
issue, err := issues_model.GetIssueByIndex(ctx, repo.ID, index)
if err != nil {
if issues_model.IsErrIssueNotExist(err) {
return nil, nil
return nil, nil //nolint:nilnil // return nil to indicate that the object does not exist
}
return nil, err
}
@@ -139,7 +157,7 @@ func UpdateIssuesCommit(ctx context.Context, doer *user_model.User, repo *repo_m
continue
}
perm, err := access_model.GetUserRepoPermission(ctx, refRepo, doer)
perm, err := access_model.GetDoerRepoPermission(ctx, refRepo, doer)
if err != nil {
return err
}
@@ -158,6 +176,11 @@ func UpdateIssuesCommit(ctx context.Context, doer *user_model.User, repo *repo_m
continue
}
// Skip self-references: if this commit is the merge commit of the PR it references
if isSelfReference(ctx, refIssue, c.Sha1) {
continue
}
message := fmt.Sprintf(`<a href="%s/commit/%s">%s</a>`, html.EscapeString(repo.Link()), html.EscapeString(url.PathEscape(c.Sha1)), html.EscapeString(strings.SplitN(c.Message, "\n", 2)[0]))
if err = CreateRefComment(ctx, doer, refRepo, refIssue, message, c.Sha1); err != nil {
if errors.Is(err, user_model.ErrBlockedUser) {