gitlab_ci 0.1.3
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 +7 -0
- data/.gitignore +35 -0
- data/.rakeTasks +7 -0
- data/.rspec +1 -0
- data/.travis.yml +6 -0
- data/ChangeLog.md +4 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +49 -0
- data/LICENSE +201 -0
- data/LICENSE.txt +203 -0
- data/README.md +2 -0
- data/Rakefile +20 -0
- data/gitlab_ci.gemspec +38 -0
- data/lib/gitlab/ci.rb +42 -0
- data/lib/gitlab/ci/cli.rb +90 -0
- data/lib/gitlab/ci/cli_helpers.rb +50 -0
- data/lib/gitlab/ci/client.rb +13 -0
- data/lib/gitlab/ci/client/builds.rb +34 -0
- data/lib/gitlab/ci/client/commits.rb +44 -0
- data/lib/gitlab/ci/client/projects.rb +98 -0
- data/lib/gitlab/ci/client/runners.rb +45 -0
- data/lib/gitlab/ci/help.rb +94 -0
- data/lib/gitlab/ci/version.rb +4 -0
- data/spec/gitlab_ci_spec.rb +8 -0
- data/spec/spec_helper.rb +4 -0
- data/update.sh +18 -0
- metadata +146 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
class Gitlab::CI::Client
|
2
|
+
# Defines methods related to repositories.
|
3
|
+
# @see https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/repositories.md
|
4
|
+
module Runners
|
5
|
+
# Used to get information about all runners registered on the GitLab CI instance.
|
6
|
+
#
|
7
|
+
# @example
|
8
|
+
# Gitlab::CI.runners
|
9
|
+
#
|
10
|
+
# @param [Hash] options A customizable set of options.
|
11
|
+
# @option options [Integer] :page The page number.
|
12
|
+
# @option options [Integer] :per_page The number of results per page.
|
13
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
14
|
+
def runners(options={})
|
15
|
+
get("/runners", query: options)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Used to make GitLab CI aware of available runners.
|
19
|
+
#
|
20
|
+
# @example
|
21
|
+
# Gitlab::CI.register_runner
|
22
|
+
#
|
23
|
+
# @param [Hash] options A customizable set of options.
|
24
|
+
# @option options [String] token (required) - The registration token. It is 2 types of token you can pass here.
|
25
|
+
# 1. Shared runner registration token
|
26
|
+
# 2. Project specific registration token
|
27
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
28
|
+
def register_runner(token)
|
29
|
+
post("/runners/register", body: { token: token })
|
30
|
+
end
|
31
|
+
|
32
|
+
# Used to remove runners.
|
33
|
+
#
|
34
|
+
# @example
|
35
|
+
# Gitlab::CI.delete_runner
|
36
|
+
#
|
37
|
+
# @param [Hash] options A customizable set of options.
|
38
|
+
# @option options [String] token (required) - The runner token.
|
39
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
40
|
+
def delete_runner(token)
|
41
|
+
delete("/runners/delete", body: { token: token })
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'gitlab/ci'
|
2
|
+
require 'gitlab/ci/cli_helpers'
|
3
|
+
|
4
|
+
module Gitlab::CI::Help
|
5
|
+
extend Gitlab::CI::CLI::Helpers
|
6
|
+
|
7
|
+
class << self
|
8
|
+
# Returns the (modified) help from the 'ri' command or returns an error.
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
def get_help(cmd)
|
12
|
+
cmd_namespace = namespace cmd
|
13
|
+
|
14
|
+
if cmd_namespace
|
15
|
+
ri_output = `#{ri_cmd} -T #{cmd_namespace} 2>&1`.chomp
|
16
|
+
|
17
|
+
if $CHILD_STATUS == 0
|
18
|
+
change_help_output! cmd, ri_output
|
19
|
+
yield ri_output if block_given?
|
20
|
+
|
21
|
+
ri_output
|
22
|
+
else
|
23
|
+
"Ri docs not found for #{cmd}, please install the docs to use 'help'."
|
24
|
+
end
|
25
|
+
else
|
26
|
+
"Unknown command: #{cmd}."
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Finds the location of 'ri' on a system.
|
31
|
+
#
|
32
|
+
# @return [String]
|
33
|
+
def ri_cmd
|
34
|
+
which_ri = `which ri`.chomp
|
35
|
+
if which_ri.empty?
|
36
|
+
fail "'ri' tool not found in $PATH. Please install it to use the help."
|
37
|
+
end
|
38
|
+
|
39
|
+
which_ri
|
40
|
+
end
|
41
|
+
|
42
|
+
# A hash map that contains help topics (Branches, Groups, etc.)
|
43
|
+
# and a list of commands that are defined under a topic (create_branch,
|
44
|
+
# branches, protect_branch, etc.).
|
45
|
+
#
|
46
|
+
# @return [Hash<Array>]
|
47
|
+
def help_map
|
48
|
+
@help_map ||= begin
|
49
|
+
actions.each_with_object({}) do |action, hsh|
|
50
|
+
key = client.method(action).
|
51
|
+
owner.to_s.gsub(/Gitlab::CI::(?:Client::)?/, '')
|
52
|
+
hsh[key] ||= []
|
53
|
+
hsh[key] << action.to_s
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# Table with available commands.
|
59
|
+
#
|
60
|
+
# @return [Terminal::Table]
|
61
|
+
def actions_table(topic=nil)
|
62
|
+
rows = topic ? help_map[topic] : help_map.keys
|
63
|
+
table do |t|
|
64
|
+
t.title = topic || "Help Topics"
|
65
|
+
|
66
|
+
# add_row expects an array and we have strings hence the map.
|
67
|
+
rows.sort.map { |r| [r] }.each_with_index do |row, index|
|
68
|
+
t.add_row row
|
69
|
+
t.add_separator unless rows.size - 1 == index
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# Returns full namespace of a command (e.g. Gitlab::Client::Branches.cmd)
|
75
|
+
def namespace(cmd)
|
76
|
+
method_owners.select { |method| method[:name] === cmd }.
|
77
|
+
map { |method| method[:owner] + '.' + method[:name] }.
|
78
|
+
shift
|
79
|
+
end
|
80
|
+
|
81
|
+
# Massage output from 'ri'.
|
82
|
+
def change_help_output!(cmd, output_str)
|
83
|
+
output_str.gsub!(/#{cmd}\((.*?)\)/m, cmd + ' \1')
|
84
|
+
output_str.gsub!(/\,[\s]*/, ' ')
|
85
|
+
|
86
|
+
# Ensure @option descriptions are on a single line
|
87
|
+
output_str.gsub!(/\n\[/, " \[")
|
88
|
+
output_str.gsub!(/\s(@)/, "\n@")
|
89
|
+
output_str.gsub!(/(\])\n(\:)/, '\1 \2')
|
90
|
+
output_str.gsub!(/(\:.*)(\n)(.*\.)/, '\1 \3')
|
91
|
+
|
92
|
+
end
|
93
|
+
end # class << self
|
94
|
+
end
|
data/spec/spec_helper.rb
ADDED
data/update.sh
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
cd .
|
4
|
+
#. ~/.rvm/scripts/rvm
|
5
|
+
git add -A
|
6
|
+
git commit -m "$1"
|
7
|
+
git push
|
8
|
+
#bundle exec rake build
|
9
|
+
rake build
|
10
|
+
mv pkg/gitlab_ci-0.*.gem ../repo/gems/
|
11
|
+
cd ../repo
|
12
|
+
gem generate_index .
|
13
|
+
gcp hd-build
|
14
|
+
|
15
|
+
gsutil rsync -d -r ./ gs://gems.build.olt.homedepot.com/
|
16
|
+
gsutil acl ch -r -u All:READ gs://gems.build.olt.homedepot.com
|
17
|
+
|
18
|
+
cd -
|
metadata
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gitlab_ci
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Christo De Lange
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-02-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: gitlab
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.6'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.6.2
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.6'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.6.2
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: bundler
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '1.10'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '1.10'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '10.0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '10.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rspec
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '3.0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '3.0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rubygems-tasks
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0.2'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0.2'
|
89
|
+
description: Gitlab is a Ruby wrapper and CLI for the [GitLab-CI API](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/doc/ci/api).
|
90
|
+
email: rubygems@dldinternet.com
|
91
|
+
executables: []
|
92
|
+
extensions: []
|
93
|
+
extra_rdoc_files: []
|
94
|
+
files:
|
95
|
+
- ".gitignore"
|
96
|
+
- ".rakeTasks"
|
97
|
+
- ".rspec"
|
98
|
+
- ".travis.yml"
|
99
|
+
- ChangeLog.md
|
100
|
+
- Gemfile
|
101
|
+
- Gemfile.lock
|
102
|
+
- LICENSE
|
103
|
+
- LICENSE.txt
|
104
|
+
- README.md
|
105
|
+
- Rakefile
|
106
|
+
- gitlab_ci.gemspec
|
107
|
+
- lib/gitlab/ci.rb
|
108
|
+
- lib/gitlab/ci/cli.rb
|
109
|
+
- lib/gitlab/ci/cli_helpers.rb
|
110
|
+
- lib/gitlab/ci/client.rb
|
111
|
+
- lib/gitlab/ci/client/builds.rb
|
112
|
+
- lib/gitlab/ci/client/commits.rb
|
113
|
+
- lib/gitlab/ci/client/projects.rb
|
114
|
+
- lib/gitlab/ci/client/runners.rb
|
115
|
+
- lib/gitlab/ci/help.rb
|
116
|
+
- lib/gitlab/ci/version.rb
|
117
|
+
- spec/gitlab_ci_spec.rb
|
118
|
+
- spec/spec_helper.rb
|
119
|
+
- update.sh
|
120
|
+
homepage: http://github.com/dldinternet/gitlab_ci
|
121
|
+
licenses:
|
122
|
+
- MIT
|
123
|
+
metadata: {}
|
124
|
+
post_install_message:
|
125
|
+
rdoc_options: []
|
126
|
+
require_paths:
|
127
|
+
- lib
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
requirements: []
|
139
|
+
rubyforge_project:
|
140
|
+
rubygems_version: 2.4.8
|
141
|
+
signing_key:
|
142
|
+
specification_version: 4
|
143
|
+
summary: Gitlab is a Ruby wrapper and CLI for the GitLab API
|
144
|
+
test_files:
|
145
|
+
- spec/gitlab_ci_spec.rb
|
146
|
+
- spec/spec_helper.rb
|