Skip to content

Commit 0ec6924

Browse files
committed
Run danger-go instead of danger-js
1 parent e034fc5 commit 0ec6924

File tree

9 files changed

+286
-113
lines changed

9 files changed

+286
-113
lines changed

.github/workflows/main.yml

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,37 @@
1-
name: "Danger JS"
1+
name: "Danger Go"
22
on: [pull_request]
33
jobs:
4-
build:
5-
name: Danger JS
4+
danger:
5+
name: Danger Go
66
runs-on: ubuntu-latest
77
steps:
88
- uses: actions/checkout@v3
9-
- name: Danger
10-
uses: danger/[email protected]
9+
10+
- uses: actions/setup-node@v3
11+
with:
12+
node-version: '14'
13+
14+
- name: Install Danger JS
15+
run: npm install -g danger
16+
17+
- uses: actions/setup-go@v3
18+
with:
19+
go-version: '^1.19'
20+
21+
- name: Install danger-go
22+
run: go install github.com/moolmanruan/danger-go/cmd/danger-go@latest
23+
24+
# - name: Install danger-go from source
25+
# run: go install github.com/moolmanruan/danger-go/cmd/danger-go
26+
27+
- name: Check versions
28+
run: |
29+
go version
30+
danger-go -V
31+
danger -V
32+
33+
- name: Run danger-go ci
34+
run: danger-go ci
35+
working-directory: ./build/ci
1136
env:
1237
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

build/ci/dangerfile.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@ func Run(pr danger_js.PR) runner.DangerResults {
1414
Warnings: []runner.Violation{},
1515
Markdowns: []runner.Violation{},
1616
}
17-
resp.Messages = append(resp.Messages, runner.Violation{
18-
Message: fmt.Sprintf("%d new files added!", len(pr.Danger.Git.CreateFiles)),
19-
})
17+
addMessage := func(text string) {
18+
resp.Messages = append(resp.Messages, runner.Violation{Message: text})
19+
}
20+
21+
addMessage(fmt.Sprintf("%d new files added!", len(pr.Danger.Git.CreateFiles)))
22+
addMessage(fmt.Sprintf("%d files modified!", len(pr.Danger.Git.ModifiedFiles)))
2023
return resp
2124
}

cmd/danger-go/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"os"
99
)
1010

11-
const version = "v0.0.1"
11+
const version = "v0.0.2"
1212

