releasecop 0.0.13 → 0.0.16
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/README.md +8 -5
- data/lib/releasecop/comparison.rb +3 -1
- data/lib/releasecop/manifest_item.rb +7 -5
- data/lib/releasecop/version.rb +1 -1
- data/lib/releasecop.rb +2 -0
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 688d27f9f3caa8116455a3a9efa09907995143c815c78c242291fb2213414c83
|
4
|
+
data.tar.gz: f70f81672b5436f91e48eac60d65ce3a14a182a451f37ab53634613f7788b1fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a2db437039bf5d9428743adc2aa818bfe3f65e37836b206aeb0d04f0a4b18dda5f6be76a1b1c0378d6c89b9a0ed6efc3a7e01144f53c30535f4109de7d6c0d2
|
7
|
+
data.tar.gz: f39a326831ef4f38b54e5c5b9bc001ec109e8df49d2678986d33e103926da8319fbe2439d5f5479971892a1e86f1410e574cb2647155f587c52a16f79354bcfc
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,19 @@
|
|
2
2
|
------------
|
3
3
|
* Your contribution here...
|
4
4
|
|
5
|
+
0.0.16 (2022-07-27)
|
6
|
+
------------
|
7
|
+
* Update README to document both master and main branch approaches.
|
8
|
+
* Require fileutils (fixes uninitialized constant Releasecop::Cli::FileUtils (NameError))
|
9
|
+
|
10
|
+
0.0.15 (2019-04-05)
|
11
|
+
---
|
12
|
+
* Update for compatibility with hokusai >=0.5.4 (now incompatible with earlier versions) (57ee7ae56)
|
13
|
+
|
14
|
+
0.0.14 (2019-01-07)
|
15
|
+
---
|
16
|
+
* Fix `tag_pattern`-matching to respect annotated tags (c7eda3599)
|
17
|
+
|
5
18
|
0.0.13 (2018-11-15)
|
6
19
|
---
|
7
20
|
* Add email to diff output (081d270)
|
data/README.md
CHANGED
@@ -22,8 +22,8 @@ In the manifest, each project lists the environments to which code is deployed _
|
|
22
22
|
{"name": "production", "git": "git@heroku.com:charge-production.git"}
|
23
23
|
],
|
24
24
|
"heat": [
|
25
|
-
{"name": "
|
26
|
-
{"name": "
|
25
|
+
{"name": "main", "git": "git@github.com:artsy/heat.git", "branch": "main"},
|
26
|
+
{"name": "succeeded", "git": "git@github.com:artsy/heat.git", "branch": "succeeded"},
|
27
27
|
{"name": "production", "git": "git@github.com:artsy/heat.git", "branch": "production"}
|
28
28
|
]
|
29
29
|
}
|
@@ -39,8 +39,8 @@ Example output:
|
|
39
39
|
staging is up-to-date with master
|
40
40
|
production is up-to-date with staging
|
41
41
|
heat...
|
42
|
-
|
43
|
-
production is behind
|
42
|
+
succeeded is up-to-date with main
|
43
|
+
production is behind succeeded by:
|
44
44
|
4557f60 2015-03-24 Upgrade to 3.9 (timsmith)
|
45
45
|
f33acc4 2015-03-25 Add support for avatars (janeR)
|
46
46
|
2 project(s) checked. 1 environment(s) out-of-date.
|
@@ -76,7 +76,7 @@ Many teams create git tags corresponding to each milestone or release. The `tag_
|
|
76
76
|
```json
|
77
77
|
{
|
78
78
|
"causality": [
|
79
|
-
{"name": "
|
79
|
+
{"name": "main", "git": "git@github.com:artsy/causality.git", "branch": "main" },
|
80
80
|
{"name": "staging", "git": "git@github.com:artsy/causality.git", "tag_pattern": "staging-*"},
|
81
81
|
{"name": "production", "git": "git@github.com:artsy/causality.git", "tag_pattern": "release-*"}
|
82
82
|
]
|
@@ -85,5 +85,8 @@ Many teams create git tags corresponding to each milestone or release. The `tag_
|
|
85
85
|
|
86
86
|
The most recent commit matching each tag expression is presumed to correspond with the state of each environment. Tag patterns follow `git` conventions, so, e.g., `staging-*` will be treated as `/refs/tags/staging-*`.
|
87
87
|
|
88
|
+
### A note about default branch names
|
89
|
+
|
90
|
+
For backwards compatibility, `releasecop` assumes a default branch name of `master`. To override this behavior, set the `RELEASECOP_DEFAULT_BRANCH` environment variable (to e.g. `main`).
|
88
91
|
|
89
92
|
Copyright (c) 2015-2018 Joey Aghion, Artsy
|
@@ -2,6 +2,8 @@ module Releasecop
|
|
2
2
|
class Comparison
|
3
3
|
attr_accessor :lines, :behind, :ahead
|
4
4
|
|
5
|
+
PRETTY_FORMAT = '%h %ad %s (%an, %ae)'
|
6
|
+
|
5
7
|
def initialize(ahead, behind)
|
6
8
|
@ahead = ahead
|
7
9
|
@behind = behind
|
@@ -18,7 +20,7 @@ module Releasecop
|
|
18
20
|
private
|
19
21
|
|
20
22
|
def log
|
21
|
-
`git log #{@behind.for_rev_range}..#{@ahead.for_rev_range} --pretty=format:"
|
23
|
+
`git log #{@behind.for_rev_range}..#{@ahead.for_rev_range} --pretty=format:"#{PRETTY_FORMAT}" --date=short --no-merges`
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -7,7 +7,7 @@ module Releasecop
|
|
7
7
|
@repo_name = repo_name
|
8
8
|
@git = item['git']
|
9
9
|
@name = item['name']
|
10
|
-
@branch = item['branch'] || 'master'
|
10
|
+
@branch = item['branch'] || ENV['RELEASECOP_DEFAULT_BRANCH'] || 'master'
|
11
11
|
@options = item.select { |k, _v| OPTION_KEYS.include?(k) }
|
12
12
|
end
|
13
13
|
|
@@ -24,13 +24,15 @@ module Releasecop
|
|
24
24
|
private
|
25
25
|
|
26
26
|
def find_hokusai_sha
|
27
|
-
images_output = with_aws_env { `hokusai registry images` }
|
28
|
-
tags = images_output.lines.grep(/\d{4}.*
|
29
|
-
|
27
|
+
images_output = with_aws_env { `hokusai registry images --limit 1000` } # list as many items as possible
|
28
|
+
tags = images_output.lines.grep(/\d{4}.* \| .*/).map do |l| # lines listing images
|
29
|
+
l.split(' | ').last.gsub(/\e\[(\d+)(\;\d+)*m/, '').split(',').map(&:strip) # tags
|
30
|
+
end
|
31
|
+
tags.detect{|t| t.include?(@options['hokusai']) }.detect{|t| t[/^[0-9a-f]{40}$/]} # first SHA-seeming tag matching environment
|
30
32
|
end
|
31
33
|
|
32
34
|
def find_tag_pattern_sha
|
33
|
-
`git for-each-ref --format='%(objectname)' --count=1 --sort=-authordate --sort=-committerdate 'refs/tags/#{@options['tag_pattern']}'`.strip
|
35
|
+
`git for-each-ref --format='%(objectname)' --count=1 --sort=-authordate --sort=-committerdate --sort=-creatordate 'refs/tags/#{@options['tag_pattern']}'`.strip
|
34
36
|
end
|
35
37
|
|
36
38
|
# not thread-safe
|
data/lib/releasecop/version.rb
CHANGED
data/lib/releasecop.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
require "releasecop/version"
|
2
3
|
require 'thor'
|
3
4
|
require 'shellwords'
|
@@ -6,6 +7,7 @@ require 'releasecop/manifest_item'
|
|
6
7
|
require "releasecop/comparison"
|
7
8
|
require "releasecop/result"
|
8
9
|
require "releasecop/checker"
|
10
|
+
require 'fileutils'
|
9
11
|
require "releasecop/cli"
|
10
12
|
|
11
13
|
module Releasecop
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: releasecop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joey Aghion
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
description:
|
69
|
+
description:
|
70
70
|
email:
|
71
71
|
- joey@aghion.com
|
72
72
|
executables:
|
@@ -93,7 +93,7 @@ homepage: https://github.com/joeyAghion/releasecop
|
|
93
93
|
licenses:
|
94
94
|
- MIT
|
95
95
|
metadata: {}
|
96
|
-
post_install_message:
|
96
|
+
post_install_message:
|
97
97
|
rdoc_options: []
|
98
98
|
require_paths:
|
99
99
|
- lib
|
@@ -108,9 +108,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
110
|
requirements: []
|
111
|
-
|
112
|
-
|
113
|
-
signing_key:
|
111
|
+
rubygems_version: 3.3.14
|
112
|
+
signing_key:
|
114
113
|
specification_version: 4
|
115
114
|
summary: Given a list of projects and environments pipelines, report which environments
|
116
115
|
are "behind" and by which commits.
|