2015-04-16 18:04:30 -04:00
require 'puppetlabs_spec_helper/rake_tasks'
2018-08-22 06:07:49 -04:00
require 'puppet-syntax/tasks/puppet-syntax'
require 'puppet_blacksmith/rake_tasks' if Bundler . rubygems . find_name ( 'puppet-blacksmith' ) . any?
require 'github_changelog_generator/task' if Bundler . rubygems . find_name ( 'github_changelog_generator' ) . any?
2015-04-23 14:32:48 -04:00
2018-08-22 06:07:49 -04:00
def changelog_user
return unless Rake . application . top_level_tasks . include? " changelog "
returnVal = nil || JSON . load ( File . read ( 'metadata.json' ) ) [ 'author' ]
raise " unable to find the changelog_user in .sync.yml, or the author in metadata.json " if returnVal . nil?
puts " GitHubChangelogGenerator user: #{ returnVal } "
returnVal
end
2015-04-16 18:04:30 -04:00
2018-08-22 06:07:49 -04:00
def changelog_project
return unless Rake . application . top_level_tasks . include? " changelog "
returnVal = nil || JSON . load ( File . read ( 'metadata.json' ) ) [ 'name' ]
raise " unable to find the changelog_project in .sync.yml or the name in metadata.json " if returnVal . nil?
puts " GitHubChangelogGenerator project: #{ returnVal } "
returnVal
end
def changelog_future_release
return unless Rake . application . top_level_tasks . include? " changelog "
returnVal = JSON . load ( File . read ( 'metadata.json' ) ) [ 'version' ]
raise " unable to find the future_release (version) in metadata.json " if returnVal . nil?
puts " GitHubChangelogGenerator future_release: #{ returnVal } "
returnVal
end
PuppetLint . configuration . send ( 'disable_relative' )
if Bundler . rubygems . find_name ( 'github_changelog_generator' ) . any?
GitHubChangelogGenerator :: RakeTask . new :changelog do | config |
raise " Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here' " if Rake . application . top_level_tasks . include? " changelog " and ENV [ 'CHANGELOG_GITHUB_TOKEN' ] . nil?
config . user = " #{ changelog_user } "
config . project = " #{ changelog_project } "
config . future_release = " #{ changelog_future_release } "
config . exclude_labels = [ 'maintenance' ]
config . header = " # Change log \n \n All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org). "
config . add_pr_wo_labels = true
config . issues = false
config . merge_prefix = " # # # UNCATEGORIZED PRS; GO LABEL THEM "
config . configure_sections = {
" Changed " = > {
" prefix " = > " # # # Changed " ,
" labels " = > [ " backwards-incompatible " ] ,
} ,
" Added " = > {
" prefix " = > " # # # Added " ,
" labels " = > [ " feature " , " enhancement " ] ,
} ,
" Fixed " = > {
" prefix " = > " # # # Fixed " ,
" labels " = > [ " bugfix " ] ,
} ,
}
2015-04-16 18:04:30 -04:00
end
2018-08-22 06:07:49 -04:00
else
desc 'Generate a Changelog from GitHub'
task :changelog do
raise <<EOM
The changelog tasks depends on unreleased features of the github_changelog_generator gem .
Please manually add it to your . sync . yml for now , and run ` pdk update ` :
- - -
Gemfile :
optional :
':development' :
- gem : 'github_changelog_generator'
git : 'https://github.com/skywinder/github-changelog-generator'
ref : '20ee04ba1234e9e83eb2ffb5056e23d641c7a018'
condition : " Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2') "
EOM
2015-04-16 18:04:30 -04:00
end
end
2015-04-23 14:32:48 -04:00