1313
// main entrypoint of the danger-go command
1414
func main() {

cmd/danger-go/runner/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@ func Run() {
3535
log.Fatalf("failed to read JSON file at %s", jsonPath)
3636
}
3737

38+
//TODO: Figure out why ci doesn't work, but pr and local does?
3839
var pr danger_js.PR
3940
err = json.Unmarshal(prJSON, &pr)
4041
if err != nil {
42+
fmt.Println("JSON\n", string(prJSON))
4143
log.Fatalf("failed to unmarshal PR JSON: %s", err.Error())
4244
}
4345

danger-js/types.go

Lines changed: 0 additions & 47 deletions
This file was deleted.

danger-js/types_commit.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package danger_js
2+
3+
type GitCommit struct {
4+
SHA string `json:"sha"`
5+
Author GitCommitAuthor `json:"author"`
6+
Committer GitCommitAuthor `json:"committer"`
7+
Message string `json:"message"`
8+
Tree any `json:"tree"`
9+
Parents []string `json:"parents,omitempty"`
10+
URL string `json:"url"`
11+
}
12+
13+
type GitCommitAuthor struct {
14+
Name string `json:"name"`
15+
Email string `json:"email"`
16+
Date string `json:"date"`
17+
}

danger-js/types_danger.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package danger_js
2+
3+
type PR struct {
4+
Danger struct {
5+
Git Git `json:"git"`
6+
GitHub GitHub `json:"github,omitempty"`
7+
GitLab GitLab `json:"gitlab,omitempty"`
8+
// TODO: bitbucket_server
9+
// TODO: bitbucket_cloud
10+
Settings Settings `json:"settings"`
11+
} `json:"danger"`
12+
}
13+
14+
type FilePath = string
15+
16+
type Git struct {
17+
ModifiedFiles []FilePath `json:"modified_files"`
18+
CreateFiles []FilePath `json:"created_files"`
19+
DeletedFiles []FilePath `json:"deleted_files"`
20+
Commits []GitCommit `json:"commits"`
21+
}
22+
23+
type Settings struct {
24+
GitHub struct {
25+
AccessToken string `json:"accessToken"`
26+
BaseURL string `json:"baseURL"`
27+
AdditionalHeaders any `json:"additionalHeaders"`
28+
} `json:"github"`
29+
CLIArgs CLIArgs `json:"cliArgs"`
30+
}
31+
32+
type CLIArgs struct {
33+
Base string `json:"base"`
34+
Verbose string `json:"verbose"`
35+
ExternalCIProvider string `json:"externalCiProvider"`
36+
TextOnly bool `json:"textOnly"` // JS has this as string
37+
Dangerfile string `json:"dangerfile"`
38+
ID string `json:"id"`
39+
Staging bool `json:"staging"`
40+
}

danger-js/types_github.go

Lines changed: 44 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,16 @@ package danger_js
33
import "time"
44

55
type GitHub struct {
6-
Issue GitHubIssue `json:"issue"`
7-
PR GitHubPR `json:"pr"`
8-
Commits []GitHubCommit `json:"commits"`
9-
Reviews []GitHubReview `json:"reviews"`
10-
RequestedReviewers GitHubRequestedReviewers `json:"requested_reviewers"`
11-
ThisPR GitHubThisPR `json:"thisPR"` // Note: Not include in danger-kotlin
6+
Issue GitHubIssue `json:"issue"`
7+
PR GitHubPR `json:"pr"`
8+
ThisPR GitHubAPIPR `json:"thisPR"`
9+
Commits []GitHubCommit `json:"commits"`
10+
Reviews []GitHubReview `json:"reviews"`
11+
RequestedReviewers GitHubReviewers `json:"requested_reviewers"`
1212
}
1313

1414
type GitHubIssue struct {
15-
ID int64 `json:"id"`
16-
Number int64 `json:"number"`
17-
Title string `json:"title"`
18-
User GitHubUser `json:"user"`
19-
State string `json:"state"` // "closed" | "open" | "locked"
20-
Locked bool `json:"locked"`
21-
Body string `json:"body,omitempty"`
22-
CommentCount int `json:"comments"`
23-
Assignee GitHubUser `json:"assignee,omitempty"`
24-
Assignees []GitHubUser `json:"assignees"`
25-
Milestone GitHubMilestone `json:"milestone"`
26-
CreatedAt time.Time `json:"created_at"`
27-
UpdatedAt time.Time `json:"updated_at"`
28-
ClosedAt time.Time `json:"closed_at"`
29-
Labels []GitHubIssueLabel `json:"labels"`
15+
Labels []GitHubIssueLabel `json:"labels"`
3016
}
3117

3218
type GitHubIssueLabel struct {
@@ -41,33 +27,34 @@ type GitHubUser struct {
4127
Login string `json:"login"`
4228
Type string `json:"type"` // "User" | "Organization" | "Bot"
4329
AvatarURL string `json:"avatar_url"`
30+
HRef string `json:"href"`
4431
}
4532

4633
type GitHubPR struct {
47-
ID int64 `json:"id"`
48-
Number int `json:"number"`
49-
Title string `json:"title"`
50-
Body string `json:"body"`
51-
User GitHubUser `json:"user"`
52-
Assignee GitHubUser `json:"assignee"`
53-
Assignees []GitHubUser `json:"assignees"`
54-
CreatedAt time.Time `json:"created_at"`
55-
UpdatedAt time.Time `json:"updated_at"`
56-
ClosedAt time.Time `json:"closed_at,omitempty"`
57-
MergedAt time.Time `json:"merged_at,omitempty"`
58-
Head GitHubMergeRef `json:"head"`
59-
Base GitHubMergeRef `json:"base"`
60-
State string `json:"state"` // "closed" | "open" | "merged" | "locked"
61-
Locked bool `json:"locked"`
62-
Merged bool `json:"merged"`
63-
CommitCount int `json:"commits"`
64-
CommentCount int `json:"comments"`
65-
ReviewCommentCount int `json:"review_comments"`
66-
Additions int `json:"additions"`
67-
Deletions int `json:"deletions"`
68-
ChangedFiles int `json:"changed_files"`
69-
Milestone GitHubMilestone `json:"milestone"`
70-
HTMLURL string `json:"html_url"`
34+
Number int `json:"number"`
35+
State string `json:"state"` // "closed" | "open" | "merged" | "locked"
36+
Locked bool `json:"locked"`
37+
Title string `json:"title"`
38+
Body string `json:"body"`
39+
CreatedAt time.Time `json:"created_at"`
40+
UpdatedAt time.Time `json:"updated_at"`
41+
ClosedAt time.Time `json:"closed_at,omitempty"`
42+
MergedAt time.Time `json:"merged_at,omitempty"`
43+
Head GitHubMergeRef `json:"head"`
44+
Base GitHubMergeRef `json:"base"`
45+
User GitHubUser `json:"user"`
46+
Assignee GitHubUser `json:"assignee"`
47+
Assignees []GitHubUser `json:"assignees"`
48+
Draft bool `json:"draft"`
49+
Merged bool `json:"merged"`
50+
Comments int `json:"comments"`
51+
ReviewComments int `json:"review_comments"`
52+
Commits int `json:"commits"`
53+
Additions int `json:"additions"`
54+
Deletions int `json:"deletions"`
55+
ChangedFiles int `json:"changed_files"`
56+
HTMLURL string `json:"html_url"`
57+
AuthorAssociation string `json:"author_association"` // "COLLABORATOR", "CONTRIBUTOR", "FIRST_TIMER", "FIRST_TIME_CONTRIBUTOR", "MEMBER", "NONE", "OWNER"
7158
}
7259
type GitHubMergeRef struct {
7360
Label string `json:"label"`
@@ -88,24 +75,25 @@ type GitHubRepo struct {
8875
}
8976

9077
type GitHubCommit struct {
78+
Commit GitCommit `json:"commit"`
9179
SHA string `json:"sha"`
9280
URL string `json:"url"`
9381
Author GitHubUser `json:"author"`
94-
Commit Commit `json:"commit"` // Should we create a custom Commit struct?
9582
Committer GitHubUser `json:"committer"`
83+
Parents []any `json:"parents"`
9684
}
9785

9886
type GitHubReview struct {
9987
User GitHubUser `json:"user"`
100-
ID int64 `json:"id"`
101-
Body string `json:"body"`
102-
CommitID string `json:"commit_id"`
103-
State string `json:"state"` // APPROVED | CHANGES_REQUESTED | COMMENTED | PENDING | DISMISSED
88+
ID int64 `json:"id,omitempty"`
89+
Body string `json:"body,omitempty"`
90+
CommitID string `json:"commit_id,omitempty"`
91+
State string `json:"state,omitempty"` // APPROVED | CHANGES_REQUESTED | COMMENTED | PENDING | DISMISSED
10492
}
10593

106-
type GitHubRequestedReviewers struct {
107-
Users []string `json:"users"`
108-
Teams []string `json:"teams"`
94+
type GitHubReviewers struct {
95+
Users []GitHubUser `json:"users"`
96+
Teams []any `json:"teams"`
10997
}
11098

11199
type GitHubMilestone struct {
@@ -123,8 +111,8 @@ type GitHubMilestone struct {
123111
DueOn time.Time `json:"due_on"`
124112
}
125113

126-
type GitHubThisPR struct {
127-
Number int `json:"number"`
128-
Repo string `json:"repo"`
114+
type GitHubAPIPR struct {
129115
Owner string `json:"owner"`
116+
Repo string `json:"repo"`
117+
Number int `json:"number"`
130118
}

0 commit comments

Comments
 (0)