class Permutation::Release
Public Class Methods
create(options)
click to toggle source
# File lib/tools/release.rb, line 4 def create(options) account_config = Permutation::Config.account remote_branch = `git rev-parse --abbrev-ref --symbolic-full-name @{u}` sha = `git rev-parse #{remote_branch}` regex = /(git@github\.com|git@bitbucket\.org):(.*)\.git/ repo_url = `git remote show origin | grep Fetch | cut -d: -f2-`.strip repo_url.match(regex) repo_name = $2 response = Permutation::API.post( '/api/releases.json', options.merge({ sha: sha, repo_url: repo_url, repo_name: repo_name }), { 'Access-Token' => account_config['access_token'] } ) if response.status == 201 release = response.body if options[:force] puts "Updated release #{release['version']} for #{release['repository']['name']}" else puts "Created release #{release['version']} for #{release['repository']['name']}" end elsif response.status == 401 puts "Unauthorized, please re-run permutation init" exit elsif response.status == 404 puts "Repository #{repo_name} not found" exit else if error = response.body puts "Error: #{error['message']}" else puts "Error" end end end
error(message)
click to toggle source
# File lib/tools/release.rb, line 47 def error(message) puts message exit end
parse_args(args)
click to toggle source
# File lib/tools/release.rb, line 52 def parse_args(args) options = {} OptionParser.new do |opts| opts.banner = "Usage: permutation release [options]" opts.separator "" opts.separator "Options:" # opts.on("-p", "--parent PARENT") do |v| # options[:parent] = v # end opts.on("-f", "--force [VERSION]", "Iterate using the new release") do |v| options[:force] = v end opts.on("-i", "--iterate [ITERATE]", "Iterate using the new release") do |v| options[:iterate] = v end opts.on("-b", "--bump [BUMP]", [:major, :minor, :patch]) do |v| options[:bump] = v end end.parse! options end
Private Class Methods
config()
click to toggle source
# File lib/tools/release.rb, line 80 def config @config ||= Permutation::Config.read end