@@ -28,6 +28,11 @@ type Command struct {
2828 args []string
2929}
3030
31+ type Target struct {
32+ Owner , Repo string
33+ PullRequest * github.PullRequest
34+ }
35+
3136func New () * Command {
3237 return & Command {
3338 BaseURL : "" ,
@@ -62,8 +67,26 @@ func (c *Command) Run(args []string) error {
6267
6368func (c * Command ) HandleEvent (payload interface {}) error {
6469 switch e := payload .(type ) {
70+ case * github.IssuesEvent :
71+ pull , err := actions .GetPullRequest (e )
72+ if err != nil {
73+ return err
74+ }
75+ target := & Target {
76+ Owner : e .Repo .Owner .GetLogin (),
77+ Repo : e .Repo .GetName (),
78+ PullRequest : pull ,
79+ }
80+ return c .EnsureCheckRun (target )
6581 case * github.PullRequestEvent :
66- return c .EnsureCheckRun (e )
82+ owner := e .Repo .Owner .GetLogin ()
83+ repo := e .Repo .GetName ()
84+ target := & Target {
85+ Owner : owner ,
86+ Repo : repo ,
87+ PullRequest : e .PullRequest ,
88+ }
89+ return c .EnsureCheckRun (target )
6790 }
6891 return nil
6992}
@@ -96,7 +119,7 @@ func (c *Command) createCheckRun(suite *github.CheckSuite, cr Run) (*github.Chec
96119 return created , err
97120}
98121
99- func (c * Command ) EnsureCheckRun (pre * github. PullRequestEvent ) error {
122+ func (c * Command ) EnsureCheckRun (pre * Target ) error {
100123 client , err := c .instTokenClient ()
101124 if err != nil {
102125 return err
@@ -106,8 +129,8 @@ func (c *Command) EnsureCheckRun(pre *github.PullRequestEvent) error {
106129
107130 summary , text , runErr := c .runIt ()
108131
109- owner := pre .Repo . Owner . GetLogin ()
110- repo := pre .Repo . GetName ()
132+ owner := pre .Owner
133+ repo := pre .Repo
111134
112135 if c .checkRunName != "" {
113136 suite , err := c .EnsureCheckSuite (pre )
@@ -212,7 +235,7 @@ func (c *Command) logCheckRun(checkRun *github.CheckRun) {
212235 log .Printf ("CheckRun:\n %s" , buf .String ())
213236}
214237
215- func (c * Command ) EnsureCheckSuite (pre * github. PullRequestEvent ) (* github.CheckSuite , error ) {
238+ func (c * Command ) EnsureCheckSuite (pre * Target ) (* github.CheckSuite , error ) {
216239 return c .getOneOfSuitesAlreadyCreatedByGitHubActions (pre )
217240}
218241
@@ -288,13 +311,13 @@ func (c *Command) logResponseAndError(suites *github.ListCheckSuiteResults, res
288311 return nil
289312}
290313
291- func (c * Command ) getOneOfSuitesAlreadyCreatedByGitHubActions (pre * github. PullRequestEvent ) (* github.CheckSuite , error ) {
314+ func (c * Command ) getOneOfSuitesAlreadyCreatedByGitHubActions (pre * Target ) (* github.CheckSuite , error ) {
292315 client , err := c .instTokenClient ()
293316 if err != nil {
294317 return nil , fmt .Errorf ("Failed to create a new installation token client: %s" , err )
295318 }
296319
297- owner , repo := pre .GetRepo (). GetOwner (). GetLogin () , pre .GetRepo (). GetName ()
320+ owner , repo := pre .Owner , pre .Repo
298321
299322 sha := pre .PullRequest .Head .GetSHA ()
300323
0 commit comments