@@ -22,7 +22,7 @@ import (
2222)
2323
2424// NewIssue creates new issue with labels for repository.
25- func NewIssue (ctx context.Context , repo * repo_model.Repository , issue * issues_model.Issue , labelIDs []int64 , uuids []string , assigneeIDs []int64 ) error {
25+ func NewIssue (ctx context.Context , repo * repo_model.Repository , issue * issues_model.Issue , labelIDs []int64 , uuids []string , assigneeIDs []int64 , projectID int64 ) error {
2626 if err := issue .LoadPoster (ctx ); err != nil {
2727 return err
2828 }
@@ -31,14 +31,23 @@ func NewIssue(ctx context.Context, repo *repo_model.Repository, issue *issues_mo
3131 return user_model .ErrBlockedUser
3232 }
3333
34- if err := issues_model .NewIssue (ctx , repo , issue , labelIDs , uuids ); err != nil {
35- return err
36- }
37-
38- for _ , assigneeID := range assigneeIDs {
39- if _ , err := AddAssigneeIfNotAssigned (ctx , issue , issue .Poster , assigneeID , true ); err != nil {
34+ if err := db .WithTx (ctx , func (ctx context.Context ) error {
35+ if err := issues_model .NewIssue (ctx , repo , issue , labelIDs , uuids ); err != nil {
4036 return err
4137 }
38+ for _ , assigneeID := range assigneeIDs {
39+ if _ , err := AddAssigneeIfNotAssigned (ctx , issue , issue .Poster , assigneeID , true ); err != nil {
40+ return err
41+ }
42+ }
43+ if projectID > 0 {
44+ if err := issues_model .ChangeProjectAssign (ctx , issue , issue .Poster , projectID ); err != nil {
45+ return err
46+ }
47+ }
48+ return nil
49+ }); err != nil {
50+ return err
4251 }
4352
4453 mentions , err := issues_model .FindAndUpdateIssueMentions (ctx , issue , issue .Poster , issue .Content )
0 commit comments