@@ -21,15 +21,24 @@ import (
2121)
2222
2323// NewIssue creates new issue with labels for repository.
24- func NewIssue (ctx context.Context , repo * repo_model.Repository , issue * issues_model.Issue , labelIDs []int64 , uuids []string , assigneeIDs []int64 ) error {
25- if err := issues_model .NewIssue (ctx , repo , issue , labelIDs , uuids ); err != nil {
26- return err
27- }
28-
29- for _ , assigneeID := range assigneeIDs {
30- if _ , err := AddAssigneeIfNotAssigned (ctx , issue , issue .Poster , assigneeID , true ); err != nil {
24+ func NewIssue (ctx context.Context , repo * repo_model.Repository , issue * issues_model.Issue , labelIDs []int64 , uuids []string , assigneeIDs []int64 , projectID int64 ) error {
25+ if err := db .WithTx (ctx , func (ctx context.Context ) error {
26+ if err := issues_model .NewIssue (ctx , repo , issue , labelIDs , uuids ); err != nil {
3127 return err
3228 }
29+ for _ , assigneeID := range assigneeIDs {
30+ if _ , err := AddAssigneeIfNotAssigned (ctx , issue , issue .Poster , assigneeID , true ); err != nil {
31+ return err
32+ }
33+ }
34+ if projectID > 0 {
35+ if err := issues_model .ChangeProjectAssign (ctx , issue , issue .Poster , projectID ); err != nil {
36+ return err
37+ }
38+ }
39+ return nil
40+ }); err != nil {
41+ return err
3342 }
3443
3544 mentions , err := issues_model .FindAndUpdateIssueMentions (ctx , issue , issue .Poster , issue .Content )
0 commit comments