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
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
group :test do
 | 
					group :test do
 | 
				
			||||||
 | 
					  gem "vcr"
 | 
				
			||||||
  gem "coveralls", "~>0.8", require: false
 | 
					  gem "coveralls", "~>0.8", require: false
 | 
				
			||||||
  gem "simplecov", "~>0.10", require: false
 | 
					  gem "simplecov", "~>0.10", require: false
 | 
				
			||||||
  gem "codeclimate-test-reporter", "~>0.4"
 | 
					  gem "codeclimate-test-reporter", "~>0.4"
 | 
				
			||||||
 | 
				
			|||||||
@ -109,6 +109,7 @@ GEM
 | 
				
			|||||||
    tzinfo (1.2.2)
 | 
					    tzinfo (1.2.2)
 | 
				
			||||||
      thread_safe (~> 0.1)
 | 
					      thread_safe (~> 0.1)
 | 
				
			||||||
    unicode-display_width (1.1.1)
 | 
					    unicode-display_width (1.1.1)
 | 
				
			||||||
 | 
					    vcr (3.0.1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PLATFORMS
 | 
					PLATFORMS
 | 
				
			||||||
  ruby
 | 
					  ruby
 | 
				
			||||||
@ -124,6 +125,7 @@ DEPENDENCIES
 | 
				
			|||||||
  rspec (< 4)
 | 
					  rspec (< 4)
 | 
				
			||||||
  rubocop (>= 0.43)
 | 
					  rubocop (>= 0.43)
 | 
				
			||||||
  simplecov (~> 0.10)
 | 
					  simplecov (~> 0.10)
 | 
				
			||||||
 | 
					  vcr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUNDLED WITH
 | 
					BUNDLED WITH
 | 
				
			||||||
   1.13.1
 | 
					   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
 | 
					    # Fetch commit for specified event
 | 
				
			||||||
    # @return [Hash]
 | 
					    # @return [Hash]
 | 
				
			||||||
    def fetch_commit(event)
 | 
					    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
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,7 @@
 | 
				
			|||||||
require "codeclimate-test-reporter"
 | 
					require "codeclimate-test-reporter"
 | 
				
			||||||
require "simplecov"
 | 
					require "simplecov"
 | 
				
			||||||
require "coveralls"
 | 
					require "coveralls"
 | 
				
			||||||
 | 
					require "vcr"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# This module is only used to check the environment is currently a testing env
 | 
					# This module is only used to check the environment is currently a testing env
 | 
				
			||||||
module SpecHelper
 | 
					module SpecHelper
 | 
				
			||||||
@ -34,6 +35,15 @@ SimpleCov.start
 | 
				
			|||||||
require "github_changelog_generator"
 | 
					require "github_changelog_generator"
 | 
				
			||||||
require "github_changelog_generator/task"
 | 
					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|
 | 
					RSpec.configure do |config|
 | 
				
			||||||
  config.expect_with :rspec do |expectations|
 | 
					  config.expect_with :rspec do |expectations|
 | 
				
			||||||
    expectations.include_chain_clauses_in_custom_matcher_descriptions = true
 | 
					    expectations.include_chain_clauses_in_custom_matcher_descriptions = true
 | 
				
			||||||
@ -53,4 +63,8 @@ RSpec.configure do |config|
 | 
				
			|||||||
  config.order = :random
 | 
					  config.order = :random
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Kernel.srand config.seed
 | 
					  Kernel.srand config.seed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config.extend VCR::RSpec::Macros
 | 
				
			||||||
 | 
					
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -2,59 +2,230 @@
 | 
				
			|||||||
VALID_TOKEN = "0123456789abcdef"
 | 
					VALID_TOKEN = "0123456789abcdef"
 | 
				
			||||||
INVALID_TOKEN = "0000000000000000"
 | 
					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
 | 
					describe GitHubChangelogGenerator::Fetcher do
 | 
				
			||||||
  before(:all) do
 | 
					  let(:options) do
 | 
				
			||||||
    @fetcher = GitHubChangelogGenerator::Fetcher.new
 | 
					    {
 | 
				
			||||||
 | 
					      :user    => "skywinder",
 | 
				
			||||||
 | 
					      :project => "changelog_test",
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let(:fetcher) { GitHubChangelogGenerator::Fetcher.new(options) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe "#fetch_github_token" do
 | 
					  describe "#fetch_github_token" do
 | 
				
			||||||
    token = GitHubChangelogGenerator::Fetcher::CHANGELOG_GITHUB_TOKEN
 | 
					    token = GitHubChangelogGenerator::Fetcher::CHANGELOG_GITHUB_TOKEN
 | 
				
			||||||
    context "when token in ENV exist" do
 | 
					    context "when token in ENV exist" do
 | 
				
			||||||
      before { stub_const("ENV", ENV.to_hash.merge(token => VALID_TOKEN)) }
 | 
					      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) }
 | 
					      it { is_expected.to eq(VALID_TOKEN) }
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    context "when token in ENV is nil" do
 | 
					    context "when token in ENV is nil" do
 | 
				
			||||||
      before { stub_const("ENV", ENV.to_hash.merge(token => nil)) }
 | 
					      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 }
 | 
					      it { is_expected.to be_nil }
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    context "when token in options and ENV is nil" do
 | 
					    context "when token in options and ENV is nil" do
 | 
				
			||||||
 | 
					      let(:options) { { :token => VALID_TOKEN } }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      before do
 | 
					      before do
 | 
				
			||||||
        stub_const("ENV", ENV.to_hash.merge(token => nil))
 | 
					        stub_const("ENV", ENV.to_hash.merge(token => nil))
 | 
				
			||||||
        @fetcher = GitHubChangelogGenerator::Fetcher.new(token: VALID_TOKEN)
 | 
					 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
      subject { @fetcher.fetch_github_token }
 | 
					
 | 
				
			||||||
 | 
					      subject { fetcher.fetch_github_token }
 | 
				
			||||||
      it { is_expected.to eq(VALID_TOKEN) }
 | 
					      it { is_expected.to eq(VALID_TOKEN) }
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    context "when token in options and ENV specified" do
 | 
					    context "when token in options and ENV specified" do
 | 
				
			||||||
 | 
					      let(:options) { { :token => VALID_TOKEN } }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      before do
 | 
					      before do
 | 
				
			||||||
        stub_const("ENV", ENV.to_hash.merge(token => "no_matter_what"))
 | 
					        stub_const("ENV", ENV.to_hash.merge(token => "no_matter_what"))
 | 
				
			||||||
        @fetcher = GitHubChangelogGenerator::Fetcher.new(token: VALID_TOKEN)
 | 
					 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
      subject { @fetcher.fetch_github_token }
 | 
					
 | 
				
			||||||
 | 
					      subject { fetcher.fetch_github_token }
 | 
				
			||||||
      it { is_expected.to eq(VALID_TOKEN) }
 | 
					      it { is_expected.to eq(VALID_TOKEN) }
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  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
 | 
					  describe "#github_fetch_tags" do
 | 
				
			||||||
    context "when wrong token provided" do
 | 
					    context "when wrong token provided" do
 | 
				
			||||||
      before do
 | 
					      use_vcr_cassette
 | 
				
			||||||
        options = options_with_invalid_token
 | 
					
 | 
				
			||||||
        @fetcher = GitHubChangelogGenerator::Fetcher.new(options)
 | 
					      let(:options) do
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          :user    => "skywinder",
 | 
				
			||||||
 | 
					          :project => "changelog_test",
 | 
				
			||||||
 | 
					          :token   => INVALID_TOKEN
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      it "should raise Unauthorized error" do
 | 
					      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
 | 
					    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
 | 
					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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user