diff --git a/in.go b/in.go index 795d7285..a358e6e4 100644 --- a/in.go +++ b/in.go @@ -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") diff --git a/in_test.go b/in_test.go index 1b2921f0..95e28cde 100644 --- a/in_test.go +++ b/in_test.go @@ -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":"user@example.com"},{"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":"user@example.com"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`, }, { description: "get supports unlocking with git crypt", @@ -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":"user@example.com"},{"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":"user@example.com"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`, }, { description: "get supports rebasing", @@ -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":"user@example.com"},{"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":"user@example.com"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`, }, { description: "get supports checkout", @@ -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":"user@example.com"},{"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":"user@example.com"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`, }, { description: "get supports git_depth", @@ -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":"user@example.com"},{"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":"user@example.com"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`, }, { description: "get supports list_changed_files", @@ -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, @@ -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":"user@example.com"},{"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":"user@example.com"},{"name":"state","value":"OPEN"},{"name":"approved_review_count","value":"0"}]`, filesString: "README.md\nOther.md\n", }, } diff --git a/models.go b/models.go index 22b6c407..bc50cbcb 100644 --- a/models.go +++ b/models.go @@ -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, } }