gitlab-triage 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +54 -17
- data/{policies.yml → .triage-policies.yml} +0 -4
- data/lib/gitlab/triage/engine.rb +30 -6
- data/lib/gitlab/triage/url_builders/url_builder.rb +41 -0
- data/lib/gitlab/triage/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07c73a42510a969fbfbd9d37b8c0cf3aa5b7194f411845ffa85df71bdd17e014
|
4
|
+
data.tar.gz: 92c16e24e3b60a68cbda012ca44cbef9e20e3d8143425ef6506db0817ee2e80d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e078932be7f117f6f6c4ad1bed68b8fb217dec19ffb60d0010507f009cdaeb1c21e718d729795317eaae4c91c30ddaed6acf16c0f75c03859516e23893af7d6f
|
7
|
+
data.tar.gz: c228d7ae359adcc1b4d1f8b9e058242a28f8c7c7f9500e7670c1ee9808d6098e7424c266188d3ebb0c9bd7c4bbe7354ff9dd1feac8a31167d54a28b14014106e
|
data/.gitlab-ci.yml
CHANGED
@@ -3,7 +3,7 @@ image: ruby:2.4
|
|
3
3
|
stages:
|
4
4
|
- prepare
|
5
5
|
- test
|
6
|
-
-
|
6
|
+
- triage
|
7
7
|
|
8
8
|
.default-cache-config: &default-cache-config
|
9
9
|
key: "ruby-2.4"
|
@@ -21,6 +21,9 @@ before_script:
|
|
21
21
|
- bundle --version
|
22
22
|
- bundle install --jobs $(nproc) --retry 3 --quiet
|
23
23
|
|
24
|
+
###################
|
25
|
+
## Prepare stage ##
|
26
|
+
###################
|
24
27
|
setup-test-env:
|
25
28
|
stage: prepare
|
26
29
|
script:
|
@@ -31,31 +34,37 @@ setup-test-env:
|
|
31
34
|
paths:
|
32
35
|
- vendor/cache/
|
33
36
|
- Gemfile.lock
|
37
|
+
except:
|
38
|
+
- schedules
|
34
39
|
|
40
|
+
################
|
41
|
+
## Test stage ##
|
42
|
+
################
|
35
43
|
styles:
|
44
|
+
<<: *pull-cache
|
36
45
|
stage: test
|
37
46
|
script:
|
38
47
|
- bundle exec rubocop
|
39
48
|
except:
|
40
49
|
- schedules
|
41
|
-
<<: *pull-cache
|
42
50
|
|
43
51
|
specs:
|
52
|
+
<<: *pull-cache
|
44
53
|
stage: test
|
45
54
|
script:
|
46
55
|
- bundle exec rake spec
|
47
|
-
<<: *pull-cache
|
48
56
|
|
49
57
|
build:
|
58
|
+
<<: *pull-cache
|
50
59
|
stage: test
|
51
60
|
script:
|
52
61
|
- bundle exec rake build
|
53
62
|
- bundle exec rake clobber
|
54
63
|
except:
|
55
64
|
- schedules
|
56
|
-
<<: *pull-cache
|
57
65
|
|
58
66
|
codequality:
|
67
|
+
<<: *pull-cache
|
59
68
|
image: docker:latest
|
60
69
|
stage: test
|
61
70
|
variables:
|
@@ -76,26 +85,54 @@ codequality:
|
|
76
85
|
paths:
|
77
86
|
- codeclimate.json
|
78
87
|
except:
|
79
|
-
|
80
|
-
<<: *pull-cache
|
88
|
+
- schedules
|
81
89
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
90
|
+
##################
|
91
|
+
## Triage stage ##
|
92
|
+
##################
|
93
|
+
dry-run:bin:gitlab-org/triage:
|
86
94
|
<<: *pull-cache
|
95
|
+
stage: triage
|
96
|
+
script:
|
97
|
+
- bundle exec bin/gitlab-triage --dry-run --token $API_TOKEN --project-id gitlab-org/triage
|
98
|
+
except:
|
99
|
+
- schedules
|
87
100
|
|
88
|
-
dry-run:
|
89
|
-
|
101
|
+
dry-run:bin:gitlab-org/gitlab-ce:
|
102
|
+
<<: *pull-cache
|
103
|
+
stage: triage
|
90
104
|
script:
|
91
|
-
- bundle exec bin/gitlab-triage --dry-run --token $API_TOKEN --
|
105
|
+
- bundle exec bin/gitlab-triage --dry-run --token $API_TOKEN --project-id gitlab-org/gitlab-ce
|
92
106
|
when: manual
|
107
|
+
except:
|
108
|
+
- schedules
|
109
|
+
|
110
|
+
dry-run:gem:gitlab-org/triage:
|
93
111
|
<<: *pull-cache
|
112
|
+
stage: triage
|
113
|
+
script:
|
114
|
+
- gem install gitlab-triage
|
115
|
+
- gitlab-triage --help
|
116
|
+
- gitlab-triage --dry-run --token $API_TOKEN --project-id gitlab-org/triage
|
117
|
+
when: manual
|
118
|
+
except:
|
119
|
+
- schedules
|
94
120
|
|
95
|
-
|
96
|
-
|
121
|
+
###############
|
122
|
+
## Schedules ##
|
123
|
+
###############
|
124
|
+
run:triage:gitlab-ce:
|
125
|
+
stage: triage
|
97
126
|
script:
|
98
|
-
-
|
127
|
+
- gem install gitlab-triage
|
128
|
+
- gitlab-triage --token $API_TOKEN --project-id gitlab-org/gitlab-ce
|
129
|
+
only:
|
130
|
+
- schedules
|
131
|
+
|
132
|
+
run:triage:triage:
|
133
|
+
stage: triage
|
134
|
+
script:
|
135
|
+
- gem install gitlab-triage
|
136
|
+
- gitlab-triage --token $API_TOKEN --project-id gitlab-org/triage
|
99
137
|
only:
|
100
138
|
- schedules
|
101
|
-
<<: *pull-cache
|
data/lib/gitlab/triage/engine.rb
CHANGED
@@ -8,6 +8,7 @@ require_relative 'command_builders/cc_command_builder'
|
|
8
8
|
require_relative 'command_builders/status_command_builder'
|
9
9
|
require_relative 'filter_builders/single_filter_builder'
|
10
10
|
require_relative 'filter_builders/multi_filter_builder'
|
11
|
+
require_relative 'url_builders/url_builder'
|
11
12
|
require_relative 'network'
|
12
13
|
require_relative 'network_adapters/httparty_adapter'
|
13
14
|
require_relative 'ui'
|
@@ -123,12 +124,27 @@ module Gitlab
|
|
123
124
|
def build_get_url(resource_type, conditions)
|
124
125
|
# Example issues query with state and labels
|
125
126
|
# https://gitlab.com/api/v4/projects/test-triage%2Fissue-project/issues?state=open&labels=project%20label%20with%20spaces,group_label_no_spaces
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
127
|
+
params = {
|
128
|
+
per_page: per_page
|
129
|
+
}
|
130
|
+
|
131
|
+
condition_builders = []
|
132
|
+
condition_builders << FilterBuilders::MultiFilterBuilder.new('labels', conditions[:labels], ',') if conditions[:labels]
|
133
|
+
condition_builders << FilterBuilders::SingleFilterBuilder.new('state', conditions[:state]) if conditions[:state]
|
134
|
+
condition_builders << FilterBuilders::MultiFilterBuilder.new('milestone', conditions[:milestone], ',') if conditions[:milestone]
|
135
|
+
|
136
|
+
condition_builders.each do |condition_builder|
|
137
|
+
params[condition_builder.filter_name] = condition_builder.filter_content
|
138
|
+
end
|
139
|
+
|
140
|
+
get_url = UrlBuilders::UrlBuilder.new(
|
141
|
+
host_url: host_url,
|
142
|
+
api_version: api_version,
|
143
|
+
project_id: options.project_id,
|
144
|
+
resource_type: resource_type,
|
145
|
+
params: params
|
146
|
+
).build
|
130
147
|
|
131
|
-
get_url = query_base.join
|
132
148
|
puts Gitlab::Triage::UI.debug "get_url: #{get_url}" if options.debug
|
133
149
|
|
134
150
|
get_url
|
@@ -136,7 +152,15 @@ module Gitlab
|
|
136
152
|
|
137
153
|
def build_post_url(resource_type, resource)
|
138
154
|
# POST /projects/:id/issues/:issue_iid/notes
|
139
|
-
post_url =
|
155
|
+
post_url = UrlBuilders::UrlBuilder.new(
|
156
|
+
host_url: host_url,
|
157
|
+
api_version: api_version,
|
158
|
+
project_id: options.project_id,
|
159
|
+
resource_type: resource_type,
|
160
|
+
resource_id: resource['iid'],
|
161
|
+
sub_resource_type: 'notes'
|
162
|
+
).build
|
163
|
+
|
140
164
|
puts Gitlab::Triage::UI.debug "post_url: #{post_url}" if options.debug
|
141
165
|
|
142
166
|
post_url
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Gitlab
|
2
|
+
module Triage
|
3
|
+
module UrlBuilders
|
4
|
+
class UrlBuilder
|
5
|
+
def initialize(options)
|
6
|
+
@host_url = options.fetch(:host_url)
|
7
|
+
@api_version = options.fetch(:api_version)
|
8
|
+
@project_id = options.fetch(:project_id)
|
9
|
+
@resource_type = options.fetch(:resource_type)
|
10
|
+
@sub_resource_type = options.fetch(:sub_resource_type, nil)
|
11
|
+
@resource_id = options.fetch(:resource_id, nil)
|
12
|
+
@params = options.fetch(:params, [])
|
13
|
+
end
|
14
|
+
|
15
|
+
def build
|
16
|
+
base_url.tap do |url|
|
17
|
+
url << "/#{@resource_id}" if @resource_id
|
18
|
+
url << "/#{@sub_resource_type}" if @sub_resource_type
|
19
|
+
url << params_string if @params
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def host_with_api_url
|
26
|
+
"#{@host_url}/api/#{@api_version}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def base_url
|
30
|
+
"#{host_with_api_url}/projects/#{CGI.escape(@project_id.to_s)}/#{@resource_type}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def params_string
|
34
|
+
"?" << @params.map do |k, v|
|
35
|
+
"#{k}=#{v}"
|
36
|
+
end.join("&")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-triage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitLab
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -107,6 +107,7 @@ files:
|
|
107
107
|
- ".gitlab-ci.yml"
|
108
108
|
- ".gitlab/issue_templates/Policy.md"
|
109
109
|
- ".rubocop.yml"
|
110
|
+
- ".triage-policies.yml"
|
110
111
|
- Gemfile
|
111
112
|
- Guardfile
|
112
113
|
- README.md
|
@@ -132,8 +133,8 @@ files:
|
|
132
133
|
- lib/gitlab/triage/network_adapters/test_adapter.rb
|
133
134
|
- lib/gitlab/triage/retryable.rb
|
134
135
|
- lib/gitlab/triage/ui.rb
|
136
|
+
- lib/gitlab/triage/url_builders/url_builder.rb
|
135
137
|
- lib/gitlab/triage/version.rb
|
136
|
-
- policies.yml
|
137
138
|
homepage: https://gitlab.com/gitlab-org/triage
|
138
139
|
licenses:
|
139
140
|
- MIT
|