Skip to content

Commit 7ea0f63

Browse files
address lgtm issue
1 parent 471d2bf commit 7ea0f63

3 files changed

Lines changed: 17 additions & 61 deletions

File tree

internal/githubapi/handler.go

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,23 @@ func handlePullRequestEvent(event *github.PullRequestEvent, client *github.Clien
9797
owner := event.GetRepo().GetOwner().GetLogin()
9898
repo := event.GetRepo().GetName()
9999
prNumber := event.GetPullRequest().GetNumber()
100+
sha := event.GetPullRequest().GetHead().GetSHA()
101+
102+
if minApprovals == 0 {
103+
if action == "reopened" {
104+
if err := pullrequest.AddComment(owner, repo, prNumber, ApprovalResetComment, client, logger); err != nil {
105+
logger.Error("failed to add comment", slog.String("error", err.Error()))
106+
}
107+
}
108+
if _, _, err := client.Issues.AddLabelsToIssue(ctx, owner, repo, prNumber, []string{"lgtm"}); err != nil {
109+
logger.Error("failed to add lgtm label", slog.String("error", err.Error()))
110+
return
111+
}
112+
if _, err := checkrun.CreateCheckRun(owner, repo, sha, "success", "Approved and ready for merge", client, logger); err != nil {
113+
logger.Error("failed to create check run", slog.String("error", err.Error()))
114+
}
115+
return
116+
}
100117

101118
if _, _, err := client.Issues.AddLabelsToIssue(ctx, owner, repo, prNumber, []string{"do-not-merge"}); err != nil {
102119
logger.Error("failed to add do-not-merge label", slog.String("error", err.Error()))
@@ -113,26 +130,6 @@ func handlePullRequestEvent(event *github.PullRequestEvent, client *github.Clien
113130
}
114131
}
115132

116-
sha, err := pullrequest.GetPRSHA(owner, repo, prNumber, client, logger)
117-
if err != nil {
118-
logger.Error("failed to get PR SHA", slog.String("error", err.Error()))
119-
return
120-
}
121-
122-
if minApprovals == 0 {
123-
if _, _, err := client.Issues.AddLabelsToIssue(ctx, owner, repo, prNumber, []string{"lgtm"}); err != nil {
124-
logger.Error("failed to add lgtm label", slog.String("error", err.Error()))
125-
return
126-
}
127-
if _, err := client.Issues.RemoveLabelForIssue(ctx, owner, repo, prNumber, "do-not-merge"); err != nil {
128-
logger.Warn("failed to remove do-not-merge label", slog.String("error", err.Error()))
129-
}
130-
if _, err := checkrun.CreateCheckRun(owner, repo, sha, "success", "Approved and ready for merge", client, logger); err != nil {
131-
logger.Error("failed to create check run", slog.String("error", err.Error()))
132-
}
133-
return
134-
}
135-
136133
if _, err := checkrun.CreateCheckRun(owner, repo, sha, "neutral", "Approval needed", client, logger); err != nil {
137134
logger.Error("failed to create check run", slog.String("error", err.Error()))
138135
}

internal/githubapi/pullrequest/pullrequest.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,6 @@ import (
77
"github.com/google/go-github/v71/github"
88
)
99

10-
func GetPRSHA(owner, repo string, prNumber int, client *github.Client, logger *slog.Logger) (string, error) {
11-
pr, _, err := client.PullRequests.Get(context.Background(), owner, repo, prNumber)
12-
if err != nil {
13-
logger.Error("failed to get pull request", slog.String("error", err.Error()))
14-
return "", err
15-
}
16-
return pr.GetHead().GetSHA(), nil
17-
}
18-
1910
func RemoveLabel(owner, repo string, prNumber int, label string, client *github.Client, logger *slog.Logger) error {
2011
_, err := client.Issues.RemoveLabelForIssue(context.Background(), owner, repo, prNumber, label)
2112
if err != nil {

internal/githubapi/pullrequest/pullrequest_test.go

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -17,38 +17,6 @@ func setupLogger() *slog.Logger {
1717
return slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelDebug}))
1818
}
1919

20-
func TestGetPRSHA_Success(t *testing.T) {
21-
logger := setupLogger()
22-
mockClient := github.NewClient(mock.NewMockedHTTPClient(
23-
mock.WithRequestMatch(
24-
mock.GetReposPullsByOwnerByRepoByPullNumber,
25-
github.PullRequest{
26-
Head: &github.PullRequestBranch{SHA: github.Ptr("test-sha")},
27-
},
28-
),
29-
))
30-
31-
sha, err := pullrequest.GetPRSHA("owner", "repo", 1, mockClient, logger)
32-
assert.NoError(t, err)
33-
assert.Equal(t, "test-sha", sha)
34-
}
35-
36-
func TestGetPRSHA_Failure(t *testing.T) {
37-
logger := setupLogger()
38-
mockClient := github.NewClient(mock.NewMockedHTTPClient(
39-
mock.WithRequestMatchHandler(
40-
mock.GetReposPullsByOwnerByRepoByPullNumber,
41-
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
42-
http.Error(w, "failed to get PR", http.StatusInternalServerError)
43-
}),
44-
),
45-
))
46-
47-
sha, err := pullrequest.GetPRSHA("owner", "repo", 1, mockClient, logger)
48-
assert.Error(t, err)
49-
assert.Empty(t, sha)
50-
}
51-
5220
func TestRemoveLabel_Success(t *testing.T) {
5321
logger := setupLogger()
5422
mockClient := github.NewClient(mock.NewMockedHTTPClient(

0 commit comments

Comments
 (0)