gitlab-triage 0.0.2 → 0.0.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 +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
|