Merge pull request #305 from SteveGilvarry/Add_Release_Branch

Fixes #280 Add release-branch option to filter the Pull Requests
This commit is contained in:
Petr Korolev 2016-01-05 16:43:43 +02:00
commit 384b080ad0
5 changed files with 25 additions and 10 deletions

View File

@ -22,7 +22,7 @@
**Merged pull requests:**
- Merged PR to Develop [\#19](https://github.com/skywinder/changelog_test/pull/19) ([skywinder](https://github.com/skywinder))
- Merged br \(should appear in change log also\) [\#21](https://github.com/skywinder/changelog_test/pull/21) ([skywinder](https://github.com/skywinder))
- This a PR with a lot of comments and events [\#17](https://github.com/skywinder/changelog_test/pull/17) ([skywinder](https://github.com/skywinder))
- This PR closes 14 from commit [\#15](https://github.com/skywinder/changelog_test/pull/15) ([skywinder](https://github.com/skywinder))
- This PR to close \#12 from body [\#13](https://github.com/skywinder/changelog_test/pull/13) ([skywinder](https://github.com/skywinder))

View File

@ -18,12 +18,12 @@ module GitHubChangelogGenerator
@user = @options[:user]
@project = @options[:project]
@github_token = fetch_github_token
github_options = { per_page: PER_PAGE_NUMBER }
github_options[:oauth_token] = @github_token unless @github_token.nil?
github_options[:endpoint] = @options[:github_endpoint] unless @options[:github_endpoint].nil?
github_options[:site] = @options[:github_endpoint] unless @options[:github_site].nil?
@github_options = { per_page: PER_PAGE_NUMBER }
@github_options[:oauth_token] = @github_token unless @github_token.nil?
@github_options[:endpoint] = @options[:github_endpoint] unless @options[:github_endpoint].nil?
@github_options[:site] = @options[:github_endpoint] unless @options[:github_site].nil?
@github = check_github_response { Github.new github_options }
@github = check_github_response { Github.new @github_options }
end
# Returns GitHub token. First try to use variable, provided by --token option,
@ -123,7 +123,16 @@ Make sure, that you push tags to remote repo via 'git push --tags'".yellow
def fetch_closed_pull_requests
pull_requests = []
begin
response = @github.pull_requests.list @options[:user], @options[:project], state: "closed"
if @options[:release_branch].nil?
response = @github.pull_requests.list @options[:user],
@options[:project],
state: "closed"
else
response = @github.pull_requests.list @options[:user],
@options[:project],
state: "closed",
base: @options[:release_branch]
end
page_i = 0
count_pages = response.count_pages
response.each_page do |page|

View File

@ -178,8 +178,10 @@ module GitHubChangelogGenerator
fetched_pr = closed_pull_requests.find do |fpr|
fpr.number == pr.number
end
pr[:merged_at] = fetched_pr[:merged_at]
closed_pull_requests.delete(fetched_pr)
if fetched_pr
pr[:merged_at] = fetched_pr[:merged_at]
closed_pull_requests.delete(fetched_pr)
end
end
pull_requests.select! do |pr|

View File

@ -143,6 +143,9 @@ module GitHubChangelogGenerator
opts.on("--future-release [RELEASE-VERSION]", "Put the unreleased changes in the specified release number.") do |future_release|
options[:future_release] = future_release
end
opts.on("--release-branch [RELEASE-BRANCH]", "Limit pull requests to the release branch, such as master or release") do |release_branch|
options[:release_branch] = release_branch
end
opts.on("--[no-]verbose", "Run verbosely. Default is true") do |v|
options[:verbose] = v
end

View File

@ -16,7 +16,8 @@ module GitHubChangelogGenerator
bug_labels enhancement_labels
between_tags exclude_tags since_tag max_issues
github_site github_endpoint simple_list
future_release verbose release_url base )
future_release release_branch verbose release_url
base )
OPTIONS.each do |o|
attr_accessor o.to_sym