Skip to content

Commit fc59edf

Browse files
committed
Merge remote-tracking branch 'origin/master' into v1.0.x
2 parents 3268170 + e1e4d11 commit fc59edf

File tree

7 files changed

+157
-18
lines changed

7 files changed

+157
-18
lines changed

pkg/github/milestones.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,13 @@ func (m Milestones) Frames() data.Frames {
6666
dueAt *time.Time
6767
)
6868
if !v.ClosedAt.Time.IsZero() {
69-
closedAt = &v.ClosedAt.Time
69+
t := v.ClosedAt.Time
70+
closedAt = &t
7071
}
7172

7273
if !v.DueOn.Time.IsZero() {
73-
dueAt = &v.DueOn.Time
74+
t := v.DueOn.Time
75+
dueAt = &t
7476
}
7577

7678
frame.AppendRow(

pkg/github/milestones_test.go

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package github
33
import (
44
"context"
55
"testing"
6+
"time"
67

78
"github.com/grafana/github-datasource/pkg/models"
89
"github.com/grafana/github-datasource/pkg/testutil"
10+
"github.com/shurcooL/githubv4"
911
)
1012

1113
func TestListMilestones(t *testing.T) {
@@ -30,3 +32,85 @@ func TestListMilestones(t *testing.T) {
3032
t.Fatal(err)
3133
}
3234
}
35+
36+
func TestMilestonesDataframe(t *testing.T) {
37+
openedAt, err := time.Parse(time.RFC3339, "2020-08-25T16:21:56+00:00")
38+
if err != nil {
39+
t.Fatal(err)
40+
}
41+
42+
firstUser := User{
43+
ID: "1",
44+
Login: "testUser",
45+
Name: "Test User",
46+
Company: "ACME corp",
47+
48+
}
49+
secondUser := User{
50+
ID: "2",
51+
Login: "testUser2",
52+
Name: "Second User",
53+
Company: "ACME corp",
54+
55+
}
56+
57+
milestones := Milestones{
58+
{
59+
Closed: false,
60+
Creator: struct {
61+
User User "graphql:\"... on User\""
62+
}{
63+
User: firstUser,
64+
},
65+
DueOn: githubv4.DateTime{
66+
Time: openedAt.Add(100 * time.Hour),
67+
},
68+
ClosedAt: githubv4.DateTime{},
69+
CreatedAt: githubv4.DateTime{
70+
Time: openedAt,
71+
},
72+
State: githubv4.MilestoneStateOpen,
73+
Title: "first milestone",
74+
},
75+
{
76+
Closed: true,
77+
Creator: struct {
78+
User User "graphql:\"... on User\""
79+
}{
80+
User: secondUser,
81+
},
82+
DueOn: githubv4.DateTime{
83+
Time: openedAt.Add(100 * time.Hour),
84+
},
85+
ClosedAt: githubv4.DateTime{
86+
Time: openedAt.Add(10 * time.Hour),
87+
},
88+
CreatedAt: githubv4.DateTime{
89+
Time: openedAt,
90+
},
91+
State: githubv4.MilestoneStateClosed,
92+
Title: "seoncd milestone",
93+
},
94+
{
95+
Closed: false,
96+
Creator: struct {
97+
User User "graphql:\"... on User\""
98+
}{
99+
User: secondUser,
100+
},
101+
DueOn: githubv4.DateTime{
102+
Time: openedAt.Add(120 * time.Hour),
103+
},
104+
ClosedAt: githubv4.DateTime{},
105+
CreatedAt: githubv4.DateTime{
106+
Time: openedAt,
107+
},
108+
State: githubv4.MilestoneStateOpen,
109+
Title: "third milestone",
110+
},
111+
}
112+
113+
if err := testutil.CheckGoldenFramer("milestones", milestones); err != nil {
114+
t.Fatal(err)
115+
}
116+
}

pkg/github/pull_requests.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,21 +92,27 @@ func (p PullRequests) Frames() data.Frames {
9292
var (
9393
closedAt *time.Time
9494
mergedAt *time.Time
95-
secondsOpen float64 = time.Now().UTC().Sub(v.CreatedAt.UTC()).Seconds()
95+
secondsOpen float64 = time.Now().UTC().Sub(v.CreatedAt.UTC()).Round(time.Second).Seconds()
9696
)
9797

9898
if !v.ClosedAt.IsZero() {
99-
closedAt = &v.ClosedAt.Time
99+
t := v.ClosedAt.Time
100+
closedAt = &t
100101
}
101102

102103
if !v.MergedAt.IsZero() {
103-
mergedAt = &v.MergedAt.Time
104+
t := v.MergedAt.Time
105+
mergedAt = &t
104106
}
105107

106108
if closedAt != nil {
107109
secondsOpen = v.ClosedAt.UTC().Sub(v.CreatedAt.UTC()).Seconds()
108110
}
109111

112+
if mergedAt != nil {
113+
secondsOpen = v.ClosedAt.UTC().Sub(v.MergedAt.UTC()).Seconds()
114+
}
115+
110116
frame.AppendRow(
111117
v.Number,
112118
v.Title,

pkg/github/pull_requests_test.go

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func TestPullRequestsDataFrame(t *testing.T) {
5555
}
5656

5757
pullRequests := PullRequests{
58-
PullRequest{
58+
{
5959
Number: 1,
6060
Title: "PullRequest #1",
6161
URL: "https://github.com/grafana/github-datasource/pulls/1",
@@ -85,7 +85,7 @@ func TestPullRequestsDataFrame(t *testing.T) {
8585
Mergeable: githubv4.MergeableStateMergeable,
8686
MergedBy: nil,
8787
},
88-
PullRequest{
88+
{
8989
Number: 2,
9090
Title: "PullRequest #2",
9191
URL: "https://github.com/grafana/github-datasource/pulls/2",
@@ -117,6 +117,33 @@ func TestPullRequestsDataFrame(t *testing.T) {
117117
User: firstUser,
118118
},
119119
},
120+
{
121+
Number: 3,
122+
Title: "PullRequest #2",
123+
URL: "https://github.com/grafana/github-datasource/pulls/3",
124+
State: githubv4.PullRequestStateOpen,
125+
Author: PullRequestAuthor{
126+
User: secondUser,
127+
},
128+
Repository: Repository{
129+
NameWithOwner: "grafana/github-datasource",
130+
},
131+
Closed: false,
132+
IsDraft: false,
133+
Locked: false,
134+
Merged: false,
135+
MergedAt: githubv4.DateTime{
136+
Time: openedAt.Add(-100 * time.Minute),
137+
},
138+
ClosedAt: githubv4.DateTime{},
139+
CreatedAt: githubv4.DateTime{
140+
Time: openedAt,
141+
},
142+
UpdatedAt: githubv4.DateTime{
143+
Time: openedAt.Add(time.Hour * 2),
144+
},
145+
Mergeable: githubv4.MergeableStateMergeable,
146+
},
120147
}
121148

122149
if err := testutil.CheckGoldenFramer("pull_requests", pullRequests); err != nil {

pkg/github/releases.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ func (c Releases) Frames() data.Frames {
4242
for _, v := range c {
4343
var publishedAt *time.Time
4444
if !v.PublishedAt.IsZero() {
45-
publishedAt = &v.PublishedAt.Time
45+
t := v.PublishedAt.Time
46+
publishedAt = &t
4647
}
4748

4849
frame.AppendRow(
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
🌟 This was machine generated. Do not edit. 🌟
2+
3+
Frame[0]
4+
Name: milestones
5+
Dimensions: 7 Fields by 3 Rows
6+
+------------------+----------------+--------------+----------------+---------------------------------+---------------------------------+---------------------------------+
7+
| Name: title | Name: author | Name: closed | Name: state | Name: created_at | Name: closed_at | Name: due_at |
8+
| Labels: | Labels: | Labels: | Labels: | Labels: | Labels: | Labels: |
9+
| Type: []string | Type: []string | Type: []bool | Type: []string | Type: []time.Time | Type: []*time.Time | Type: []*time.Time |
10+
+------------------+----------------+--------------+----------------+---------------------------------+---------------------------------+---------------------------------+
11+
| first milestone | testUser | false | OPEN | 2020-08-25 16:21:56 +0000 +0000 | null | 2020-08-29 20:21:56 +0000 +0000 |
12+
| seoncd milestone | testUser2 | true | CLOSED | 2020-08-25 16:21:56 +0000 +0000 | 2020-08-26 02:21:56 +0000 +0000 | 2020-08-29 20:21:56 +0000 +0000 |
13+
| third milestone | testUser2 | false | OPEN | 2020-08-25 16:21:56 +0000 +0000 | null | 2020-08-30 16:21:56 +0000 +0000 |
14+
+------------------+----------------+--------------+----------------+---------------------------------+---------------------------------+---------------------------------+
15+
16+
17+
====== TEST DATA RESPONSE (arrow base64) ======
18+
FRAME=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

0 commit comments

Comments
 (0)