git-release 0.0.1
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.
- data/.gitignore +17 -0
- data/.travis.yml +8 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +150 -0
- data/Rakefile +1 -0
- data/bin/git-release +135 -0
- data/bin/git-release-deployed +140 -0
- data/git-release.gemspec +23 -0
- data/lib/git-release.rb +1 -0
- data/lib/git_release/version.rb +3 -0
- data/support/changelog-functions.sh +200 -0
- data/support/git-functions.sh +78 -0
- data/support/git-release-functions.sh +125 -0
- data/support/language-bash.sh +30 -0
- data/support/support-functions.sh +10 -0
- data/test/bin/run_all +7 -0
- data/test/integration/releaseable-deployed-test.sh +359 -0
- data/test/integration/releaseable-test.sh +409 -0
- data/test/support/roundup +310 -0
- data/test/test_helper.sh +95 -0
- data/test/unit/changelog-functions-test.sh +440 -0
- data/test/unit/git-functions-test.sh +215 -0
- data/test/unit/releaseable-test.sh +185 -0
- metadata +112 -0
@@ -0,0 +1,215 @@
|
|
1
|
+
#!/bin/bash -e
|
2
|
+
|
3
|
+
. ./test/test_helper.sh
|
4
|
+
. ./support/git-functions.sh
|
5
|
+
|
6
|
+
describe "git-release - unit - git functions"
|
7
|
+
|
8
|
+
after() {
|
9
|
+
if [[ $MAINTAIN_SANDBOX != true ]]; then
|
10
|
+
remove_sandbox
|
11
|
+
fi;
|
12
|
+
}
|
13
|
+
|
14
|
+
it_uses_check_tag_exists_to_return_false_if_no_tags_exist() {
|
15
|
+
generate_git_repo
|
16
|
+
|
17
|
+
result=$(set +e ; check_tag_exists "not/found/anything" ; echo $?)
|
18
|
+
test 1 -eq $result
|
19
|
+
|
20
|
+
result=$(set +e ; check_tag_exists "" ; echo $?)
|
21
|
+
test 1 -eq $result
|
22
|
+
}
|
23
|
+
|
24
|
+
it_uses_check_tag_exists_to_return_false_if_it_doesnt_exist() {
|
25
|
+
local tags=(
|
26
|
+
"release/v1.0.5"
|
27
|
+
"release/v1.0.6"
|
28
|
+
)
|
29
|
+
generate_sandbox_tags tags[@]
|
30
|
+
|
31
|
+
result=$(set +e ; check_tag_exists "not/found/anything" ; echo $?)
|
32
|
+
test 1 -eq $result
|
33
|
+
|
34
|
+
result=$(set +e ; check_tag_exists ""; echo $?)
|
35
|
+
test 1 -eq $result
|
36
|
+
}
|
37
|
+
|
38
|
+
it_uses_check_tag_exists_to_return_true_if_tag_exists() {
|
39
|
+
|
40
|
+
local tags=(
|
41
|
+
"release/v1.0.5"
|
42
|
+
"release/v1.0.6"
|
43
|
+
)
|
44
|
+
generate_sandbox_tags tags[@]
|
45
|
+
|
46
|
+
result=$(set +e ; check_tag_exists "release/v1.0.5" ; echo $?)
|
47
|
+
test 0 -eq $result
|
48
|
+
|
49
|
+
result=$(set +e ; check_tag_exists "release/v1.0.6" ; echo $?)
|
50
|
+
test 0 -eq $result
|
51
|
+
}
|
52
|
+
|
53
|
+
#ensure_git_directory()
|
54
|
+
|
55
|
+
it_fails_on_ensure_git_directory_with_no_git() {
|
56
|
+
enter_sandbox
|
57
|
+
rm -rf .git
|
58
|
+
|
59
|
+
should_fail "$(ensure_git_directory)"
|
60
|
+
}
|
61
|
+
|
62
|
+
it_passes_on_ensure_git_directory_with_git_directory() {
|
63
|
+
enter_sandbox
|
64
|
+
mkdir -p .git
|
65
|
+
|
66
|
+
should_succeed $(ensure_git_directory)
|
67
|
+
}
|
68
|
+
|
69
|
+
#ensure_git_is_clean()
|
70
|
+
|
71
|
+
it_fails_on_ensure_git_is_clean_when_dirty(){
|
72
|
+
generate_git_repo
|
73
|
+
should_succeed $(ensure_git_is_clean)
|
74
|
+
touch 'AnyOldFile'
|
75
|
+
should_fail $(ensure_git_is_clean)
|
76
|
+
|
77
|
+
test "$(ensure_git_is_clean)" = "Error - Current branch is in a dirty state, please commit your changes first.
|
78
|
+
# On branch master
|
79
|
+
# Untracked files:
|
80
|
+
# (use \"git add <file>...\" to include in what will be committed)
|
81
|
+
#
|
82
|
+
#"$'\t'"AnyOldFile
|
83
|
+
nothing added to commit but untracked files present (use \"git add\" to track)"
|
84
|
+
}
|
85
|
+
|
86
|
+
it_passes_on_ensure_git_is_clean_when_clean(){
|
87
|
+
generate_git_repo
|
88
|
+
|
89
|
+
should_succeed $(ensure_git_is_clean)
|
90
|
+
}
|
91
|
+
|
92
|
+
#get_commits_between_points
|
93
|
+
|
94
|
+
it_uses_get_commits_between_points_to_list_all_commits_with_nothing_passed() {
|
95
|
+
generate_git_repo
|
96
|
+
|
97
|
+
test "$(get_commits_between_points)" = "$(get_sha_for_first_commit)"
|
98
|
+
}
|
99
|
+
|
100
|
+
it_uses_get_commits_between_points_to_list_all_commits_from_a_start_point() {
|
101
|
+
local tags=(
|
102
|
+
"random_tag_1"
|
103
|
+
"release/v1.0.5"
|
104
|
+
"random_tag_2"
|
105
|
+
"release/v1.0.6"
|
106
|
+
"random_tag_3"
|
107
|
+
)
|
108
|
+
generate_sandbox_tags tags[@]
|
109
|
+
|
110
|
+
local output=$(get_commits_between_points 'random_tag_2')
|
111
|
+
test "$output" = "$(get_sha_for_tag_name 'random_tag_3')
|
112
|
+
$(get_sha_for_tag_name 'release/v1.0.6')
|
113
|
+
$(get_sha_for_tag_name 'random_tag_2')"
|
114
|
+
}
|
115
|
+
|
116
|
+
it_uses_get_commits_between_points_to_get_nothing_when_no_commits_exists() {
|
117
|
+
generate_git_repo
|
118
|
+
|
119
|
+
should_fail $(get_commits_between_points 'anyTagName' 'anotherTagName')
|
120
|
+
}
|
121
|
+
|
122
|
+
it_uses_get_commits_between_points_to_return_commits_with_no_start_point() {
|
123
|
+
local tags=(
|
124
|
+
"random_tag_1"
|
125
|
+
"release/v1.0.5"
|
126
|
+
"random_tag_2"
|
127
|
+
"release/v1.0.6"
|
128
|
+
"random_tag_3"
|
129
|
+
)
|
130
|
+
generate_sandbox_tags tags[@]
|
131
|
+
|
132
|
+
local start_point=""
|
133
|
+
local end_point="release/v1.0.6"
|
134
|
+
local output=$(get_commits_between_points "$start_point" "$end_point")
|
135
|
+
|
136
|
+
#Ordered by creation date
|
137
|
+
local target_tag_sha=$(get_sha_for_tag_name 'release/v1.0.6')
|
138
|
+
local older_sha_1=$(get_sha_for_tag_name 'random_tag_2')
|
139
|
+
local older_sha_2=$(get_sha_for_tag_name 'release/v1.0.5')
|
140
|
+
local older_sha_3=$(get_sha_for_tag_name 'random_tag_1')
|
141
|
+
local initial_commit=$(get_sha_for_first_commit)
|
142
|
+
|
143
|
+
test "$output" = "$target_tag_sha
|
144
|
+
$older_sha_1
|
145
|
+
$older_sha_2
|
146
|
+
$older_sha_3
|
147
|
+
$initial_commit"
|
148
|
+
}
|
149
|
+
|
150
|
+
it_uses_get_commits_between_points_to_return_all_commits_between_points_with_filter() {
|
151
|
+
local tags=(
|
152
|
+
"random_tag_1"
|
153
|
+
"random_tag_2"
|
154
|
+
"release/production/v1.0.9"
|
155
|
+
"release/production/v3.0.9"
|
156
|
+
"release/production/v3.1.9"
|
157
|
+
"release/staging/v2.0.3"
|
158
|
+
)
|
159
|
+
generate_sandbox_tags tags[@]
|
160
|
+
|
161
|
+
local start_point="release/production/v1.0.9"
|
162
|
+
local end_point="release/production/v3.0.9"
|
163
|
+
|
164
|
+
local commit_message=$(get_commit_message_for_latest_commit 'release/production/v3.0.9')
|
165
|
+
local target_tag_sha=$(get_sha_for_tag_name 'release/production/v3.0.9')
|
166
|
+
|
167
|
+
local output=$(get_commits_between_points "$start_point" "$end_point" "$commit_message")
|
168
|
+
|
169
|
+
test "$output" = "$target_tag_sha"
|
170
|
+
}
|
171
|
+
|
172
|
+
it_uses_get_commits_between_points_to_return_all_commits_with_no_start_point_with_filter() {
|
173
|
+
local tags=(
|
174
|
+
"random_tag_1"
|
175
|
+
"random_tag_2"
|
176
|
+
"release/production/v1.0.9"
|
177
|
+
"release/production/v3.0.9"
|
178
|
+
"release/production/v3.1.9"
|
179
|
+
"release/staging/v2.0.3"
|
180
|
+
)
|
181
|
+
generate_sandbox_tags tags[@]
|
182
|
+
|
183
|
+
local start_point=""
|
184
|
+
local end_point="release/production/v3.1.9"
|
185
|
+
|
186
|
+
local commit_message=$(get_commit_message_for_latest_commit 'release/production/v3.1.9')
|
187
|
+
local target_tag_sha=$(get_sha_for_tag_name 'release/production/v3.1.9')
|
188
|
+
|
189
|
+
local output=$(get_commits_between_points "$start_point" "$end_point" "$commit_message")
|
190
|
+
|
191
|
+
test "$output" = "$target_tag_sha"
|
192
|
+
}
|
193
|
+
|
194
|
+
it_uses_get_commits_between_points_to_return_all_commits_between_points() {
|
195
|
+
local tags=(
|
196
|
+
'random_tag_1'
|
197
|
+
'release/v1.0.5'
|
198
|
+
'random_tag_2'
|
199
|
+
'release/v1.0.6'
|
200
|
+
)
|
201
|
+
generate_sandbox_tags tags[@]
|
202
|
+
|
203
|
+
local start_point="release/v1.0.5"
|
204
|
+
local end_point="release/v1.0.6"
|
205
|
+
local output=$(get_commits_between_points "$start_point" "$end_point")
|
206
|
+
|
207
|
+
#Ordered by creation date
|
208
|
+
local target_tag_sha=$(get_sha_for_tag_name 'release/v1.0.6')
|
209
|
+
local older_sha_1=$(get_sha_for_tag_name 'random_tag_2')
|
210
|
+
local older_sha_2=$(get_sha_for_tag_name 'release/v1.0.5')
|
211
|
+
|
212
|
+
test "$output" = "$target_tag_sha
|
213
|
+
$older_sha_1
|
214
|
+
$older_sha_2"
|
215
|
+
}
|
@@ -0,0 +1,185 @@
|
|
1
|
+
#!/bin/bash -e
|
2
|
+
|
3
|
+
. ./test/test_helper.sh
|
4
|
+
. ./support/git-release-functions.sh
|
5
|
+
|
6
|
+
describe "git-release - unit"
|
7
|
+
|
8
|
+
after() {
|
9
|
+
if [[ $MAINTAIN_SANDBOX != true ]]; then
|
10
|
+
remove_sandbox
|
11
|
+
fi;
|
12
|
+
}
|
13
|
+
|
14
|
+
#validate_inputs()
|
15
|
+
|
16
|
+
it_fails_on_validate_inputs_with_no_version_type() {
|
17
|
+
should_fail "$(validate_version_type)"
|
18
|
+
}
|
19
|
+
|
20
|
+
it_fails_on_validate_inputs_with_invalid_version_type() {
|
21
|
+
should_fail "$(validate_version_type "invalid_type")"
|
22
|
+
}
|
23
|
+
|
24
|
+
it_passes_on_validate_inputs_with_major_version_type() {
|
25
|
+
should_succeed $(validate_version_type "major")
|
26
|
+
}
|
27
|
+
|
28
|
+
it_passes_on_validate_inputs_with_minor_version_type() {
|
29
|
+
should_succeed $(validate_version_type "minor")
|
30
|
+
}
|
31
|
+
|
32
|
+
it_passes_on_validate_inputs_with_patch_version_type() {
|
33
|
+
should_succeed $(validate_version_type "patch")
|
34
|
+
}
|
35
|
+
|
36
|
+
#get_release_tags()
|
37
|
+
|
38
|
+
it_uses_get_release_tags_to_return_all_tags_with_no_pattern_ordered_by_alpha() {
|
39
|
+
local tags=(
|
40
|
+
"random_tag_1"
|
41
|
+
"random_tag_2"
|
42
|
+
"random_tag_3"
|
43
|
+
"release/production/v1.0.9"
|
44
|
+
"release/production/v3.0.9"
|
45
|
+
)
|
46
|
+
generate_sandbox_tags tags[@]
|
47
|
+
|
48
|
+
test "$(get_release_tags)" = "random_tag_1
|
49
|
+
random_tag_2
|
50
|
+
random_tag_3
|
51
|
+
release/production/v1.0.9
|
52
|
+
release/production/v3.0.9"
|
53
|
+
}
|
54
|
+
|
55
|
+
it_uses_get_release_tags_to_return_tags_matching_a_given_pattern() {
|
56
|
+
local tags=(
|
57
|
+
"random_tag_1"
|
58
|
+
"random_tag_2"
|
59
|
+
"random_tag_3"
|
60
|
+
"release/production/v1.0.9"
|
61
|
+
"release/production/v3.0.9"
|
62
|
+
)
|
63
|
+
generate_sandbox_tags tags[@]
|
64
|
+
|
65
|
+
local output=$(get_release_tags random)
|
66
|
+
test "$output" = "random_tag_1
|
67
|
+
random_tag_2
|
68
|
+
random_tag_3"
|
69
|
+
|
70
|
+
local output=$(get_release_tags release/production)
|
71
|
+
test "$output" = "release/production/v1.0.9
|
72
|
+
release/production/v3.0.9"
|
73
|
+
}
|
74
|
+
|
75
|
+
#get_last_tag_name()
|
76
|
+
|
77
|
+
it_uses_get_last_tag_name_to_find_the_last_tag_scoped_by_pattern() {
|
78
|
+
local tags=(
|
79
|
+
"random_tag_1"
|
80
|
+
"release/production/v1.0.9"
|
81
|
+
"release/production/v3.0.9"
|
82
|
+
)
|
83
|
+
generate_sandbox_tags tags[@]
|
84
|
+
|
85
|
+
local output=$(get_last_tag_name "release/production/v")
|
86
|
+
test "$output" = "release/production/v3.0.9"
|
87
|
+
}
|
88
|
+
|
89
|
+
it_uses_get_last_tag_name_to_return_nothing_with_no_tags() {
|
90
|
+
test "$(get_last_tag_name 'no/existing/tags')" = ""
|
91
|
+
}
|
92
|
+
|
93
|
+
it_uses_get_last_tag_name_to_return_nothing_with_no_matches() {
|
94
|
+
local tags=(
|
95
|
+
"random_tag_1"
|
96
|
+
"release/production/v3.0.9"
|
97
|
+
)
|
98
|
+
generate_sandbox_tags tags[@]
|
99
|
+
|
100
|
+
test "$(get_last_tag_name 'no/matches/atall')" = ""
|
101
|
+
}
|
102
|
+
|
103
|
+
#get_versioning_prefix_from_tag()
|
104
|
+
|
105
|
+
it_uses_get_versioning_prefix_from_tag_to_error_on_missing_tag() {
|
106
|
+
should_fail $(get_versioning_prefix_from_tag)
|
107
|
+
}
|
108
|
+
|
109
|
+
it_uses_get_versioning_prefix_from_tag_with_an_invalid_tag_name() {
|
110
|
+
should_fail $(get_versioning_prefix_from_tag invalidx.x.x)
|
111
|
+
should_fail $(get_versioning_prefix_from_tag invalid0.0.x)
|
112
|
+
should_fail $(get_versioning_prefix_from_tag invalid1.0)
|
113
|
+
should_fail $(get_versioning_prefix_from_tag invalid0)
|
114
|
+
should_fail $(get_versioning_prefix_from_tag invalidNoVersionNumber)
|
115
|
+
}
|
116
|
+
|
117
|
+
it_uses_get_versioning_prefix_from_tag_to_succeed_capturing_version_prefix() {
|
118
|
+
test "$(get_versioning_prefix_from_tag 'releases/2.1.3')" = "releases/"
|
119
|
+
test "$(get_versioning_prefix_from_tag 'r/v/2.1.3')" = "r/v/"
|
120
|
+
test "$(get_versioning_prefix_from_tag 'some/old/release/v1.0.40')" = "some/old/release/v"
|
121
|
+
}
|
122
|
+
|
123
|
+
#get_version_number_from_tag()
|
124
|
+
|
125
|
+
it_uses_get_version_number_from_tag_to_error_on_missing_tag() {
|
126
|
+
should_fail $(get_version_number_from_tag)
|
127
|
+
}
|
128
|
+
|
129
|
+
it_uses_get_version_number_from_tag_to_error_with_an_invalid_tag_name() {
|
130
|
+
should_fail $(get_version_number_from_tag invalidx.x.x)
|
131
|
+
should_fail $(get_version_number_from_tag invalid1.0)
|
132
|
+
should_fail $(get_version_number_from_tag invalid0)
|
133
|
+
}
|
134
|
+
|
135
|
+
it_uses_get_version_number_from_tag_to_succeed_capturing_version_numbers() {
|
136
|
+
test "$(get_version_number_from_tag 'releases/v102.29.20')" = "102.29.20"
|
137
|
+
test "$(get_version_number_from_tag '1.22.33')" = "1.22.33"
|
138
|
+
test "$(get_version_number_from_tag 'Release with Spaces40.50.60')" = "40.50.60"
|
139
|
+
}
|
140
|
+
|
141
|
+
#get_next_version_number_from_tag()
|
142
|
+
|
143
|
+
it_uses_get_next_version_number_from_tag_to_error_on_missing_version_type() {
|
144
|
+
should_fail $(get_next_version_number_from_tag)
|
145
|
+
}
|
146
|
+
|
147
|
+
it_uses_get_next_version_number_from_tag_to_error_with_an_invalid_last_tag_name() {
|
148
|
+
should_fail $(get_next_version_number_from_tag major invalidx.x.x)
|
149
|
+
should_fail $(get_next_version_number_from_tag major invalid1.0)
|
150
|
+
should_fail $(get_next_version_number_from_tag major invalid0)
|
151
|
+
}
|
152
|
+
|
153
|
+
it_uses_get_next_version_number_from_tag_to_succeed_with_an_empty_version_prefix() {
|
154
|
+
should_succeed $(get_next_version_number_from_tag major)
|
155
|
+
}
|
156
|
+
|
157
|
+
it_uses_get_next_version_number_from_tag_to_succeed_with_no_existing_tags() {
|
158
|
+
should_succeed $(get_next_version_number_from_tag major v1.0.40)
|
159
|
+
}
|
160
|
+
|
161
|
+
it_uses_get_next_version_number_from_tag_to_succeed_with_no_matching_tags() {
|
162
|
+
local output=$(get_next_version_number_from_tag major some/old/release/v1.0.40)
|
163
|
+
test $output = "2.0.40"
|
164
|
+
}
|
165
|
+
|
166
|
+
it_uses_get_next_version_number_from_tag_to_succeed_incrementing_with_no_last_version() {
|
167
|
+
local output=$(get_next_version_number_from_tag major)
|
168
|
+
test $output = "1.0.0"
|
169
|
+
}
|
170
|
+
|
171
|
+
it_uses_get_next_version_number_from_tag_to_succeed_incrementing_with_found_last_version() {
|
172
|
+
local output=$(get_next_version_number_from_tag minor release/production/v3.1.9)
|
173
|
+
test $output = "3.2.9"
|
174
|
+
}
|
175
|
+
|
176
|
+
it_uses_get_next_version_number_from_tag_to_succeed_incrementing_each_type() {
|
177
|
+
local output=$(get_next_version_number_from_tag major release/production/v3.1.9)
|
178
|
+
test $output = "4.1.9"
|
179
|
+
|
180
|
+
local output=$(get_next_version_number_from_tag minor release/staging/v2.0.3)
|
181
|
+
test $output = "2.1.3"
|
182
|
+
|
183
|
+
local output=$(get_next_version_number_from_tag patch release/v1.0.6)
|
184
|
+
test $output = "1.0.7"
|
185
|
+
}
|
metadata
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: git-release
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Tom Meier
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-05-03 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.3'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.3'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description: Changelog and release tag generator from GIT
|
47
|
+
email:
|
48
|
+
- tom@venombytes.com
|
49
|
+
executables:
|
50
|
+
- git-release
|
51
|
+
- git-release-deployed
|
52
|
+
extensions: []
|
53
|
+
extra_rdoc_files: []
|
54
|
+
files:
|
55
|
+
- .gitignore
|
56
|
+
- .travis.yml
|
57
|
+
- Gemfile
|
58
|
+
- LICENSE.txt
|
59
|
+
- README.md
|
60
|
+
- Rakefile
|
61
|
+
- bin/git-release
|
62
|
+
- bin/git-release-deployed
|
63
|
+
- git-release.gemspec
|
64
|
+
- lib/git-release.rb
|
65
|
+
- lib/git_release/version.rb
|
66
|
+
- support/changelog-functions.sh
|
67
|
+
- support/git-functions.sh
|
68
|
+
- support/git-release-functions.sh
|
69
|
+
- support/language-bash.sh
|
70
|
+
- support/support-functions.sh
|
71
|
+
- test/bin/run_all
|
72
|
+
- test/integration/releaseable-deployed-test.sh
|
73
|
+
- test/integration/releaseable-test.sh
|
74
|
+
- test/support/roundup
|
75
|
+
- test/test_helper.sh
|
76
|
+
- test/unit/changelog-functions-test.sh
|
77
|
+
- test/unit/git-functions-test.sh
|
78
|
+
- test/unit/releaseable-test.sh
|
79
|
+
homepage: http://github.com/tommeier/git-release
|
80
|
+
licenses:
|
81
|
+
- MIT
|
82
|
+
post_install_message:
|
83
|
+
rdoc_options: []
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ! '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
94
|
+
requirements:
|
95
|
+
- - ! '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
requirements: []
|
99
|
+
rubyforge_project:
|
100
|
+
rubygems_version: 1.8.23
|
101
|
+
signing_key:
|
102
|
+
specification_version: 3
|
103
|
+
summary: Generate changelog from git commits and tag your release versions
|
104
|
+
test_files:
|
105
|
+
- test/bin/run_all
|
106
|
+
- test/integration/releaseable-deployed-test.sh
|
107
|
+
- test/integration/releaseable-test.sh
|
108
|
+
- test/support/roundup
|
109
|
+
- test/test_helper.sh
|
110
|
+
- test/unit/changelog-functions-test.sh
|
111
|
+
- test/unit/git-functions-test.sh
|
112
|
+
- test/unit/releaseable-test.sh
|