Skip to content

Commit 660cce7

Browse files
committed
Take a URL
1 parent f22f584 commit 660cce7

File tree

2 files changed

+18
-26
lines changed

2 files changed

+18
-26
lines changed

api/queries_issue.go

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package api
22

33
import (
44
"context"
5-
"errors"
65
"fmt"
76
"time"
87

@@ -369,19 +368,7 @@ func IssueByNumber(client *Client, repo ghrepo.Interface, number int) (*Issue, e
369368
return &resp.Repository.Issue, nil
370369
}
371370

372-
func IssueClose(client *Client, repo ghrepo.Interface, issueNumber int) (alreadyClosed bool, _ error) {
373-
issue, err := IssueByNumber(client, repo, issueNumber)
374-
var idErr *IssuesDisabledError
375-
if errors.As(err, &idErr) {
376-
return false, fmt.Errorf("issues disabled for %s", ghrepo.FullName(repo))
377-
} else if err != nil {
378-
return false, fmt.Errorf("failed to find issue #%d: %w", issueNumber, err)
379-
}
380-
381-
if issue.Closed {
382-
return true, nil
383-
}
384-
371+
func IssueClose(client *Client, repo ghrepo.Interface, issue Issue) error {
385372
var mutation struct {
386373
CloseIssue struct {
387374
Issue struct {
@@ -395,11 +382,11 @@ func IssueClose(client *Client, repo ghrepo.Interface, issueNumber int) (already
395382
}
396383

397384
v4 := githubv4.NewClient(client.http)
398-
err = v4.Mutate(context.Background(), &mutation, input, nil)
385+
err := v4.Mutate(context.Background(), &mutation, input, nil)
399386

400387
if err != nil {
401-
return false, err
388+
return err
402389
}
403390

404-
return false, nil
391+
return nil
405392
}

command/issue.go

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -534,23 +534,28 @@ func issueClose(cmd *cobra.Command, args []string) error {
534534
return err
535535
}
536536

537-
issueNumber, err := strconv.Atoi(args[0])
538-
if err != nil {
539-
return fmt.Errorf("expected a number but: %w", err)
537+
issue, err := issueFromArg(apiClient, baseRepo, args[0])
538+
var idErr *api.IssuesDisabledError
539+
if errors.As(err, &idErr) {
540+
return fmt.Errorf("issues disabled for %s", ghrepo.FullName(baseRepo))
541+
} else if err != nil {
542+
return fmt.Errorf("failed to find issue #%d: %w", issue.Number, err)
543+
}
544+
545+
if issue.Closed {
546+
fmt.Fprintf(colorableErr(cmd), "%s issue #%d is already closed\n", utils.Yellow("!"), issue.Number)
547+
return nil
540548
}
541549

542-
alreadyClosed, err := api.IssueClose(apiClient, baseRepo, issueNumber)
550+
err = api.IssueClose(apiClient, baseRepo, *issue)
543551
if err != nil {
544552
return fmt.Errorf("API call failed:%w", err)
545553
}
546554

547-
if alreadyClosed {
548-
fmt.Fprintf(colorableErr(cmd), "%s issue #%d is already closed\n", utils.Yellow("!"), issueNumber)
549-
} else {
550-
fmt.Fprintf(colorableErr(cmd), "%s closed issue #%d\n", utils.Green("✔"), issueNumber)
551-
}
555+
fmt.Fprintf(colorableErr(cmd), "%s closed issue #%d\n", utils.Green("✔"), issue.Number)
552556

553557
return nil
558+
554559
}
555560

556561
func displayURL(urlStr string) string {

0 commit comments

Comments
 (0)