Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions in.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ func Get(request GetRequest, github Github, git Git, outputDir string) (*GetResp
metadata.Add("author", pull.Tip.Author.User.Login)
metadata.Add("author_email", pull.Tip.Author.Email)
metadata.Add("state", string(pull.State))
metadata.Add("approved_review_count", strconv.Itoa(pull.ApprovedReviewCount))

// Write version and metadata for reuse in PUT
path := filepath.Join(outputDir, ".git", "resource")
Expand Down
78 changes: 36 additions & 42 deletions in_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,15 @@ func TestGet(t *testing.T) {
AccessToken: "oauthtoken",
},
version: resource.Version{
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
ApprovedReviewCount: "0",
State: githubv4.PullRequestStateOpen,
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
State: githubv4.PullRequestStateOpen,
},
parameters: resource.GetParameters{GitDepth: resource.DefaultGitDepth},
pullRequest: createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen, []resource.StatusContext{}),
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"}]`,
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`,
},
{
description: "get supports unlocking with git crypt",
Expand All @@ -54,16 +53,15 @@ func TestGet(t *testing.T) {
GitCryptKey: "gitcryptkey",
},
version: resource.Version{
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
ApprovedReviewCount: "0",
State: githubv4.PullRequestStateOpen,
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
State: githubv4.PullRequestStateOpen,
},
parameters: resource.GetParameters{GitDepth: resource.DefaultGitDepth},
pullRequest: createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen, []resource.StatusContext{}),
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"}]`,
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`,
},
{
description: "get supports rebasing",
Expand All @@ -72,19 +70,18 @@ func TestGet(t *testing.T) {
AccessToken: "oauthtoken",
},
version: resource.Version{
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
ApprovedReviewCount: "0",
State: githubv4.PullRequestStateOpen,
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
State: githubv4.PullRequestStateOpen,
},
parameters: resource.GetParameters{
IntegrationTool: "rebase",
GitDepth: resource.DefaultGitDepth,
},
pullRequest: createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen, []resource.StatusContext{}),
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"}]`,
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`,
},
{
description: "get supports checkout",
Expand All @@ -93,19 +90,18 @@ func TestGet(t *testing.T) {
AccessToken: "oauthtoken",
},
version: resource.Version{
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
ApprovedReviewCount: "0",
State: githubv4.PullRequestStateOpen,
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
State: githubv4.PullRequestStateOpen,
},
parameters: resource.GetParameters{
IntegrationTool: "checkout",
GitDepth: resource.DefaultGitDepth,
},
pullRequest: createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen, []resource.StatusContext{}),
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"}]`,
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`,
},
{
description: "get supports git_depth",
Expand All @@ -114,18 +110,17 @@ func TestGet(t *testing.T) {
AccessToken: "oauthtoken",
},
version: resource.Version{
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
ApprovedReviewCount: "0",
State: githubv4.PullRequestStateOpen,
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
State: githubv4.PullRequestStateOpen,
},
parameters: resource.GetParameters{
GitDepth: 2,
},
pullRequest: createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen, []resource.StatusContext{}),
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"}]`,
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`,
},
{
description: "get supports list_changed_files",
Expand All @@ -134,11 +129,10 @@ func TestGet(t *testing.T) {
AccessToken: "oauthtoken",
},
version: resource.Version{
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
ApprovedReviewCount: "0",
State: githubv4.PullRequestStateOpen,
PR: "pr1",
Commit: "commit1",
ChangedDate: time.Time{},
State: githubv4.PullRequestStateOpen,
},
parameters: resource.GetParameters{
ListChangedFiles: true,
Expand All @@ -153,8 +147,8 @@ func TestGet(t *testing.T) {
Path: "Other.md",
},
},
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"}]`,
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","state":"OPEN"}`,
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"[email protected]"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`,
filesString: "README.md\nOther.md\n",
},
}
Expand Down
22 changes: 10 additions & 12 deletions models.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,23 +91,21 @@ type MetadataField struct {

// Version communicated with Concourse.
type Version struct {
PR string `json:"pr"`
Commit string `json:"commit"`
CommittedDate time.Time `json:"committed,omitempty"`
ChangedDate time.Time `json:"changed,omitempty"`
ApprovedReviewCount string `json:"approved_review_count"`
State githubv4.PullRequestState `json:"state"`
PR string `json:"pr"`
Commit string `json:"commit"`
CommittedDate time.Time `json:"committed,omitempty"`
ChangedDate time.Time `json:"changed,omitempty"`
State githubv4.PullRequestState `json:"state"`
}

// NewVersion constructs a new Version.
func NewVersion(p *PullRequest, changedDate time.Time) Version {
return Version{
PR: strconv.Itoa(p.Number),
Commit: p.Tip.OID,
ApprovedReviewCount: strconv.Itoa(p.ApprovedReviewCount),
State: p.State,
CommittedDate: p.Tip.CommittedDate.Time,
ChangedDate: changedDate,
PR: strconv.Itoa(p.Number),
Commit: p.Tip.OID,
State: p.State,
CommittedDate: p.Tip.CommittedDate.Time,
ChangedDate: changedDate,
}
}

Expand Down