@@ -24,6 +24,8 @@ import (
2424 "github.com/labring/gh-rebot/pkg/types"
2525 "github.com/labring/gh-rebot/pkg/utils"
2626 "os"
27+ "strconv"
28+ "strings"
2729 "time"
2830)
2931
@@ -72,19 +74,28 @@ func IssueRenew() error {
7274 return err
7375 }
7476 hasIssue := false
77+ issueNumber := ""
78+ defer func () {
79+ writeGithubEnv ("SEALOS_ISSUE_NUMBER" , issueNumber )
80+ logger .Info ("add env SEALOS_ISSUE_NUMBER: %s" , issueNumber )
81+ }()
82+ issueOldTitle , _ := GetEnvFromAction ("issue_title" )
7583 for _ , issue := range issues {
76- logger .Debug ("issue: %s, state: %s, id: %d" , issue .GetTitle (), issue .GetState (), issue .GetID ())
77- if issue .GetTitle () == issueTitle && issue .GetState () != "closed" {
78- logger .Info ("issue already exist, issue: %s" , issue .GetTitle ())
79- hasIssue = true
80- return nil
81- } else {
82- state := "closed"
83- issueRequest := & github.IssueRequest {
84- State : & state ,
84+ if strings .HasPrefix (issue .GetTitle (), issueOldTitle ) {
85+ logger .Debug ("issue: %s, state: %s, id: %d" , issue .GetTitle (), issue .GetState (), issue .GetID ())
86+ if issue .GetTitle () == issueTitle && issue .GetState () != "closed" {
87+ logger .Info ("issue already exist, issue: %s" , issue .GetTitle ())
88+ hasIssue = true
89+ issueNumber = strconv .Itoa (issue .GetNumber ())
90+ return nil
91+ } else {
92+ state := "closed"
93+ issueRequest := & github.IssueRequest {
94+ State : & state ,
95+ }
96+ _ , _ , _ = client .Issues .Edit (ctx , owner , repo , issue .GetNumber (), issueRequest )
97+ logger .Info ("close issue: %s" , issue .GetTitle ())
8598 }
86- _ , _ , _ = client .Issues .Edit (ctx , owner , repo , issue .GetNumber (), issueRequest )
87- logger .Info ("close issue: %s" , issue .GetTitle ())
8899 }
89100 }
90101 logger .Warn ("issue not exist, issue: %s" , issueTitle )
@@ -96,8 +107,9 @@ func IssueRenew() error {
96107 label ,
97108 },
98109 }
99- _ , _ , _ = client .Issues .Create (ctx , owner , repo , issueRequest )
100- logger .Info ("create issue: %s" , issueTitle )
110+ issue , _ , _ := client .Issues .Create (ctx , owner , repo , issueRequest )
111+ issueNumber = strconv .Itoa (issue .GetNumber ())
112+ logger .Info ("create issue: %s, number: %d" , issueTitle , issue .GetNumber ())
101113 }
102114
103115 return nil
0 commit comments