blob: e7de5d2513811cc050645a01f6ec41344ed16fc0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
// SonarQube, open source software quality management tool.
// Copyright (C) 2008-2016 SonarSource
// mailto:contact AT sonarsource DOT com
//
// SonarQube is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 3 of the License, or (at your option) any later version.
//
// SonarQube is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program; if not, write to the Free Software Foundation,
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
syntax = "proto2";
package sonarqube.ws.qualitygate;
import "ws-commons.proto";
option java_package = "org.sonarqube.ws";
option java_outer_classname = "Qualitygates";
option optimize_for = SPEED;
// GET api/qualitygates/project_status
message ProjectStatusResponse {
optional ProjectStatus projectStatus = 1;
message ProjectStatus {
optional Status status = 1;
repeated Condition conditions = 2;
reserved 3; //drop periods
optional bool ignoredConditions = 4;
optional NewCodePeriod period = 5;
optional string caycStatus = 6;
}
message Condition {
optional Status status = 1;
optional string metricKey = 2;
optional Comparator comparator = 3;
reserved 4; //drop periodIndex
optional string warningThreshold = 5;
optional string errorThreshold = 6;
optional string actualValue = 7;
}
message NewCodePeriod {
optional string mode = 1;
optional string date = 2;
optional string parameter = 3;
}
enum Status {
OK = 1;
WARN = 2;
ERROR = 3;
NONE = 4;
}
enum Comparator {
GT = 1;
LT = 2;
EQ = 3;
NE = 4;
}
}
// GET api/qualitygates/get_by_project
message GetByProjectResponse {
optional QualityGate qualityGate = 1;
}
message QualityGate {
optional string id = 1;
optional string name = 2;
optional bool default = 3;
}
// GET api/qualitygates/app
message AppResponse {
optional bool edit = 1;
repeated Metric metrics = 3;
message Metric {
optional string key = 1;
optional string name = 2;
optional string type = 3;
optional string domain = 4;
optional bool hidden = 5;
}
}
// POST api/qualitygates/create
message CreateResponse {
reserved 1; //drop id in web-api response
optional string name = 2;
}
// POST api/qualitygates/create_condition
message CreateConditionResponse {
optional string id = 1;
optional string metric = 2;
optional string op = 3;
optional string error = 5;
}
// POST api/qualitygates/update_condition
message UpdateConditionResponse {
optional string id = 1;
optional string metric = 2;
optional string op = 3;
optional string error = 5;
}
// GET api/qualitygates/show
message ShowWsResponse {
optional string id = 1;
required string name = 2;
repeated Condition conditions = 3;
required bool isBuiltIn = 4;
optional Actions actions = 5;
required string caycStatus = 6;
required bool isDefault = 7;
optional bool hasStandardConditions = 8;
optional bool hasMQRConditions = 9;
message Condition {
required string id = 1;
required string metric = 2;
required string op = 4;
optional string error = 6;
required bool isCaycCondition = 7;
}
}
// GET api/qualitygates/search
message SearchResponse {
reserved 1; // drop more
repeated Result results = 2;
optional sonarqube.ws.commons.Paging paging = 3;
message Result {
optional string name = 2;
optional bool selected = 3;
optional string key = 4;
optional bool isAiCodeAssured = 5;
}
}
// GET api/qualitygates/list
message ListWsResponse {
repeated QualityGate qualitygates = 1;
reserved 2; //drop default
optional RootActions actions = 3;
message QualityGate {
optional string id = 1;
optional string name = 2;
optional bool isDefault = 3;
optional bool isBuiltIn = 4;
optional Actions actions = 5;
optional string caycStatus = 6;
optional bool hasStandardConditions = 7;
optional bool hasMQRConditions = 8;
}
message RootActions {
optional bool create = 1;
}
}
message Actions {
optional bool rename = 1;
optional bool setAsDefault = 2;
optional bool copy = 3;
optional bool associateProjects = 4;
optional bool delete = 5;
optional bool manageConditions = 6;
optional bool delegate = 7;
}
// WS api/qualitygates/search_users
message SearchUsersResponse {
optional sonarqube.ws.commons.Paging paging = 1;
repeated User users = 2;
message User {
optional string login = 1;
optional string name = 2;
optional string avatar = 3;
optional bool selected = 4;
}
}
// WS api/qualitygates/search_groups
message SearchGroupsResponse {
optional sonarqube.ws.commons.Paging paging = 1;
repeated Group groups = 2;
message Group {
optional string name = 1;
optional string description = 2;
optional bool selected = 3;
}
}
|