circler 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +37 -47
- data/README.md +18 -53
- data/circler.gemspec +11 -11
- data/lib/circler/command/base_command.rb +4 -0
- data/lib/circler/command/build_command.rb +1 -1
- data/lib/circler/command/retry_command.rb +1 -1
- data/lib/circler/command/watch_command.rb +15 -21
- data/lib/circler/response/build.rb +5 -2
- data/lib/circler/version.rb +1 -1
- metadata +25 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5961bad07a4cc984a8a3e1ee1add550212da1f90
|
4
|
+
data.tar.gz: c09434edbac2080beb6dcde0392bc00c2047ee7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d85d4550bbf333cb53889c3f8c9cfb58f4f0a4ef2bc3e7191be99ec708f83bbfca66050a082b671776bf92a6dc78f263c87bb42d729361c7cc181914ea1a885
|
7
|
+
data.tar.gz: 21ceea61473f81b51694d0ecea126ceb74e4ade95f333bde2bcb88b7fb9754fc973ca4386d0ce787579756c2b84b0b63cca241e927b8adbe61dcf87bbe1fca7e
|
data/Gemfile.lock
CHANGED
@@ -1,76 +1,66 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
circler (0.4.
|
5
|
-
circleci (~> 0.
|
6
|
-
colorize (~> 0.
|
7
|
-
faraday (~> 0.
|
4
|
+
circler (0.4.1)
|
5
|
+
circleci (~> 1.0.3)
|
6
|
+
colorize (~> 0.8.1)
|
7
|
+
faraday (~> 0.11.0)
|
8
8
|
highline (~> 1.7.8)
|
9
9
|
launchy (~> 2.4.3)
|
10
10
|
pusher-client (~> 0.6.2)
|
11
|
-
rugged (~> 0.
|
12
|
-
terminal-notifier (~> 1.
|
13
|
-
terminal-table (~> 1.
|
14
|
-
thor (~> 0.19.
|
11
|
+
rugged (~> 0.25.1.1)
|
12
|
+
terminal-notifier (~> 1.7.1)
|
13
|
+
terminal-table (~> 1.7.3)
|
14
|
+
thor (~> 0.19.4)
|
15
15
|
|
16
16
|
GEM
|
17
17
|
remote: https://rubygems.org/
|
18
18
|
specs:
|
19
|
-
addressable (2.
|
20
|
-
|
21
|
-
|
22
|
-
colorize (0.
|
23
|
-
diff-lcs (1.
|
24
|
-
|
25
|
-
unf (>= 0.0.5, < 1.0.0)
|
26
|
-
faraday (0.9.2)
|
19
|
+
addressable (2.5.0)
|
20
|
+
public_suffix (~> 2.0, >= 2.0.2)
|
21
|
+
circleci (1.0.3)
|
22
|
+
colorize (0.8.1)
|
23
|
+
diff-lcs (1.3)
|
24
|
+
faraday (0.11.0)
|
27
25
|
multipart-post (>= 1.2, < 3)
|
28
26
|
highline (1.7.8)
|
29
|
-
|
30
|
-
domain_name (~> 0.5)
|
31
|
-
json (1.8.3)
|
27
|
+
json (2.0.3)
|
32
28
|
launchy (2.4.3)
|
33
29
|
addressable (~> 2.3)
|
34
|
-
mime-types (2.99.1)
|
35
30
|
multipart-post (2.0.0)
|
36
|
-
|
31
|
+
public_suffix (2.0.5)
|
37
32
|
pusher-client (0.6.2)
|
38
33
|
json
|
39
34
|
websocket (~> 1.0)
|
40
|
-
rake (
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
rspec (3.4
|
46
|
-
rspec-
|
47
|
-
|
48
|
-
rspec-mocks (~> 3.4.0)
|
49
|
-
rspec-core (3.4.3)
|
50
|
-
rspec-support (~> 3.4.0)
|
51
|
-
rspec-expectations (3.4.0)
|
35
|
+
rake (12.0.0)
|
36
|
+
rspec (3.5.0)
|
37
|
+
rspec-core (~> 3.5.0)
|
38
|
+
rspec-expectations (~> 3.5.0)
|
39
|
+
rspec-mocks (~> 3.5.0)
|
40
|
+
rspec-core (3.5.4)
|
41
|
+
rspec-support (~> 3.5.0)
|
42
|
+
rspec-expectations (3.5.0)
|
52
43
|
diff-lcs (>= 1.2.0, < 2.0)
|
53
|
-
rspec-support (~> 3.
|
54
|
-
rspec-mocks (3.
|
44
|
+
rspec-support (~> 3.5.0)
|
45
|
+
rspec-mocks (3.5.0)
|
55
46
|
diff-lcs (>= 1.2.0, < 2.0)
|
56
|
-
rspec-support (~> 3.
|
57
|
-
rspec-support (3.
|
58
|
-
rugged (0.
|
59
|
-
terminal-notifier (1.
|
60
|
-
terminal-table (1.
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
websocket (1.2.2)
|
47
|
+
rspec-support (~> 3.5.0)
|
48
|
+
rspec-support (3.5.0)
|
49
|
+
rugged (0.25.1.1)
|
50
|
+
terminal-notifier (1.7.1)
|
51
|
+
terminal-table (1.7.3)
|
52
|
+
unicode-display_width (~> 1.1.1)
|
53
|
+
thor (0.19.4)
|
54
|
+
unicode-display_width (1.1.3)
|
55
|
+
websocket (1.2.4)
|
66
56
|
|
67
57
|
PLATFORMS
|
68
58
|
ruby
|
69
59
|
|
70
60
|
DEPENDENCIES
|
71
|
-
bundler
|
61
|
+
bundler
|
72
62
|
circler!
|
73
|
-
rake
|
63
|
+
rake
|
74
64
|
rspec
|
75
65
|
|
76
66
|
BUNDLED WITH
|
data/README.md
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
# Circler
|
2
2
|
|
3
|
-
[![
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/circler.svg)](https://badge.fury.io/rb/circler)
|
4
|
+
[![Circle CI](https://circleci.com/gh/unhappychoice/Circler.svg?style=shield)](https://circleci.com/gh/unhappychoice/Circler)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/unhappychoice/Circler/badges/gpa.svg)](https://codeclimate.com/github/unhappychoice/Circler)
|
6
|
+
[![Dependency Status](https://gemnasium.com/badges/github.com/unhappychoice/Circler.svg)](https://gemnasium.com/github.com/unhappychoice/Circler)
|
4
7
|
|
5
8
|
Circler is a CLI tool for [Circle CI](https://circleci.com).
|
6
9
|
|
@@ -19,59 +22,21 @@ export CIRCLE_CI_TOKEN=your-circle-ci-token
|
|
19
22
|
```
|
20
23
|
|
21
24
|
## Usage
|
22
|
-
|
23
|
-
#### watch
|
24
|
-
watch build in real time
|
25
|
-
|
26
|
-
```sh
|
27
|
-
$ circle watch
|
28
|
-
|
29
|
-
# Options:
|
30
|
-
# p, [--project=user/project]
|
31
|
-
```
|
32
|
-
|
33
|
-
#### projects
|
34
|
-
|
35
|
-
list all the projects you can see.
|
36
|
-
|
37
|
-
```sh
|
38
|
-
$ circle projects
|
39
|
-
```
|
40
|
-
|
41
|
-
#### builds
|
42
|
-
|
43
|
-
list specific projects' builds.
|
44
|
-
|
45
|
-
```sh
|
46
|
-
$ circle builds
|
47
|
-
|
48
|
-
# Options:
|
49
|
-
# p, [--project=user/project]
|
50
|
-
# b, [--branch=some-branch]
|
51
25
|
```
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
#
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
open Circle CI website
|
68
|
-
|
69
|
-
```sh
|
70
|
-
$ circle browse
|
71
|
-
|
72
|
-
# Options:
|
73
|
-
# p, [--project=user/project]
|
74
|
-
# n, [--build=build-number]
|
26
|
+
Commands:
|
27
|
+
circle browse # open circle ci website
|
28
|
+
circle build # show build description
|
29
|
+
circle builds # list builds
|
30
|
+
circle help [COMMAND] # Describe available commands or one specific command
|
31
|
+
circle projects # list projects
|
32
|
+
circle retry # show build description
|
33
|
+
circle version # show gem version
|
34
|
+
circle watch # watch a build in real time
|
35
|
+
|
36
|
+
Options:
|
37
|
+
-p user_name/project # specify repository
|
38
|
+
-b branch # specify branch name
|
39
|
+
-n build_number # specify build number
|
75
40
|
```
|
76
41
|
|
77
42
|
## Contributing
|
data/circler.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["unhappychoice"]
|
10
10
|
spec.email = ["unhappychoice@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary = %q{CLI tool for
|
13
|
-
spec.description = %q{A command line tool for
|
12
|
+
spec.summary = %q{CLI tool for CircleCI}
|
13
|
+
spec.description = %q{A command line tool for CircleCI}
|
14
14
|
spec.homepage = "https://github.com/unhappychoice/circler"
|
15
15
|
spec.license = "MIT"
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
@@ -20,18 +20,18 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
# Production
|
22
22
|
spec.add_dependency 'pusher-client', '~> 0.6.2'
|
23
|
-
spec.add_dependency 'thor', '~> 0.19.
|
24
|
-
spec.add_dependency 'faraday', '~> 0.
|
23
|
+
spec.add_dependency 'thor', '~> 0.19.4'
|
24
|
+
spec.add_dependency 'faraday', '~> 0.11.0'
|
25
25
|
spec.add_dependency 'launchy', '~> 2.4.3'
|
26
|
-
spec.add_dependency 'circleci', '~> 0.
|
27
|
-
spec.add_dependency 'rugged', '~> 0.
|
28
|
-
spec.add_dependency 'terminal-table', '~> 1.
|
26
|
+
spec.add_dependency 'circleci', '~> 1.0.3'
|
27
|
+
spec.add_dependency 'rugged', '~> 0.25.1.1'
|
28
|
+
spec.add_dependency 'terminal-table', '~> 1.7.3'
|
29
29
|
spec.add_dependency 'highline', '~> 1.7.8'
|
30
|
-
spec.add_dependency 'colorize', '~> 0.
|
31
|
-
spec.add_dependency 'terminal-notifier', '~> 1.
|
30
|
+
spec.add_dependency 'colorize', '~> 0.8.1'
|
31
|
+
spec.add_dependency 'terminal-notifier', '~> 1.7.1'
|
32
32
|
|
33
33
|
# Development
|
34
|
-
spec.add_development_dependency "bundler"
|
35
|
-
spec.add_development_dependency "rake"
|
34
|
+
spec.add_development_dependency "bundler"
|
35
|
+
spec.add_development_dependency "rake"
|
36
36
|
spec.add_development_dependency "rspec"
|
37
37
|
end
|
@@ -4,7 +4,7 @@ module Circler
|
|
4
4
|
def run(options)
|
5
5
|
setup_token
|
6
6
|
username, reponame = project_name(options).split('/')
|
7
|
-
number = options
|
7
|
+
number = build_number(options)
|
8
8
|
build = Build.get(username, reponame, number)
|
9
9
|
say StepPrinter.new(build.steps)
|
10
10
|
end
|
@@ -4,7 +4,7 @@ module Circler
|
|
4
4
|
def run(options)
|
5
5
|
setup_token
|
6
6
|
username, reponame = project_name(options).split('/')
|
7
|
-
number = options
|
7
|
+
number = build_number(options)
|
8
8
|
build = Build.retry(username, reponame, number)
|
9
9
|
if build.username
|
10
10
|
say "build #{build.username}/#{build.reponame} #{build.build_number} is triggered."
|
@@ -3,36 +3,33 @@ module Circler
|
|
3
3
|
class << self
|
4
4
|
def run(options)
|
5
5
|
setup_token
|
6
|
-
say 'Connecting to pusher'.blue
|
7
6
|
|
8
|
-
|
9
|
-
setup_client(options)
|
7
|
+
build = get_build(options)
|
10
8
|
|
11
|
-
|
9
|
+
if !build.nil? && build.running?
|
10
|
+
say 'Connecting to pusher'.blue
|
11
|
+
setup_client
|
12
|
+
say 'Connected'.blue
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
14
|
+
start_watch(build)
|
15
|
+
wait_until_finish
|
16
|
+
finalize(build, build.channel_name)
|
17
|
+
else
|
18
|
+
say 'The build is not running'
|
16
19
|
end
|
17
20
|
end
|
18
21
|
|
19
22
|
private
|
20
23
|
|
21
|
-
def setup_client(
|
22
|
-
@@running = false
|
24
|
+
def setup_client()
|
23
25
|
@@client = CirclerPusherClient.new
|
24
26
|
@@client.connect
|
25
|
-
@@client.bind("private-#{Account.me.user_name}", 'call') do
|
26
|
-
@@running = false
|
27
|
-
update_builds(options)
|
28
|
-
end
|
29
27
|
end
|
30
28
|
|
31
|
-
def
|
29
|
+
def get_build(options)
|
32
30
|
username, reponame = project_name(options).split('/')
|
33
|
-
|
34
|
-
|
35
|
-
.select { |b| b.status == 'running' }
|
31
|
+
number = build_number(options)
|
32
|
+
Build.get(username, reponame, number)
|
36
33
|
end
|
37
34
|
|
38
35
|
def start_watch(build)
|
@@ -40,9 +37,7 @@ module Circler
|
|
40
37
|
print_bordered "Start watching #{build.username}/#{build.reponame} build ##{build.build_number}".blue
|
41
38
|
TerminalNotifier.notify("Start to build #{build.username}/#{build.reponame} build ##{build.build_number}")
|
42
39
|
|
43
|
-
bind_event_handling(build.channel_name
|
44
|
-
wait_until_finish
|
45
|
-
finalize(build, build.channel_name + '@0')
|
40
|
+
bind_event_handling(build.channel_name)
|
46
41
|
end
|
47
42
|
|
48
43
|
def bind_event_handling(channel)
|
@@ -70,7 +65,6 @@ module Circler
|
|
70
65
|
end
|
71
66
|
|
72
67
|
def finalize(build, channel)
|
73
|
-
@@builds = @@builds.select { |b| b.build_number != build.build_number }
|
74
68
|
@@client.unsubscribe(channel)
|
75
69
|
|
76
70
|
print_bordered "Finish watching #{build.username}/#{build.reponame} build ##{build.build_number}".blue
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'pp'
|
2
1
|
module Circler
|
3
2
|
class Build
|
4
3
|
class << self
|
@@ -43,8 +42,12 @@ module Circler
|
|
43
42
|
@hash['build_num']
|
44
43
|
end
|
45
44
|
|
45
|
+
def running?
|
46
|
+
status == 'running'
|
47
|
+
end
|
48
|
+
|
46
49
|
def channel_name
|
47
|
-
"private-#{username}@#{reponame}@#{build_number}@vcs-github"
|
50
|
+
"private-#{username}@#{reponame}@#{build_number}@vcs-github@0"
|
48
51
|
end
|
49
52
|
|
50
53
|
def information
|
data/lib/circler/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: circler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- unhappychoice
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.19.
|
33
|
+
version: 0.19.4
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.19.
|
40
|
+
version: 0.19.4
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: faraday
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.11.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: 0.11.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: launchy
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,42 +72,42 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 1.0.3
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 1.0.3
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rugged
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
89
|
+
version: 0.25.1.1
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
96
|
+
version: 0.25.1.1
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: terminal-table
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.
|
103
|
+
version: 1.7.3
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.
|
110
|
+
version: 1.7.3
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: highline
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,56 +128,56 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.
|
131
|
+
version: 0.8.1
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.
|
138
|
+
version: 0.8.1
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: terminal-notifier
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 1.
|
145
|
+
version: 1.7.1
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 1.
|
152
|
+
version: 1.7.1
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: bundler
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- - "
|
157
|
+
- - ">="
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
159
|
+
version: '0'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- - "
|
164
|
+
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
166
|
+
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: rake
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - "
|
171
|
+
- - ">="
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
173
|
+
version: '0'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- - "
|
178
|
+
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
180
|
+
version: '0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: rspec
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,7 +192,7 @@ dependencies:
|
|
192
192
|
- - ">="
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
|
-
description: A command line tool for
|
195
|
+
description: A command line tool for CircleCI
|
196
196
|
email:
|
197
197
|
- unhappychoice@gmail.com
|
198
198
|
executables:
|
@@ -254,5 +254,5 @@ rubyforge_project:
|
|
254
254
|
rubygems_version: 2.4.5.1
|
255
255
|
signing_key:
|
256
256
|
specification_version: 4
|
257
|
-
summary: CLI tool for
|
257
|
+
summary: CLI tool for CircleCI
|
258
258
|
test_files: []
|