added VCR and specs for original fetcher
This commit is contained in:
parent
4ecb21c0b0
commit
e494fc004e
1
Gemfile
1
Gemfile
|
@ -11,6 +11,7 @@ group :development, :test do
|
|||
end
|
||||
|
||||
group :test do
|
||||
gem "vcr"
|
||||
gem "coveralls", "~>0.8", require: false
|
||||
gem "simplecov", "~>0.10", require: false
|
||||
gem "codeclimate-test-reporter", "~>0.4"
|
||||
|
|
|
@ -109,6 +109,7 @@ GEM
|
|||
tzinfo (1.2.2)
|
||||
thread_safe (~> 0.1)
|
||||
unicode-display_width (1.1.1)
|
||||
vcr (3.0.1)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
@ -124,6 +125,7 @@ DEPENDENCIES
|
|||
rspec (< 4)
|
||||
rubocop (>= 0.43)
|
||||
simplecov (~> 0.10)
|
||||
vcr
|
||||
|
||||
BUNDLED WITH
|
||||
1.13.1
|
||||
|
|
|
@ -220,7 +220,7 @@ Make sure, that you push tags to remote repo via 'git push --tags'"
|
|||
# Fetch commit for specified event
|
||||
# @return [Hash]
|
||||
def fetch_commit(event)
|
||||
@github.git_data.commits.get @options[:user], @options[:project], event[:commit_id]
|
||||
@github.git_data.commits.get @options[:user], @options[:project], event['commit_id']
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
require "codeclimate-test-reporter"
|
||||
require "simplecov"
|
||||
require "coveralls"
|
||||
require "vcr"
|
||||
|
||||
# This module is only used to check the environment is currently a testing env
|
||||
module SpecHelper
|
||||
|
@ -34,6 +35,15 @@ SimpleCov.start
|
|||
require "github_changelog_generator"
|
||||
require "github_changelog_generator/task"
|
||||
|
||||
|
||||
VCR.configure do |c|
|
||||
c.allow_http_connections_when_no_cassette = true
|
||||
c.cassette_library_dir = 'spec/vcr'
|
||||
c.ignore_localhost = true
|
||||
c.default_cassette_options = { :record => :new_episodes }
|
||||
c.hook_into :faraday
|
||||
end
|
||||
|
||||
RSpec.configure do |config|
|
||||
config.expect_with :rspec do |expectations|
|
||||
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
||||
|
@ -53,4 +63,8 @@ RSpec.configure do |config|
|
|||
config.order = :random
|
||||
|
||||
Kernel.srand config.seed
|
||||
|
||||
config.extend VCR::RSpec::Macros
|
||||
|
||||
end
|
||||
|
||||
|
|
|
@ -2,59 +2,230 @@
|
|||
VALID_TOKEN = "0123456789abcdef"
|
||||
INVALID_TOKEN = "0000000000000000"
|
||||
|
||||
DEFAULT_OPTIONS = { user: "skywinder",
|
||||
project: "changelog_test" }
|
||||
|
||||
def options_with_invalid_token
|
||||
options = DEFAULT_OPTIONS
|
||||
options[:token] = INVALID_TOKEN
|
||||
options
|
||||
end
|
||||
|
||||
describe GitHubChangelogGenerator::Fetcher do
|
||||
before(:all) do
|
||||
@fetcher = GitHubChangelogGenerator::Fetcher.new
|
||||
let(:options) do
|
||||
{
|
||||
:user => "skywinder",
|
||||
:project => "changelog_test",
|
||||
}
|
||||
end
|
||||
|
||||
let(:fetcher) { GitHubChangelogGenerator::Fetcher.new(options) }
|
||||
|
||||
|
||||
describe "#fetch_github_token" do
|
||||
token = GitHubChangelogGenerator::Fetcher::CHANGELOG_GITHUB_TOKEN
|
||||
context "when token in ENV exist" do
|
||||
before { stub_const("ENV", ENV.to_hash.merge(token => VALID_TOKEN)) }
|
||||
subject { @fetcher.fetch_github_token }
|
||||
subject { fetcher.fetch_github_token }
|
||||
it { is_expected.to eq(VALID_TOKEN) }
|
||||
end
|
||||
|
||||
context "when token in ENV is nil" do
|
||||
before { stub_const("ENV", ENV.to_hash.merge(token => nil)) }
|
||||
subject { @fetcher.fetch_github_token }
|
||||
subject { fetcher.fetch_github_token }
|
||||
it { is_expected.to be_nil }
|
||||
end
|
||||
|
||||
context "when token in options and ENV is nil" do
|
||||
let(:options) { { :token => VALID_TOKEN } }
|
||||
|
||||
before do
|
||||
stub_const("ENV", ENV.to_hash.merge(token => nil))
|
||||
@fetcher = GitHubChangelogGenerator::Fetcher.new(token: VALID_TOKEN)
|
||||
end
|
||||
subject { @fetcher.fetch_github_token }
|
||||
|
||||
subject { fetcher.fetch_github_token }
|
||||
it { is_expected.to eq(VALID_TOKEN) }
|
||||
end
|
||||
|
||||
context "when token in options and ENV specified" do
|
||||
let(:options) { { :token => VALID_TOKEN } }
|
||||
|
||||
before do
|
||||
stub_const("ENV", ENV.to_hash.merge(token => "no_matter_what"))
|
||||
@fetcher = GitHubChangelogGenerator::Fetcher.new(token: VALID_TOKEN)
|
||||
end
|
||||
subject { @fetcher.fetch_github_token }
|
||||
|
||||
subject { fetcher.fetch_github_token }
|
||||
it { is_expected.to eq(VALID_TOKEN) }
|
||||
end
|
||||
end
|
||||
|
||||
describe "#get_all_tags" do
|
||||
context "when github_fetch_tags returns tags" do
|
||||
it "returns tags" do
|
||||
mock_tags = ['tag']
|
||||
allow(fetcher).to receive(:github_fetch_tags).and_return(mock_tags)
|
||||
expect(fetcher.get_all_tags).to eq(mock_tags)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "#github_fetch_tags" do
|
||||
context "when wrong token provided" do
|
||||
before do
|
||||
options = options_with_invalid_token
|
||||
@fetcher = GitHubChangelogGenerator::Fetcher.new(options)
|
||||
use_vcr_cassette
|
||||
|
||||
let(:options) do
|
||||
{
|
||||
:user => "skywinder",
|
||||
:project => "changelog_test",
|
||||
:token => INVALID_TOKEN
|
||||
}
|
||||
end
|
||||
|
||||
it "should raise Unauthorized error" do
|
||||
expect { @fetcher.github_fetch_tags }.to raise_error Github::Error::Unauthorized
|
||||
expect { fetcher.github_fetch_tags }.to raise_error Github::Error::Unauthorized
|
||||
end
|
||||
end
|
||||
|
||||
context "when API call is valid" do
|
||||
use_vcr_cassette
|
||||
|
||||
it "should return tags" do
|
||||
expected_tags = [{"name"=>"v0.0.3", "zipball_url"=>"https://api.github.com/repos/skywinder/changelog_test/zipball/v0.0.3", "tarball_url"=>"https://api.github.com/repos/skywinder/changelog_test/tarball/v0.0.3", "commit"=>{"sha"=>"a0cba2b1a1ea9011ab07ee1ac140ba5a5eb8bd90", "url"=>"https://api.github.com/repos/skywinder/changelog_test/commits/a0cba2b1a1ea9011ab07ee1ac140ba5a5eb8bd90"}}, {"name"=>"v0.0.2", "zipball_url"=>"https://api.github.com/repos/skywinder/changelog_test/zipball/v0.0.2", "tarball_url"=>"https://api.github.com/repos/skywinder/changelog_test/tarball/v0.0.2", "commit"=>{"sha"=>"9b35bb13dcd15b68e7bcbf10cde5eb937a54f710", "url"=>"https://api.github.com/repos/skywinder/changelog_test/commits/9b35bb13dcd15b68e7bcbf10cde5eb937a54f710"}}, {"name"=>"v0.0.1", "zipball_url"=>"https://api.github.com/repos/skywinder/changelog_test/zipball/v0.0.1", "tarball_url"=>"https://api.github.com/repos/skywinder/changelog_test/tarball/v0.0.1", "commit"=>{"sha"=>"4c2d6d1ed58bdb24b870dcb5d9f2ceed0283d69d", "url"=>"https://api.github.com/repos/skywinder/changelog_test/commits/4c2d6d1ed58bdb24b870dcb5d9f2ceed0283d69d"}}, {"name"=>"0.0.4", "zipball_url"=>"https://api.github.com/repos/skywinder/changelog_test/zipball/0.0.4", "tarball_url"=>"https://api.github.com/repos/skywinder/changelog_test/tarball/0.0.4", "commit"=>{"sha"=>"ece0c3ab7142b21064b885061c55ede00ef6ce94", "url"=>"https://api.github.com/repos/skywinder/changelog_test/commits/ece0c3ab7142b21064b885061c55ede00ef6ce94"}}]
|
||||
|
||||
expect(fetcher.github_fetch_tags).to eq(expected_tags)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
describe "#fetch_closed_issues_and_pr" do
|
||||
context "when API call is valid" do
|
||||
use_vcr_cassette
|
||||
|
||||
|
||||
it "returns issues" do
|
||||
issues, pull_requests = fetcher.fetch_closed_issues_and_pr
|
||||
expect(issues.size).to eq(7)
|
||||
expect(pull_requests.size).to eq(14)
|
||||
end
|
||||
|
||||
it "returns issue with proper key/values" do
|
||||
issues, pull_requests = fetcher.fetch_closed_issues_and_pr
|
||||
expected_issue = {"url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/14", "repository_url"=>"https://api.github.com/repos/skywinder/changelog_test", "labels_url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/14/labels{/name}", "comments_url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/14/comments", "events_url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/14/events", "html_url"=>"https://github.com/skywinder/changelog_test/issues/14", "id"=>95419412, "number"=>14, "title"=>"Issue closed from commit from PR", "user"=>{"login"=>"skywinder", "id"=>3356474, "avatar_url"=>"https://avatars.githubusercontent.com/u/3356474?v=3", "gravatar_id"=>"", "url"=>"https://api.github.com/users/skywinder", "html_url"=>"https://github.com/skywinder", "followers_url"=>"https://api.github.com/users/skywinder/followers", "following_url"=>"https://api.github.com/users/skywinder/following{/other_user}", "gists_url"=>"https://api.github.com/users/skywinder/gists{/gist_id}", "starred_url"=>"https://api.github.com/users/skywinder/starred{/owner}{/repo}", "subscriptions_url"=>"https://api.github.com/users/skywinder/subscriptions", "organizations_url"=>"https://api.github.com/users/skywinder/orgs", "repos_url"=>"https://api.github.com/users/skywinder/repos", "events_url"=>"https://api.github.com/users/skywinder/events{/privacy}", "received_events_url"=>"https://api.github.com/users/skywinder/received_events", "type"=>"User", "site_admin"=>false}, "labels"=>[], "state"=>"closed", "locked"=>false, "assignee"=>nil, "milestone"=>nil, "comments"=>0, "created_at"=>"2015-07-16T12:06:08Z", "updated_at"=>"2015-07-16T12:21:42Z", "closed_at"=>"2015-07-16T12:21:42Z", "body"=>""}
|
||||
expect(issues.first).to eq(expected_issue)
|
||||
end
|
||||
|
||||
it "returns pull request with proper key/values" do
|
||||
issues, pull_requests = fetcher.fetch_closed_issues_and_pr
|
||||
expected_pr = {"url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/21", "repository_url"=>"https://api.github.com/repos/skywinder/changelog_test", "labels_url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/21/labels{/name}", "comments_url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/21/comments", "events_url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/21/events", "html_url"=>"https://github.com/skywinder/changelog_test/pull/21", "id"=>124925759, "number"=>21, "title"=>"Merged br (should appear in change log with #20)", "user"=>{"login"=>"skywinder", "id"=>3356474, "avatar_url"=>"https://avatars.githubusercontent.com/u/3356474?v=3", "gravatar_id"=>"", "url"=>"https://api.github.com/users/skywinder", "html_url"=>"https://github.com/skywinder", "followers_url"=>"https://api.github.com/users/skywinder/followers", "following_url"=>"https://api.github.com/users/skywinder/following{/other_user}", "gists_url"=>"https://api.github.com/users/skywinder/gists{/gist_id}", "starred_url"=>"https://api.github.com/users/skywinder/starred{/owner}{/repo}", "subscriptions_url"=>"https://api.github.com/users/skywinder/subscriptions", "organizations_url"=>"https://api.github.com/users/skywinder/orgs", "repos_url"=>"https://api.github.com/users/skywinder/repos", "events_url"=>"https://api.github.com/users/skywinder/events{/privacy}", "received_events_url"=>"https://api.github.com/users/skywinder/received_events", "type"=>"User", "site_admin"=>false}, "labels"=>[], "state"=>"closed", "locked"=>false, "assignee"=>nil, "milestone"=>nil, "comments"=>0, "created_at"=>"2016-01-05T09:24:08Z", "updated_at"=>"2016-01-05T09:26:53Z", "closed_at"=>"2016-01-05T09:24:27Z", "pull_request"=>{"url"=>"https://api.github.com/repos/skywinder/changelog_test/pulls/21", "html_url"=>"https://github.com/skywinder/changelog_test/pull/21", "diff_url"=>"https://github.com/skywinder/changelog_test/pull/21.diff", "patch_url"=>"https://github.com/skywinder/changelog_test/pull/21.patch"}, "body"=>"to test https://github.com/skywinder/github-changelog-generator/pull/305\r\nshould appear in change log with #20"}
|
||||
expect(pull_requests.first).to eq(expected_pr)
|
||||
end
|
||||
|
||||
|
||||
it "returns issues with labels" do
|
||||
issues, pull_requests = fetcher.fetch_closed_issues_and_pr
|
||||
expected = [[], [], ["Bug"], [], ["enhancement"], ["some label"], []]
|
||||
expect(issues.map{|i| i.labels.map(&:name) }).to eq(expected)
|
||||
end
|
||||
|
||||
it "returns pull_requests with labels" do
|
||||
issues, pull_requests = fetcher.fetch_closed_issues_and_pr
|
||||
expected = [[], [], [], [], [], ["enhancement"], [], [], ["invalid"], [], [], [], [], ["invalid"]]
|
||||
expect(pull_requests.map{|i| i.labels.map(&:name) }).to eq(expected)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "#fetch_closed_pull_requests" do
|
||||
context "when API call is valid" do
|
||||
use_vcr_cassette
|
||||
|
||||
it "returns pull requests" do
|
||||
pull_requests = fetcher.fetch_closed_pull_requests
|
||||
expect(pull_requests.size).to eq(14)
|
||||
end
|
||||
|
||||
it "returns correct pull request keys" do
|
||||
pull_requests = fetcher.fetch_closed_pull_requests
|
||||
|
||||
pr = pull_requests.first
|
||||
expect(pr.keys).to eq(["url", "id", "html_url", "diff_url", "patch_url", "issue_url", "number", "state", "locked", "title", "user", "body", "created_at", "updated_at", "closed_at", "merged_at", "merge_commit_sha", "assignee", "milestone", "commits_url", "review_comments_url", "review_comment_url", "comments_url", "statuses_url", "head", "base", "_links"])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
describe "#fetch_events_async" do
|
||||
context "when API call is valid" do
|
||||
use_vcr_cassette
|
||||
|
||||
it "populates issues" do
|
||||
issues = [{"url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/14", "repository_url"=>"https://api.github.com/repos/skywinder/changelog_test", "labels_url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/14/labels{/name}", "comments_url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/14/comments", "events_url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/14/events", "html_url"=>"https://github.com/skywinder/changelog_test/issues/14", "id"=>95419412, "number"=>14, "title"=>"Issue closed from commit from PR", "user"=>{"login"=>"skywinder", "id"=>3356474, "avatar_url"=>"https://avatars.githubusercontent.com/u/3356474?v=3", "gravatar_id"=>"", "url"=>"https://api.github.com/users/skywinder", "html_url"=>"https://github.com/skywinder", "followers_url"=>"https://api.github.com/users/skywinder/followers", "following_url"=>"https://api.github.com/users/skywinder/following{/other_user}", "gists_url"=>"https://api.github.com/users/skywinder/gists{/gist_id}", "starred_url"=>"https://api.github.com/users/skywinder/starred{/owner}{/repo}", "subscriptions_url"=>"https://api.github.com/users/skywinder/subscriptions", "organizations_url"=>"https://api.github.com/users/skywinder/orgs", "repos_url"=>"https://api.github.com/users/skywinder/repos", "events_url"=>"https://api.github.com/users/skywinder/events{/privacy}", "received_events_url"=>"https://api.github.com/users/skywinder/received_events", "type"=>"User", "site_admin"=>false}, "labels"=>[], "state"=>"closed", "locked"=>false, "assignee"=>nil, "milestone"=>nil, "comments"=>0, "created_at"=>"2015-07-16T12:06:08Z", "updated_at"=>"2015-07-16T12:21:42Z", "closed_at"=>"2015-07-16T12:21:42Z", "body"=>""}]
|
||||
|
||||
# Check that they are blank to begin with
|
||||
expect(issues.first[:events]).to be_nil
|
||||
|
||||
fetcher.fetch_events_async(issues)
|
||||
issue_events = issues.first[:events]
|
||||
|
||||
expected_events = [{"id"=>357462189, "url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/events/357462189", "actor"=>{"login"=>"skywinder", "id"=>3356474, "avatar_url"=>"https://avatars.githubusercontent.com/u/3356474?v=3", "gravatar_id"=>"", "url"=>"https://api.github.com/users/skywinder", "html_url"=>"https://github.com/skywinder", "followers_url"=>"https://api.github.com/users/skywinder/followers", "following_url"=>"https://api.github.com/users/skywinder/following{/other_user}", "gists_url"=>"https://api.github.com/users/skywinder/gists{/gist_id}", "starred_url"=>"https://api.github.com/users/skywinder/starred{/owner}{/repo}", "subscriptions_url"=>"https://api.github.com/users/skywinder/subscriptions", "organizations_url"=>"https://api.github.com/users/skywinder/orgs", "repos_url"=>"https://api.github.com/users/skywinder/repos", "events_url"=>"https://api.github.com/users/skywinder/events{/privacy}", "received_events_url"=>"https://api.github.com/users/skywinder/received_events", "type"=>"User", "site_admin"=>false}, "event"=>"referenced", "commit_id"=>"decfe840d1a1b86e0c28700de5362d3365a29555", "commit_url"=>"https://api.github.com/repos/skywinder/changelog_test/commits/decfe840d1a1b86e0c28700de5362d3365a29555", "created_at"=>"2015-07-16T12:21:16Z"}, {"id"=>357462542, "url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/events/357462542", "actor"=>{"login"=>"skywinder", "id"=>3356474, "avatar_url"=>"https://avatars.githubusercontent.com/u/3356474?v=3", "gravatar_id"=>"", "url"=>"https://api.github.com/users/skywinder", "html_url"=>"https://github.com/skywinder", "followers_url"=>"https://api.github.com/users/skywinder/followers", "following_url"=>"https://api.github.com/users/skywinder/following{/other_user}", "gists_url"=>"https://api.github.com/users/skywinder/gists{/gist_id}", "starred_url"=>"https://api.github.com/users/skywinder/starred{/owner}{/repo}", "subscriptions_url"=>"https://api.github.com/users/skywinder/subscriptions", "organizations_url"=>"https://api.github.com/users/skywinder/orgs", "repos_url"=>"https://api.github.com/users/skywinder/repos", "events_url"=>"https://api.github.com/users/skywinder/events{/privacy}", "received_events_url"=>"https://api.github.com/users/skywinder/received_events", "type"=>"User", "site_admin"=>false}, "event"=>"closed", "commit_id"=>"decfe840d1a1b86e0c28700de5362d3365a29555", "commit_url"=>"https://api.github.com/repos/skywinder/changelog_test/commits/decfe840d1a1b86e0c28700de5362d3365a29555", "created_at"=>"2015-07-16T12:21:42Z"}]
|
||||
expect(issue_events).to eq(expected_events)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
describe "#fetch_date_of_tag" do
|
||||
context "when API call is valid" do
|
||||
use_vcr_cassette
|
||||
|
||||
it "returns date" do
|
||||
tag = {"name"=>"v0.0.3", "zipball_url"=>"https://api.github.com/repos/skywinder/changelog_test/zipball/v0.0.3", "tarball_url"=>"https://api.github.com/repos/skywinder/changelog_test/tarball/v0.0.3", "commit"=>{"sha"=>"a0cba2b1a1ea9011ab07ee1ac140ba5a5eb8bd90", "url"=>"https://api.github.com/repos/skywinder/changelog_test/commits/a0cba2b1a1ea9011ab07ee1ac140ba5a5eb8bd90"}}
|
||||
dt = fetcher.fetch_date_of_tag(tag)
|
||||
expect(dt).to eq(Time.parse("2015-03-04 19:01:48 UTC"))
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
describe "#fetch_commit" do
|
||||
context "when API call is valid" do
|
||||
use_vcr_cassette
|
||||
|
||||
it "returns commit" do
|
||||
event = {"id"=>357462189, "url"=>"https://api.github.com/repos/skywinder/changelog_test/issues/events/357462189", "actor"=>{"login"=>"skywinder", "id"=>3356474, "avatar_url"=>"https://avatars.githubusercontent.com/u/3356474?v=3", "gravatar_id"=>"", "url"=>"https://api.github.com/users/skywinder", "html_url"=>"https://github.com/skywinder", "followers_url"=>"https://api.github.com/users/skywinder/followers", "following_url"=>"https://api.github.com/users/skywinder/following{/other_user}", "gists_url"=>"https://api.github.com/users/skywinder/gists{/gist_id}", "starred_url"=>"https://api.github.com/users/skywinder/starred{/owner}{/repo}", "subscriptions_url"=>"https://api.github.com/users/skywinder/subscriptions", "organizations_url"=>"https://api.github.com/users/skywinder/orgs", "repos_url"=>"https://api.github.com/users/skywinder/repos", "events_url"=>"https://api.github.com/users/skywinder/events{/privacy}", "received_events_url"=>"https://api.github.com/users/skywinder/received_events", "type"=>"User", "site_admin"=>false}, "event"=>"referenced", "commit_id"=>"decfe840d1a1b86e0c28700de5362d3365a29555", "commit_url"=>"https://api.github.com/repos/skywinder/changelog_test/commits/decfe840d1a1b86e0c28700de5362d3365a29555", "created_at"=>"2015-07-16T12:21:16Z"}
|
||||
commit = fetcher.fetch_commit(event)
|
||||
|
||||
expectations = [
|
||||
["sha", "decfe840d1a1b86e0c28700de5362d3365a29555"],
|
||||
["url",
|
||||
"https://api.github.com/repos/skywinder/changelog_test/git/commits/decfe840d1a1b86e0c28700de5362d3365a29555"],
|
||||
["html_url",
|
||||
"https://github.com/skywinder/changelog_test/commit/decfe840d1a1b86e0c28700de5362d3365a29555"],
|
||||
["author",
|
||||
{"name"=>"Petr Korolev",
|
||||
"email"=>"sky4winder@gmail.com",
|
||||
"date"=>"2015-07-16T12:11:01Z"}],
|
||||
["committer",
|
||||
{"name"=>"Petr Korolev",
|
||||
"email"=>"sky4winder@gmail.com",
|
||||
"date"=>"2015-07-16T12:11:01Z"}],
|
||||
["tree",
|
||||
{"sha"=>"0699c15258a7c2b2e157051fe19851d4f705cac8",
|
||||
"url"=>
|
||||
"https://api.github.com/repos/skywinder/changelog_test/git/trees/0699c15258a7c2b2e157051fe19851d4f705cac8"}],
|
||||
["message", "fix #14"],
|
||||
["parents",
|
||||
[{"sha"=>"7ec095e5e3caceacedabf44d0b9b10da17c92e51",
|
||||
"url"=>
|
||||
"https://api.github.com/repos/skywinder/changelog_test/git/commits/7ec095e5e3caceacedabf44d0b9b10da17c92e51",
|
||||
"html_url"=>
|
||||
"https://github.com/skywinder/changelog_test/commit/7ec095e5e3caceacedabf44d0b9b10da17c92e51"}]
|
||||
]
|
||||
]
|
||||
|
||||
expectations.each do |property, val|
|
||||
expect(commit.send(property)).to eq(val)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,76 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api.github.com/repos/skywinder/changelog_test/git/commits/decfe840d1a1b86e0c28700de5362d3365a29555
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- application/vnd.github.v3+json,application/vnd.github.beta+json;q=0.5,application/json;q=0.1
|
||||
Accept-Charset:
|
||||
- utf-8
|
||||
User-Agent:
|
||||
- Github API Ruby Gem 0.13.1
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message:
|
||||
headers:
|
||||
server:
|
||||
- GitHub.com
|
||||
date:
|
||||
- Thu, 19 May 2016 19:00:27 GMT
|
||||
content-type:
|
||||
- application/json; charset=utf-8
|
||||
transfer-encoding:
|
||||
- chunked
|
||||
connection:
|
||||
- close
|
||||
status:
|
||||
- 200 OK
|
||||
x-ratelimit-limit:
|
||||
- '60'
|
||||
x-ratelimit-remaining:
|
||||
- '43'
|
||||
x-ratelimit-reset:
|
||||
- '1463684440'
|
||||
cache-control:
|
||||
- public, max-age=60, s-maxage=60
|
||||
vary:
|
||||
- Accept, Accept-Encoding
|
||||
etag:
|
||||
- W/"391047306d50dcb964a83bc94e45c33d"
|
||||
last-modified:
|
||||
- Thu, 16 Jul 2015 12:11:01 GMT
|
||||
x-github-media-type:
|
||||
- github.v3; format=json
|
||||
access-control-expose-headers:
|
||||
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
||||
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
||||
access-control-allow-origin:
|
||||
- "*"
|
||||
content-security-policy:
|
||||
- default-src 'none'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubdomains; preload
|
||||
x-content-type-options:
|
||||
- nosniff
|
||||
x-frame-options:
|
||||
- deny
|
||||
x-xss-protection:
|
||||
- 1; mode=block
|
||||
x-served-by:
|
||||
- ef96c2e493b28ffea49b891b085ed2dd
|
||||
x-github-request-id:
|
||||
- 6C2F0F69:7F90:A1B77F1:573E0D4B
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: '{"sha":"decfe840d1a1b86e0c28700de5362d3365a29555","url":"https://api.github.com/repos/skywinder/changelog_test/git/commits/decfe840d1a1b86e0c28700de5362d3365a29555","html_url":"https://github.com/skywinder/changelog_test/commit/decfe840d1a1b86e0c28700de5362d3365a29555","author":{"name":"Petr
|
||||
Korolev","email":"sky4winder@gmail.com","date":"2015-07-16T12:11:01Z"},"committer":{"name":"Petr
|
||||
Korolev","email":"sky4winder@gmail.com","date":"2015-07-16T12:11:01Z"},"tree":{"sha":"0699c15258a7c2b2e157051fe19851d4f705cac8","url":"https://api.github.com/repos/skywinder/changelog_test/git/trees/0699c15258a7c2b2e157051fe19851d4f705cac8"},"message":"fix
|
||||
#14","parents":[{"sha":"7ec095e5e3caceacedabf44d0b9b10da17c92e51","url":"https://api.github.com/repos/skywinder/changelog_test/git/commits/7ec095e5e3caceacedabf44d0b9b10da17c92e51","html_url":"https://github.com/skywinder/changelog_test/commit/7ec095e5e3caceacedabf44d0b9b10da17c92e51"}]}'
|
||||
http_version:
|
||||
recorded_at: Thu, 19 May 2016 19:00:30 GMT
|
||||
recorded_with: VCR 3.0.1
|
|
@ -0,0 +1,76 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api.github.com/repos/skywinder/changelog_test/git/commits/a0cba2b1a1ea9011ab07ee1ac140ba5a5eb8bd90
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- application/vnd.github.v3+json,application/vnd.github.beta+json;q=0.5,application/json;q=0.1
|
||||
Accept-Charset:
|
||||
- utf-8
|
||||
User-Agent:
|
||||
- Github API Ruby Gem 0.13.1
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message:
|
||||
headers:
|
||||
server:
|
||||
- GitHub.com
|
||||
date:
|
||||
- Thu, 19 May 2016 18:25:19 GMT
|
||||
content-type:
|
||||
- application/json; charset=utf-8
|
||||
transfer-encoding:
|
||||
- chunked
|
||||
connection:
|
||||
- close
|
||||
status:
|
||||
- 200 OK
|
||||
x-ratelimit-limit:
|
||||
- '60'
|
||||
x-ratelimit-remaining:
|
||||
- '44'
|
||||
x-ratelimit-reset:
|
||||
- '1463684440'
|
||||
cache-control:
|
||||
- public, max-age=60, s-maxage=60
|
||||
vary:
|
||||
- Accept, Accept-Encoding
|
||||
etag:
|
||||
- W/"70e24649f6eca2e822b32129a2e73312"
|
||||
last-modified:
|
||||
- Wed, 04 Mar 2015 19:01:48 GMT
|
||||
x-github-media-type:
|
||||
- github.v3; format=json
|
||||
access-control-expose-headers:
|
||||
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
||||
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
||||
access-control-allow-origin:
|
||||
- "*"
|
||||
content-security-policy:
|
||||
- default-src 'none'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubdomains; preload
|
||||
x-content-type-options:
|
||||
- nosniff
|
||||
x-frame-options:
|
||||
- deny
|
||||
x-xss-protection:
|
||||
- 1; mode=block
|
||||
x-served-by:
|
||||
- cee4c0729c8e9147e7abcb45b9d69689
|
||||
x-github-request-id:
|
||||
- 6C2F0F69:7F8E:5B42511:573E050F
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: '{"sha":"a0cba2b1a1ea9011ab07ee1ac140ba5a5eb8bd90","url":"https://api.github.com/repos/skywinder/changelog_test/git/commits/a0cba2b1a1ea9011ab07ee1ac140ba5a5eb8bd90","html_url":"https://github.com/skywinder/changelog_test/commit/a0cba2b1a1ea9011ab07ee1ac140ba5a5eb8bd90","author":{"name":"Petr
|
||||
Korolev","email":"sky4winder@gmail.com","date":"2015-03-04T19:01:48Z"},"committer":{"name":"Petr
|
||||
Korolev","email":"sky4winder@gmail.com","date":"2015-03-04T19:01:48Z"},"tree":{"sha":"1ff276df2dcd58d90a1267ff219ced923acc3da8","url":"https://api.github.com/repos/skywinder/changelog_test/git/trees/1ff276df2dcd58d90a1267ff219ced923acc3da8"},"message":"Merge
|
||||
branch ''hotfix/fix-3''","parents":[{"sha":"6a28f64bbe783d7ac171c38cefcb109e1b8e0911","url":"https://api.github.com/repos/skywinder/changelog_test/git/commits/6a28f64bbe783d7ac171c38cefcb109e1b8e0911","html_url":"https://github.com/skywinder/changelog_test/commit/6a28f64bbe783d7ac171c38cefcb109e1b8e0911"},{"sha":"68445f5d2bd8df612e25b37058aea7f123439fa1","url":"https://api.github.com/repos/skywinder/changelog_test/git/commits/68445f5d2bd8df612e25b37058aea7f123439fa1","html_url":"https://github.com/skywinder/changelog_test/commit/68445f5d2bd8df612e25b37058aea7f123439fa1"}]}'
|
||||
http_version:
|
||||
recorded_at: Thu, 19 May 2016 18:25:23 GMT
|
||||
recorded_with: VCR 3.0.1
|
|
@ -0,0 +1,71 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api.github.com/repos/skywinder/changelog_test/issues/14/events
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- application/vnd.github.v3+json,application/vnd.github.beta+json;q=0.5,application/json;q=0.1
|
||||
Accept-Charset:
|
||||
- utf-8
|
||||
User-Agent:
|
||||
- Github API Ruby Gem 0.13.1
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message:
|
||||
headers:
|
||||
server:
|
||||
- GitHub.com
|
||||
date:
|
||||
- Thu, 19 May 2016 18:19:40 GMT
|
||||
content-type:
|
||||
- application/json; charset=utf-8
|
||||
transfer-encoding:
|
||||
- chunked
|
||||
connection:
|
||||
- close
|
||||
status:
|
||||
- 200 OK
|
||||
x-ratelimit-limit:
|
||||
- '60'
|
||||
x-ratelimit-remaining:
|
||||
- '45'
|
||||
x-ratelimit-reset:
|
||||
- '1463684440'
|
||||
cache-control:
|
||||
- public, max-age=60, s-maxage=60
|
||||
vary:
|
||||
- Accept, Accept-Encoding
|
||||
etag:
|
||||
- W/"9e001bcf4bf22abb6602f57d114ce205"
|
||||
x-github-media-type:
|
||||
- github.v3; format=json
|
||||
access-control-expose-headers:
|
||||
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
||||
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
||||
access-control-allow-origin:
|
||||
- "*"
|
||||
content-security-policy:
|
||||
- default-src 'none'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubdomains; preload
|
||||
x-content-type-options:
|
||||
- nosniff
|
||||
x-frame-options:
|
||||
- deny
|
||||
x-xss-protection:
|
||||
- 1; mode=block
|
||||
x-served-by:
|
||||
- bae57931a6fe678a3dffe9be8e7819c8
|
||||
x-github-request-id:
|
||||
- 6C2F0F69:7F91:BA87215:573E03BC
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: '[{"id":357462189,"url":"https://api.github.com/repos/skywinder/changelog_test/issues/events/357462189","actor":{"login":"skywinder","id":3356474,"avatar_url":"https://avatars.githubusercontent.com/u/3356474?v=3","gravatar_id":"","url":"https://api.github.com/users/skywinder","html_url":"https://github.com/skywinder","followers_url":"https://api.github.com/users/skywinder/followers","following_url":"https://api.github.com/users/skywinder/following{/other_user}","gists_url":"https://api.github.com/users/skywinder/gists{/gist_id}","starred_url":"https://api.github.com/users/skywinder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skywinder/subscriptions","organizations_url":"https://api.github.com/users/skywinder/orgs","repos_url":"https://api.github.com/users/skywinder/repos","events_url":"https://api.github.com/users/skywinder/events{/privacy}","received_events_url":"https://api.github.com/users/skywinder/received_events","type":"User","site_admin":false},"event":"referenced","commit_id":"decfe840d1a1b86e0c28700de5362d3365a29555","commit_url":"https://api.github.com/repos/skywinder/changelog_test/commits/decfe840d1a1b86e0c28700de5362d3365a29555","created_at":"2015-07-16T12:21:16Z"},{"id":357462542,"url":"https://api.github.com/repos/skywinder/changelog_test/issues/events/357462542","actor":{"login":"skywinder","id":3356474,"avatar_url":"https://avatars.githubusercontent.com/u/3356474?v=3","gravatar_id":"","url":"https://api.github.com/users/skywinder","html_url":"https://github.com/skywinder","followers_url":"https://api.github.com/users/skywinder/followers","following_url":"https://api.github.com/users/skywinder/following{/other_user}","gists_url":"https://api.github.com/users/skywinder/gists{/gist_id}","starred_url":"https://api.github.com/users/skywinder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skywinder/subscriptions","organizations_url":"https://api.github.com/users/skywinder/orgs","repos_url":"https://api.github.com/users/skywinder/repos","events_url":"https://api.github.com/users/skywinder/events{/privacy}","received_events_url":"https://api.github.com/users/skywinder/received_events","type":"User","site_admin":false},"event":"closed","commit_id":"decfe840d1a1b86e0c28700de5362d3365a29555","commit_url":"https://api.github.com/repos/skywinder/changelog_test/commits/decfe840d1a1b86e0c28700de5362d3365a29555","created_at":"2015-07-16T12:21:42Z"}]'
|
||||
http_version:
|
||||
recorded_at: Thu, 19 May 2016 18:19:43 GMT
|
||||
recorded_with: VCR 3.0.1
|
|
@ -0,0 +1,73 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api.github.com/repos/skywinder/changelog_test/tags
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- application/vnd.github.v3+json,application/vnd.github.beta+json;q=0.5,application/json;q=0.1
|
||||
Accept-Charset:
|
||||
- utf-8
|
||||
User-Agent:
|
||||
- Github API Ruby Gem 0.13.1
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message:
|
||||
headers:
|
||||
server:
|
||||
- GitHub.com
|
||||
date:
|
||||
- Thu, 19 May 2016 18:14:27 GMT
|
||||
content-type:
|
||||
- application/json; charset=utf-8
|
||||
transfer-encoding:
|
||||
- chunked
|
||||
connection:
|
||||
- close
|
||||
status:
|
||||
- 200 OK
|
||||
x-ratelimit-limit:
|
||||
- '60'
|
||||
x-ratelimit-remaining:
|
||||
- '49'
|
||||
x-ratelimit-reset:
|
||||
- '1463684440'
|
||||
cache-control:
|
||||
- public, max-age=60, s-maxage=60
|
||||
vary:
|
||||
- Accept, Accept-Encoding
|
||||
etag:
|
||||
- W/"012a78339961d33825609e388f651a3e"
|
||||
last-modified:
|
||||
- Thu, 05 Mar 2015 10:27:55 GMT
|
||||
x-github-media-type:
|
||||
- github.v3; format=json
|
||||
access-control-expose-headers:
|
||||
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
||||
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
||||
access-control-allow-origin:
|
||||
- "*"
|
||||
content-security-policy:
|
||||
- default-src 'none'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubdomains; preload
|
||||
x-content-type-options:
|
||||
- nosniff
|
||||
x-frame-options:
|
||||
- deny
|
||||
x-xss-protection:
|
||||
- 1; mode=block
|
||||
x-served-by:
|
||||
- a7f8a126c9ed3f1c4715a34c0ddc7290
|
||||
x-github-request-id:
|
||||
- 6C2F0F69:1C0C4:91D639E:573E0283
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: '[{"name":"v0.0.3","zipball_url":"https://api.github.com/repos/skywinder/changelog_test/zipball/v0.0.3","tarball_url":"https://api.github.com/repos/skywinder/changelog_test/tarball/v0.0.3","commit":{"sha":"a0cba2b1a1ea9011ab07ee1ac140ba5a5eb8bd90","url":"https://api.github.com/repos/skywinder/changelog_test/commits/a0cba2b1a1ea9011ab07ee1ac140ba5a5eb8bd90"}},{"name":"v0.0.2","zipball_url":"https://api.github.com/repos/skywinder/changelog_test/zipball/v0.0.2","tarball_url":"https://api.github.com/repos/skywinder/changelog_test/tarball/v0.0.2","commit":{"sha":"9b35bb13dcd15b68e7bcbf10cde5eb937a54f710","url":"https://api.github.com/repos/skywinder/changelog_test/commits/9b35bb13dcd15b68e7bcbf10cde5eb937a54f710"}},{"name":"v0.0.1","zipball_url":"https://api.github.com/repos/skywinder/changelog_test/zipball/v0.0.1","tarball_url":"https://api.github.com/repos/skywinder/changelog_test/tarball/v0.0.1","commit":{"sha":"4c2d6d1ed58bdb24b870dcb5d9f2ceed0283d69d","url":"https://api.github.com/repos/skywinder/changelog_test/commits/4c2d6d1ed58bdb24b870dcb5d9f2ceed0283d69d"}},{"name":"0.0.4","zipball_url":"https://api.github.com/repos/skywinder/changelog_test/zipball/0.0.4","tarball_url":"https://api.github.com/repos/skywinder/changelog_test/tarball/0.0.4","commit":{"sha":"ece0c3ab7142b21064b885061c55ede00ef6ce94","url":"https://api.github.com/repos/skywinder/changelog_test/commits/ece0c3ab7142b21064b885061c55ede00ef6ce94"}}]'
|
||||
http_version:
|
||||
recorded_at: Thu, 19 May 2016 18:14:31 GMT
|
||||
recorded_with: VCR 3.0.1
|
|
@ -0,0 +1,65 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api.github.com/repos/skywinder/changelog_test/tags?access_token=0000000000000000
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- application/vnd.github.v3+json,application/vnd.github.beta+json;q=0.5,application/json;q=0.1
|
||||
Accept-Charset:
|
||||
- utf-8
|
||||
User-Agent:
|
||||
- Github API Ruby Gem 0.13.1
|
||||
Authorization:
|
||||
- token 0000000000000000
|
||||
response:
|
||||
status:
|
||||
code: 401
|
||||
message:
|
||||
headers:
|
||||
server:
|
||||
- GitHub.com
|
||||
date:
|
||||
- Thu, 19 May 2016 18:14:28 GMT
|
||||
content-type:
|
||||
- application/json; charset=utf-8
|
||||
content-length:
|
||||
- '83'
|
||||
connection:
|
||||
- close
|
||||
status:
|
||||
- 401 Unauthorized
|
||||
x-github-media-type:
|
||||
- github.v3; format=json
|
||||
x-ratelimit-limit:
|
||||
- '60'
|
||||
x-ratelimit-remaining:
|
||||
- '48'
|
||||
x-ratelimit-reset:
|
||||
- '1463684440'
|
||||
access-control-expose-headers:
|
||||
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
||||
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
||||
access-control-allow-origin:
|
||||
- "*"
|
||||
content-security-policy:
|
||||
- default-src 'none'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubdomains; preload
|
||||
x-content-type-options:
|
||||
- nosniff
|
||||
x-frame-options:
|
||||
- deny
|
||||
x-xss-protection:
|
||||
- 1; mode=block
|
||||
x-github-request-id:
|
||||
- 6C2F0F69:1C0C3:706D8F5:573E0284
|
||||
body:
|
||||
encoding: UTF-8
|
||||
string: '{"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}'
|
||||
http_version:
|
||||
recorded_at: Thu, 19 May 2016 18:14:31 GMT
|
||||
recorded_with: VCR 3.0.1
|
Loading…
Reference in New Issue
Block a user