capistrano-napkin 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f38a3000d6093112e26fbf4065d670bb4c2ede9a
4
+ data.tar.gz: 767461edb4994dc0605d4147fac29ba41e42be63
5
+ SHA512:
6
+ metadata.gz: 0ff9c10a258941626d6b839c7ac1c30a032ac5863214abce40437eaec3f172119537e8f357ac797da11f71170f443258b9b6f6af033ee04ea6b4d1e58dbd9f36
7
+ data.tar.gz: 001e3c5b269f4c9a03e2ed9a4e4f34cfae6684fbd46e5294b7c3a45ad6911bd25f19e3217960a6680900130ee19a384ca1a0c653f1e7244ebd8bf8ba36a1e077
data/Gemfile ADDED
@@ -0,0 +1,20 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'capistrano'
4
+ gem 'stringex'
5
+ gem 'hashie'
6
+ gem 'versionomy'
7
+ gem 'rainbow', '1.99.1'
8
+ gem "ablerc", "~> 0.2.0"
9
+
10
+ group :development do
11
+ gem "shoulda", "~> 3.0.0.beta2"
12
+ gem 'active_support'
13
+ gem 'i18n'
14
+ gem 'minitest-rg'
15
+ gem "cucumber", ">= 0"
16
+ gem "bundler"
17
+ gem "jeweler", "~> 1.6.4"
18
+ end
19
+
20
+ gemspec
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Spencer Markowski
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,28 @@
1
+ # napkin
2
+
3
+ Napkin provides Gitflow integration with Capistrano, without unessecary restrictions to the deploy process. Our goal with napkin was to improve on capistrano-gitflow by allowing you to tag a staging release (or not tag a staging release),
4
+ deploy from the HEAD of whatever branch you are on (feature, develop, hotfix, etc), and deploy to production from bonafide gitflow release tags.
5
+
6
+
7
+ Works *only* with Capistrano 3+.
8
+
9
+ ### Installation
10
+
11
+ Add this to `Gemfile`:
12
+
13
+ group :development do
14
+ gem 'capistrano', '~> 3.1'
15
+ gem 'capistrano-napkin', '~> 1.0'
16
+ end
17
+
18
+ And then:
19
+
20
+ $ bundle install
21
+
22
+ ### Setup and usage
23
+
24
+ Add this line to `Capfile`, after `require 'capistrano/rails/assets'`
25
+
26
+ require 'capistrano/capistrano_napkin'
27
+
28
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 3.0.4
data/able.rc ADDED
@@ -0,0 +1,20 @@
1
+ Ablerc.setup do
2
+
3
+ rc_file_name ".napkinrc"
4
+
5
+ scheme :user, :local
6
+
7
+ option :prude, :boolean => true
8
+
9
+ option :gitflow_master, :default => "master"
10
+ option :gitflow_develop, :default => "develop"
11
+ option :gitflow_feature, :default => "feature"
12
+ option :gitflow_release, :default => "release"
13
+ option :gitflow_version_tag, :default => "'v'"
14
+
15
+ option :deploy_production, :default => "production"
16
+ option :deploy_staging, :default => "[:staging, :qa]"
17
+ option :previous_releases, :default => '3'
18
+ option :allow_untagged_deply, :boolean => true
19
+
20
+ end
@@ -0,0 +1,121 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "capistrano-napkin"
5
+ s.version = "3.0.4"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new("> 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Spencer Markowski"]
9
+ s.date = "2016-06-04"
10
+ s.description = "An unrestictive way to deploy using gitflow and capistrano"
11
+ s.email = "spencer@theablefew.com"
12
+ s.extra_rdoc_files = [
13
+ "LICENSE.txt",
14
+ "README.md"
15
+ ]
16
+ s.files = [
17
+ "Gemfile",
18
+ "LICENSE.txt",
19
+ "README.md",
20
+ "VERSION",
21
+ "able.rc",
22
+ "lib/capistrano-napkin.rb",
23
+ "lib/capistrano/napkin.rb",
24
+ "lib/capistrano/napkin/configuration.rb",
25
+ "lib/capistrano/napkin/version.rb",
26
+ "lib/capistrano/napkin/utilities.rb",
27
+ "lib/capistrano/napkin/hooks.rb",
28
+ "lib/capistrano/napkin/tasks.rb",
29
+ "lib/capistrano/tasks/hooks.cap",
30
+ "lib/capistrano/tasks/napkin.cap",
31
+ "capistrano-napkin.gemspec"
32
+ ]
33
+ s.homepage = "http://github.com/esmarkowski/napkin"
34
+ s.licenses = ["MIT"]
35
+ s.require_paths = ["lib"]
36
+ s.rubygems_version = "1.8.24"
37
+ s.summary = "Gitflow enabled capistrano"
38
+
39
+ s.post_install_message = <<-POSTINSTALL
40
+ Initialize Gitflow
41
+
42
+ git flow init -df'
43
+ git config gitflow.branch.develop "develop"
44
+ git config gitflow.branch.master "master"
45
+ git config gitflow.prefix.versiontag "v"
46
+ git config gitflow.prefix.feature "feature/"
47
+ git config gitflow.prefix.release "release/"
48
+ git config gitflow.prefix.hotfix "hotfix/"
49
+ git config gitflow.prefix.support "support/"
50
+
51
+
52
+ Then place this in your Rails root directory as .napkinrc
53
+
54
+ prude = 0
55
+
56
+ ## gitflow_master
57
+ # Default: master
58
+ #gitflow_master = master
59
+
60
+ ## gitflow_develop
61
+ # Default: develop
62
+ #gitflow_develop = develop
63
+
64
+ ## gitflow_feature
65
+ # Default: feature
66
+ #gitflow_feature = feature
67
+
68
+ ## gitflow_release
69
+ # Default: release
70
+ #gitflow_release = release
71
+
72
+ ## gitflow_version_tag
73
+ # Default: v
74
+ #gitflow_version_tag = v
75
+
76
+ ## deploy_production
77
+ # Default: production
78
+ #deploy_production = production
79
+
80
+ ## deploy_staging
81
+ # Default: [:staging, :qa]
82
+ #deploy_staging = [:staging, :qa]
83
+
84
+ ## previous_releases
85
+ # Default: 3
86
+ previous_releases = '8'
87
+
88
+ ## allow_untagged_deply
89
+ allow_untagged_deply = true
90
+
91
+ POSTINSTALL
92
+
93
+ if s.respond_to? :specification_version then
94
+ s.specification_version = 3
95
+
96
+ if Gem::Version.new(Gem::VERSION) > Gem::Version.new('1.2.0') then
97
+ s.add_runtime_dependency(%q<capistrano>, [ "~> 3.0"])
98
+ s.add_runtime_dependency(%q<stringex>, [ "~> 1.3"])
99
+ s.add_runtime_dependency(%q<hashie>, [ "~> 3.1"])
100
+ s.add_runtime_dependency(%q<versionomy>, [ "~> 0.4"])
101
+ s.add_runtime_dependency(%q<rainbow>, [ "~> 2.0"])
102
+ s.add_runtime_dependency(%q<ablerc>, ["~> 0.2"])
103
+
104
+ else
105
+ s.add_dependency(%q<capistrano>, ["~> 3.0"])
106
+ s.add_dependency(%q<stringex>, ["~> 1.3"])
107
+ s.add_dependency(%q<hashie>, ["~> 3.1"])
108
+ s.add_dependency(%q<versionomy>, ["~> 0.4"])
109
+ s.add_dependency(%q<rainbow>, ["~> 2.0"])
110
+ s.add_dependency(%q<ablerc>, ["~> 0.2"])
111
+ end
112
+ else
113
+ s.add_dependency(%q<capistrano>, ["~> 3.0"])
114
+ s.add_dependency(%q<stringex>, ["~> 1.3"])
115
+ s.add_dependency(%q<hashie>, ["~> 3.1"])
116
+ s.add_dependency(%q<versionomy>, ["~> 0.4"])
117
+ s.add_dependency(%q<rainbow>, ["~> 2.0"])
118
+ s.add_dependency(%q<ablerc>, ["~> 0.2"])
119
+ end
120
+ end
121
+
File without changes
@@ -0,0 +1,19 @@
1
+ require_relative 'napkin/configuration'
2
+ require_relative 'napkin/version'
3
+ require_relative 'napkin/utilities'
4
+ require_relative 'napkin/tasks'
5
+ require_relative 'napkin/hooks'
6
+
7
+
8
+
9
+ module Capistrano
10
+ module Napkin
11
+
12
+ def self.root
13
+ File.expand_path '../../..', __FILE__
14
+ end
15
+
16
+ Capistrano::Napkin::Configuration.load! Capistrano::Napkin::Configuration::PROJECT_CONFIG_FILE if Capistrano::Napkin::Configuration.project_settings?
17
+
18
+ end
19
+ end
@@ -0,0 +1,39 @@
1
+ require 'yaml'
2
+ require 'ablerc'
3
+
4
+ module Capistrano
5
+ module Napkin
6
+ module Configuration
7
+
8
+ extend self
9
+
10
+ CONFIG_FILE_NAME = '.napkinrc'
11
+ GLOBAL_CONFIG_FILE = "#{Dir.home}/#{CONFIG_FILE_NAME}"
12
+ PROJECT_CONFIG_FILE = "#{Dir.pwd}/#{CONFIG_FILE_NAME}"
13
+
14
+ attr_reader :_config
15
+ @_ablerc
16
+
17
+ def ablerc
18
+ Ablerc
19
+ end
20
+
21
+ def load!(filename, options={})
22
+ @_ablerc ||= Ablerc.load! Napkin.root
23
+ end
24
+
25
+ def method_missing(name, *args, &block)
26
+ Ablerc.config.send(name.to_sym) || fail(NoMethodError, "unknown configuration root #{name}", caller)
27
+ end
28
+
29
+ def user_settings?
30
+ File.exists? GLOBAL_CONFIG_FILE
31
+ end
32
+
33
+ def project_settings?
34
+ File.exists? PROJECT_CONFIG_FILE
35
+ end
36
+
37
+ end
38
+ end
39
+ end
@@ -0,0 +1 @@
1
+ load File.expand_path('../../tasks/hooks.cap', __FILE__)
@@ -0,0 +1 @@
1
+ load File.expand_path('../../tasks/napkin.cap', __FILE__)
@@ -0,0 +1,92 @@
1
+ require 'versionomy'
2
+ require 'stringex'
3
+ require 'rainbow'
4
+ require 'rainbow/ext/string'
5
+
6
+ module Capistrano
7
+ module Napkin
8
+ module Utilities
9
+
10
+ def who
11
+ identity = (`git config user.name` || `whoami`)
12
+ identity.chomp.to_url
13
+ end
14
+
15
+ def tags
16
+ `git tag`.split("\n").compact
17
+ end
18
+
19
+ def non_release_tags
20
+ tags - releases
21
+ end
22
+
23
+ def current_branch
24
+ branches.select{|b| b =~ /^\*\s/}.first.gsub(/^\*\s/,"")
25
+ end
26
+
27
+ def branches
28
+ `git branch --no-color`.split("\n")
29
+ end
30
+
31
+ def version_tag_prefix
32
+ `git config gitflow.prefix.versiontag`.split("\n").first
33
+ end
34
+
35
+ def releases
36
+ tags.select{|t| t =~ /^#{version_tag_prefix}(\d+)/}.collect{|version| Versionomy.parse(version) }.sort
37
+ end
38
+
39
+ def latest_release
40
+ releases.reverse.first.to_s
41
+ end
42
+
43
+ def available_tags
44
+ puts "Available Tags:".color :green
45
+ puts "#{releases.sort.reverse.take(Capistrano::Napkin::Configuration.previous_releases.to_i).join("\n")}"
46
+ puts "\n"
47
+ end
48
+
49
+ def available_releases
50
+ puts "\nAvailable Releases:".color :green
51
+ puts "#{releases.reverse.take(Capistrano::Napkin::Configuration.previous_releases.to_i).join("\n")}"
52
+ puts "\n"
53
+ end
54
+
55
+ def banner
56
+
57
+ <<-BANNER
58
+ \n Napkin for Gitflow
59
+ BANNER
60
+ end
61
+
62
+
63
+
64
+ def deploy_from
65
+ puts banner unless Capistrano::Napkin::Configuration.prude.to_i == 1
66
+ if fetch(:stage) == :production
67
+ available_releases
68
+ set :from_destination, ask("\nRelease to deploy:".color(:yellow).bright, latest_release)
69
+ else
70
+ set :create_tag, ask("\nDo you want to tag deployment?".color(:yellow).bright, 'N')
71
+ return next_tag if fetch(:create_tag).downcase =~ /^[Yy]$/
72
+ available_tags
73
+ set :from_destination, ask("\nBranch, tag or release to deploy:".color(:yellow).bright, current_branch)
74
+ end
75
+ return fetch(:from_destination)
76
+ end
77
+
78
+ def next_tag
79
+ hwhen = Date.today.to_s
80
+ set :what, ask("\nWhat does this release introduce?".color(:yellow).bright, nil)
81
+ new_staging_tag = "#{hwhen}-#{who}-#{fetch(:what)}"
82
+ puts "Tagging current branch for deployment to staging as '#{new_staging_tag}'".color(:green)
83
+ system "git tag -a -m 'tagging current code for deployment to staging' #{new_staging_tag}"
84
+ return new_staging_tag
85
+ end
86
+
87
+ def using_git?
88
+ fetch(:scm, :git).to_sym == :git
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,23 @@
1
+ module Napkin
2
+ module Version
3
+
4
+ extend self
5
+
6
+ attr_accessor :base_dir
7
+
8
+ def write_version( version )
9
+ File.open(File.join(Napkin::Version.base_dir, 'VERSION'), 'w') do |file|
10
+ file.write version.to_s
11
+ end
12
+ version
13
+ end
14
+
15
+ def load_version
16
+ Versionomy.parse File.read(File.join(Napkin::Version.base_dir, 'VERSION')).chomp
17
+ end
18
+
19
+ def to_s
20
+ load_version.to_s
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,2 @@
1
+ before 'deploy:starting', 'napkin:calculate_tag'
2
+ before 'napkin:calculate_tag', 'napkin:verify_up_to_date'
@@ -0,0 +1,82 @@
1
+ namespace :napkin do
2
+
3
+ include Capistrano::Napkin::Utilities
4
+
5
+
6
+ task :verify_up_to_date do
7
+ if using_git?
8
+ set :local_branch, `git branch --no-color 2> /dev/null | sed -e '/^[^*]/d'`.gsub(/\* /, '').chomp
9
+ set :local_sha, `git log --pretty=format:%H HEAD -1`.chomp
10
+ set :origin_sha, `git log --pretty=format:%H #{fetch(:local_branch)} -1`
11
+ unless fetch(:local_sha) == fetch(:origin_sha)
12
+ abort """
13
+ Your #{fetch(:local_branch)} branch is not up to date with origin/#{fetch(:local_branch)}.
14
+ Please make sure you have pulled and pushed all code before deploying:
15
+
16
+ git pull origin #{fetch(:local_branch)}
17
+ # run tests, etc
18
+ git push origin #{fetch(:local_branch)}
19
+
20
+ """
21
+ end
22
+ end
23
+ end
24
+
25
+ task :calculate_tag do
26
+ if using_git?
27
+ # make sure we have any other deployment tags that have been pushed by others so our auto-increment code doesn't create conflicting tags
28
+ `git fetch`
29
+ if fetch(:stage) == :production
30
+ invoke 'napkin:tag_production'
31
+ else
32
+ invoke 'napkin:tag_staging'
33
+ end
34
+
35
+
36
+ system "git push --tags origin #{fetch(:local_branch)}"
37
+ if $? != 0
38
+ abort "git push failed"
39
+ end
40
+
41
+ end
42
+ end
43
+
44
+ task :configuration do
45
+ puts "Gitflow"
46
+ Napkin::Configuration.ablerc.stub.generate :local
47
+ exit
48
+ end
49
+
50
+ task :tag_staging do
51
+ staging_destination = deploy_from
52
+
53
+ set :branch, staging_destination
54
+ end
55
+
56
+ desc "Show available releases"
57
+ task :releases do
58
+ available_releases
59
+ end
60
+
61
+
62
+ desc "Push the approved tag to production. Pass in tag to deploy with '-s tag=staging-YYYY-MM-DD-X-feature'."
63
+ task :tag_production do
64
+
65
+ production_destination = deploy_from
66
+
67
+ set :really_deploy, ask("Do you really want to deploy #{production_destination}?", "N")
68
+
69
+ exit(1) unless fetch(:really_deploy) =~ /^[Yy]$/
70
+
71
+ set :branch, production_destination
72
+ end
73
+ end
74
+
75
+ namespace :deploy do
76
+ namespace :pending do
77
+ task :compare do
78
+ #gitflow.commit_log
79
+ end
80
+ end
81
+ end
82
+
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capistrano-napkin
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Spencer Markowski
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-06-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: capistrano
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: stringex
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: hashie
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: versionomy
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.4'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rainbow
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: ablerc
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.2'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.2'
97
+ description: An unrestictive way to deploy using gitflow and capistrano
98
+ email: spencer@theablefew.com
99
+ executables: []
100
+ extensions: []
101
+ extra_rdoc_files:
102
+ - LICENSE.txt
103
+ - README.md
104
+ files:
105
+ - Gemfile
106
+ - LICENSE.txt
107
+ - README.md
108
+ - VERSION
109
+ - able.rc
110
+ - capistrano-napkin.gemspec
111
+ - lib/capistrano-napkin.rb
112
+ - lib/capistrano/napkin.rb
113
+ - lib/capistrano/napkin/configuration.rb
114
+ - lib/capistrano/napkin/hooks.rb
115
+ - lib/capistrano/napkin/tasks.rb
116
+ - lib/capistrano/napkin/utilities.rb
117
+ - lib/capistrano/napkin/version.rb
118
+ - lib/capistrano/tasks/hooks.cap
119
+ - lib/capistrano/tasks/napkin.cap
120
+ homepage: http://github.com/esmarkowski/napkin
121
+ licenses:
122
+ - MIT
123
+ metadata: {}
124
+ post_install_message: " Initialize Gitflow\n\n git flow init -df'\n git config
125
+ gitflow.branch.develop \"develop\"\n git config gitflow.branch.master \"master\"\n
126
+ \ git config gitflow.prefix.versiontag \"v\"\n git config gitflow.prefix.feature
127
+ \"feature/\"\n git config gitflow.prefix.release \"release/\"\n git config
128
+ gitflow.prefix.hotfix \"hotfix/\"\n git config gitflow.prefix.support \"support/\"\n\n\n
129
+ \ Then place this in your Rails root directory as .napkinrc\n\n prude = 0 \n\n
130
+ \ ## gitflow_master\n # Default: master\n #gitflow_master = master\n\n ##
131
+ gitflow_develop\n # Default: develop\n #gitflow_develop = develop\n\n ##
132
+ gitflow_feature\n # Default: feature\n #gitflow_feature = feature\n\n ##
133
+ gitflow_release\n # Default: release\n #gitflow_release = release\n\n ##
134
+ gitflow_version_tag\n # Default: v\n #gitflow_version_tag = v\n\n ## deploy_production\n
135
+ \ # Default: production\n #deploy_production = production\n\n ## deploy_staging\n
136
+ \ # Default: [:staging, :qa]\n #deploy_staging = [:staging, :qa]\n\n ##
137
+ previous_releases\n # Default: 3\n previous_releases = '8' \n\n ## allow_untagged_deply\n
138
+ \ allow_untagged_deply = true\n\n"
139
+ rdoc_options: []
140
+ require_paths:
141
+ - lib
142
+ required_ruby_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">"
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ requirements: []
153
+ rubyforge_project:
154
+ rubygems_version: 2.6.11
155
+ signing_key:
156
+ specification_version: 3
157
+ summary: Gitflow enabled capistrano
158
+ test_files: []