Skip to content

Commit f5eb980

Browse files
author
Andrey Slotin
committed
Read PR details from event payload
1 parent f0a61aa commit f5eb980

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

.github/workflows/spam.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,3 @@ jobs:
1010
uses: andrewslotin/rummelsnuff@master
1111
with:
1212
access_token: ${{ secrets.GITHUB_TOKEN }}
13-
pr_num: ${{ github.event.number }}
14-
forked: ${{ github.event.pull_request.head.fork }}

action.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@ inputs:
55
access_token:
66
description: "GitHub access token"
77
required: true
8-
pr_num:
9-
description: "The pull request number (from github.event.pull_request.number)"
10-
required: true
11-
forked:
12-
description: "Whether the PR is from a forked repo (from github.event.head.fork)"
13-
required: true
148
spam_label:
159
description: "Spam label text"
1610
required: false

main.go

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

33
import (
44
"context"
5+
"encoding/json"
56
"fmt"
67
"log"
78
"os"
@@ -19,6 +20,11 @@ var (
1920
ClosedState = "closed"
2021
)
2122

23+
type Event struct {
24+
Number int `json:"number"`
25+
PullRequest *github.PullRequest `json:"pull_request"`
26+
}
27+
2228
func main() {
2329
if lbl := os.Getenv("INPUT_SPAM_LABEL"); lbl != "" {
2430
SpamLabel = lbl
@@ -35,18 +41,28 @@ func main() {
3541
)
3642
tc := oauth2.NewClient(ctx, ts)
3743

38-
log.Println("INPUT_FORKED", os.Getenv("INPUT_FORKED"))
39-
4044
client := github.NewClient(tc)
4145

4246
owner, repo, err := splitRepositoryName(os.Getenv("GITHUB_REPOSITORY"))
4347
if err != nil {
4448
log.Fatalln(err)
4549
}
4650

47-
prNum, err := getPullRequestNumber(ctx, owner, repo, client)
51+
fd, err := os.Open(os.Getenv("GITHUB_EVENT_PATH"))
4852
if err != nil {
49-
log.Fatalf("could not fetch PR number: %s", err)
53+
log.Fatalf("failed to read event data: %s", err)
54+
}
55+
56+
var event Event
57+
if err := json.NewDecoder(fd).Decode(&event); err != nil {
58+
log.Fatalf("failed to decode event data: %s", err)
59+
}
60+
fd.Close()
61+
62+
prNum, forked := event.Number, event.PullRequest.Head.Repo.GetFork()
63+
if !forked {
64+
fmt.Println("the pull request is not from a forked repository")
65+
os.Exit(0)
5066
}
5167

5268
pr, _, err := client.PullRequests.Get(ctx, owner, repo, prNum)

0 commit comments

Comments
 (0)