diff options
author | zeripath <art27@cantab.net> | 2020-10-05 07:49:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-05 09:49:11 +0300 |
commit | 5e1c51cdb66e3aee57d2e19d43cfb1a03959096f (patch) | |
tree | a924e57c69e2354dffa498eaba52158ab9d4faab | |
parent | cda44750cbdc7a8460666a4f0ac7f652d84a3964 (diff) | |
download | gitea-5e1c51cdb66e3aee57d2e19d43cfb1a03959096f.tar.gz gitea-5e1c51cdb66e3aee57d2e19d43cfb1a03959096f.zip |
(Re)Load issue labels when changing them (#13007)
(Re)Load issue labels when labels are added or removed
This means that the label state that the webhooks produce accurately matches
the changes that they are reporting.
Fix #10660
Signed-off-by: Andrew Thornton <art27@cantab.net>
-rw-r--r-- | models/issue.go | 5 | ||||
-rw-r--r-- | models/issue_label.go | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/models/issue.go b/models/issue.go index 82bd21455b..ee75623f53 100644 --- a/models/issue.go +++ b/models/issue.go @@ -549,6 +549,11 @@ func (issue *Issue) ReplaceLabels(labels []*Label, doer *User) (err error) { } } + issue.Labels = nil + if err = issue.loadLabels(sess); err != nil { + return err + } + return sess.Commit() } diff --git a/models/issue_label.go b/models/issue_label.go index 2b519ee71d..6b029198fc 100644 --- a/models/issue_label.go +++ b/models/issue_label.go @@ -670,6 +670,11 @@ func NewIssueLabel(issue *Issue, label *Label, doer *User) (err error) { return err } + issue.Labels = nil + if err = issue.loadLabels(sess); err != nil { + return err + } + return sess.Commit() } @@ -699,6 +704,11 @@ func NewIssueLabels(issue *Issue, labels []*Label, doer *User) (err error) { return err } + issue.Labels = nil + if err = issue.loadLabels(sess); err != nil { + return err + } + return sess.Commit() } @@ -742,5 +752,10 @@ func DeleteIssueLabel(issue *Issue, label *Label, doer *User) (err error) { return err } + issue.Labels = nil + if err = issue.loadLabels(sess); err != nil { + return err + } + return sess.Commit() } |