milestoner 1.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +43 -9
- data/bin/milestoner +1 -0
- data/lib/milestoner.rb +2 -0
- data/lib/milestoner/aids/git.rb +2 -0
- data/lib/milestoner/cli.rb +2 -0
- data/lib/milestoner/configuration.rb +2 -0
- data/lib/milestoner/errors/base.rb +2 -0
- data/lib/milestoner/errors/configuration.rb +2 -0
- data/lib/milestoner/errors/duplicate_tag.rb +2 -0
- data/lib/milestoner/errors/git.rb +2 -0
- data/lib/milestoner/errors/version.rb +2 -0
- data/lib/milestoner/identity.rb +3 -1
- data/lib/milestoner/publisher.rb +2 -0
- data/lib/milestoner/pusher.rb +2 -0
- data/lib/milestoner/tagger.rb +5 -3
- data/lib/tasks/console.rake +9 -0
- data/lib/tasks/rspec.rake +2 -0
- data/lib/tasks/rubocop.rake +2 -0
- metadata +9 -44
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f12b4a3234f91869a03f18bc09985b9d02be75fb
|
4
|
+
data.tar.gz: a9569f873f4daf4f01e0c9702f8419e48dd0aeb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d42da86c3180c0f427c860fb3028c155bab76064f9f0a8c9d13059aac7eebfb653cf22d05dd357c4ba91b50dc2e2a85314cdd47afc66db069d578449ee05d0c
|
7
|
+
data.tar.gz: c653ec5f2de7f5f68c4e81f3fbf1f948a24f03c314b0ed851739f88f25169a105534cc91fadd5d8b1a41eb44fa1c89bfb8812a2cd4dc23d1e16db108a8ee655b
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
[![Code Climate GPA](https://codeclimate.com/github/bkuhlmann/milestoner.svg)](https://codeclimate.com/github/bkuhlmann/milestoner)
|
5
5
|
[![Code Climate Coverage](https://codeclimate.com/github/bkuhlmann/milestoner/coverage.svg)](https://codeclimate.com/github/bkuhlmann/milestoner)
|
6
6
|
[![Gemnasium Status](https://gemnasium.com/bkuhlmann/milestoner.svg)](https://gemnasium.com/bkuhlmann/milestoner)
|
7
|
-
[![Travis CI Status](https://secure.travis-ci.org/bkuhlmann/milestoner.svg)](
|
7
|
+
[![Travis CI Status](https://secure.travis-ci.org/bkuhlmann/milestoner.svg)](https://travis-ci.org/bkuhlmann/milestoner)
|
8
8
|
[![Patreon](https://img.shields.io/badge/patreon-donate-brightgreen.svg)](https://www.patreon.com/bkuhlmann)
|
9
9
|
|
10
10
|
A command line interface for releasing Git repository milestones.
|
@@ -19,6 +19,7 @@ A command line interface for releasing Git repository milestones.
|
|
19
19
|
- [Usage](#usage)
|
20
20
|
- [Command Line Interface (CLI)](#command-line-interface-cli)
|
21
21
|
- [Customization](#customization)
|
22
|
+
- [Security](#security)
|
22
23
|
- [Tests](#tests)
|
23
24
|
- [Versioning](#versioning)
|
24
25
|
- [Code of Conduct](#code-of-conduct)
|
@@ -32,12 +33,17 @@ A command line interface for releasing Git repository milestones.
|
|
32
33
|
# Features
|
33
34
|
|
34
35
|
- Ensures [Semantic Versioning](http://semver.org) of Git repository tags:
|
35
|
-
- Format: `v<major>.<minor
|
36
|
+
- Format: `v<major>.<minor>.<maintenance>`.
|
36
37
|
- Example: `v0.1.0`.
|
37
38
|
- Ensures Git commits since last tag (or since initialization of repository if no tags exist) are included within each
|
38
39
|
Git tag message.
|
39
|
-
- Ensures Git commit messages are grouped by prefix, in order defined, for each Git tag message (
|
40
|
-
customized):
|
40
|
+
- Ensures Git commit messages are grouped by prefix, in order defined, for each Git tag message. Prefix defaults (can be
|
41
|
+
customized):
|
42
|
+
- Fixed
|
43
|
+
- Added
|
44
|
+
- Updated
|
45
|
+
- Removed
|
46
|
+
- Refactored
|
41
47
|
- Ensures Git commit merge messages are excluded within each Git tag message.
|
42
48
|
- Ensures Git commit messages are alphabetically sorted within each Git tag message.
|
43
49
|
- Ensures duplicate Git commit messages are removed (if any) within each Git tag message.
|
@@ -49,7 +55,7 @@ A command line interface for releasing Git repository milestones.
|
|
49
55
|
# Requirements
|
50
56
|
|
51
57
|
0. A UNIX-based system.
|
52
|
-
0. [
|
58
|
+
0. [Ruby 2.3.x](https://www.ruby-lang.org).
|
53
59
|
0. [GnuPG](https://www.gnupg.org).
|
54
60
|
|
55
61
|
# Setup
|
@@ -88,9 +94,9 @@ For publish options, type: `milestoner help publish`
|
|
88
94
|
|
89
95
|
-s, [--sign], [--no-sign] # Sign tag with GPG key.
|
90
96
|
|
91
|
-
When using Milestoner, the `--publish` command is intended to be the only command necessary for publishing a new
|
92
|
-
|
93
|
-
|
97
|
+
When using Milestoner, the `--publish` command is intended to be the only command necessary for publishing a new release
|
98
|
+
as it handles all of the steps necessary for tagging and pushing a new milestone. Should individual steps be needed,
|
99
|
+
then the `--tag` and `--push` options are available.
|
94
100
|
|
95
101
|
## Customization
|
96
102
|
|
@@ -127,7 +133,7 @@ Each `.milestonerrc` setting can be configured as follows:
|
|
127
133
|
- `version`: By default it is left blank so you'll be prompted by the CLI. However, it can be nice to bump this version
|
128
134
|
prior to each release and have the current version checked into source code at a per project level. The version, if
|
129
135
|
set, will be used to tag the repository. If the version is a duplicate, an error will be thrown. When supplying a
|
130
|
-
version, use this format: `<major>.<minor
|
136
|
+
version, use this format: `<major>.<minor>.<maintenance>`. Example: `0.1.0`.
|
131
137
|
- `git_commit_prefixes`: Should the default prefixes not be desired, you can define Git commit prefixes that match your
|
132
138
|
style. *NOTE: Prefix order is important with the first prefix defined taking precedence over the second and so forth.*
|
133
139
|
Special characters are allowed for prefixes but should be enclosed in quotes if used. To disable prefix usage
|
@@ -136,6 +142,34 @@ Each `.milestonerrc` setting can be configured as follows:
|
|
136
142
|
signing for enhanced security and include a signed signature as part of the Git tag. This is useful for public
|
137
143
|
milestones where the author of a milestone can be verified to ensure milestone integrity/security.
|
138
144
|
|
145
|
+
# Security
|
146
|
+
|
147
|
+
To securely sign your Git tags, install and configure [GPG](https://www.gnupg.org):
|
148
|
+
|
149
|
+
brew install gpg
|
150
|
+
gpg --gen-key
|
151
|
+
|
152
|
+
When creating your GPG key, choose these settings:
|
153
|
+
|
154
|
+
- Key kind: RSA and RSA (default)
|
155
|
+
- Key size: 4096
|
156
|
+
- Key validity: 0
|
157
|
+
- Real Name: `<your name>`
|
158
|
+
- Email: `<your email>`
|
159
|
+
- Passphrase: `<your passphrase>`
|
160
|
+
|
161
|
+
To obtain your key, run the following and take the part after the forward slash:
|
162
|
+
|
163
|
+
gpg --list-keys | grep pub
|
164
|
+
|
165
|
+
Add your key to your global Git configuration in the `[user]` section. Example:
|
166
|
+
|
167
|
+
[user]
|
168
|
+
signingkey = <your GPG key>
|
169
|
+
|
170
|
+
Now, when publishing a new milestone (i.e. `milestoner --publish <version> --sign`), signing of your Git tag will happen
|
171
|
+
automatically. You will be prompted for the GPG Passphrase each time but that is to be expected.
|
172
|
+
|
139
173
|
# Tests
|
140
174
|
|
141
175
|
To test, run:
|
data/bin/milestoner
CHANGED
data/lib/milestoner.rb
CHANGED
data/lib/milestoner/aids/git.rb
CHANGED
data/lib/milestoner/cli.rb
CHANGED
data/lib/milestoner/identity.rb
CHANGED
data/lib/milestoner/publisher.rb
CHANGED
data/lib/milestoner/pusher.rb
CHANGED
data/lib/milestoner/tagger.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "open3"
|
2
4
|
|
3
5
|
module Milestoner
|
@@ -73,11 +75,11 @@ module Milestoner
|
|
73
75
|
end
|
74
76
|
|
75
77
|
def raw_commits
|
78
|
+
log_command = "git log --oneline --no-merges --format='%s'"
|
76
79
|
tag_command = "$(git describe --abbrev=0 --tags --always)..HEAD"
|
77
|
-
|
78
|
-
full_command.gsub!(tag_command, "") unless tagged?
|
80
|
+
commits_command = tagged? ? "#{log_command} #{tag_command}" : log_command
|
79
81
|
|
80
|
-
`#{
|
82
|
+
`#{commits_command}`.split("\n")
|
81
83
|
end
|
82
84
|
|
83
85
|
def build_commit_prefix_groups
|
data/lib/tasks/rspec.rake
CHANGED
data/lib/tasks/rubocop.rake
CHANGED
metadata
CHANGED
@@ -1,36 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: milestoner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZicm9v
|
14
|
-
a2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQBGRYC
|
15
|
-
aW8wHhcNMTUwNzA1MTQ1MzExWhcNMTYwNzA0MTQ1MzExWjBBMQ8wDQYDVQQDDAZi
|
16
|
-
cm9va2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQB
|
17
|
-
GRYCaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzhOVcvLGBCceM
|
18
|
-
PppVpJLUKsnskWzc1VqBXmv30feKNw+MOxMQaDsIP421qwqGO/2JHY60Kuobssk+
|
19
|
-
8/wqZkVFF/FFKxoQjuhlhc+VWLm8jWgXd4N1kwO2yytscQTzxc5qXarwA+36fqVH
|
20
|
-
RhBAHhjka+HdBI+6o3CXRHJoC47iav+QpR7u/wYl3gNq6MJO3MmTKqHegEDLjRN0
|
21
|
-
FJAr3bRAwq03ZtTuAVA2bdKLGThehe1RRRtJHJ/PHpmL2c203/GTXYtG6C8ILZIp
|
22
|
-
ZroTqQ8yglCJ+3hSOmodZqSAQ0Rj7GJgtuNH81qlSrHu5sTvoZjGmEqSIhvsSJ80
|
23
|
-
wKoPdZnFAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
24
|
-
BBSUnF478a5lB4xuOBiktJdMJv6JmDAfBgNVHREEGDAWgRRicm9va2VAYWxjaGVt
|
25
|
-
aXN0cy5pbzAfBgNVHRIEGDAWgRRicm9va2VAYWxjaGVtaXN0cy5pbzANBgkqhkiG
|
26
|
-
9w0BAQUFAAOCAQEAT7KtBXWsq1KA7NOSMeFEDeSvhrgdLwCG/37pIu0rjvx9iAW4
|
27
|
-
gncxV0MccqIUtaF+lekjlXkIO+rXAVjvdha23KtpFTW90dYXp4NLPnPlSdyvYzJy
|
28
|
-
FIAaWGvujOT8xEu4umd45q5aepE8li4bR071i5Z7F0trKNVYYrxjQFmH5SSKYRT/
|
29
|
-
fXtICtAh1de3z3SOSK58IMPwjuoApYBxiqlmx0Uhla7mrzCE5+NmLPit3hLH6JFK
|
30
|
-
aSif+qBc6oHD7EQWPF5cZkzkIURuwNwPBngZGxIKaMAgRhjGFXzUMAaq++r59cS9
|
31
|
-
xTfQ4k6fglKEgpnLAXiKdo2c8Ym+X4rIKFfedQ==
|
32
|
-
-----END CERTIFICATE-----
|
33
|
-
date: 2015-11-28 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-01-17 00:00:00.000000000 Z
|
34
12
|
dependencies:
|
35
13
|
- !ruby/object:Gem::Dependency
|
36
14
|
name: thor
|
@@ -52,14 +30,14 @@ dependencies:
|
|
52
30
|
requirements:
|
53
31
|
- - "~>"
|
54
32
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
33
|
+
version: '3.0'
|
56
34
|
type: :runtime
|
57
35
|
prerelease: false
|
58
36
|
version_requirements: !ruby/object:Gem::Requirement
|
59
37
|
requirements:
|
60
38
|
- - "~>"
|
61
39
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
40
|
+
version: '3.0'
|
63
41
|
- !ruby/object:Gem::Dependency
|
64
42
|
name: rake
|
65
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,20 +52,6 @@ dependencies:
|
|
74
52
|
- - ">="
|
75
53
|
- !ruby/object:Gem::Version
|
76
54
|
version: '0'
|
77
|
-
- !ruby/object:Gem::Dependency
|
78
|
-
name: gemsmith
|
79
|
-
requirement: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
|
-
type: :development
|
85
|
-
prerelease: false
|
86
|
-
version_requirements: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - ">="
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '0'
|
91
55
|
- !ruby/object:Gem::Dependency
|
92
56
|
name: pry
|
93
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -324,6 +288,7 @@ files:
|
|
324
288
|
- lib/milestoner/publisher.rb
|
325
289
|
- lib/milestoner/pusher.rb
|
326
290
|
- lib/milestoner/tagger.rb
|
291
|
+
- lib/tasks/console.rake
|
327
292
|
- lib/tasks/rspec.rake
|
328
293
|
- lib/tasks/rubocop.rake
|
329
294
|
homepage: https://github.com/bkuhlmann/milestoner
|
@@ -336,9 +301,9 @@ require_paths:
|
|
336
301
|
- lib
|
337
302
|
required_ruby_version: !ruby/object:Gem::Requirement
|
338
303
|
requirements:
|
339
|
-
- - "
|
304
|
+
- - "~>"
|
340
305
|
- !ruby/object:Gem::Version
|
341
|
-
version: '
|
306
|
+
version: '2.3'
|
342
307
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
343
308
|
requirements:
|
344
309
|
- - ">="
|
@@ -346,7 +311,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
346
311
|
version: '0'
|
347
312
|
requirements: []
|
348
313
|
rubyforge_project:
|
349
|
-
rubygems_version: 2.5.
|
314
|
+
rubygems_version: 2.5.1
|
350
315
|
signing_key:
|
351
316
|
specification_version: 4
|
352
317
|
summary: A command line interface for releasing Git repository milestones.
|
checksums.yaml.gz.sig
DELETED
Binary file
|
data.tar.gz.sig
DELETED
Binary file
|
metadata.gz.sig
DELETED
Binary file
|