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
|
// 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.commons;
option java_package = "org.sonarqube.ws";
option java_outer_classname = "Common";
option optimize_for = SPEED;
message Paging {
optional int32 pageIndex = 1;
optional int32 pageSize = 2;
optional int32 total = 3;
}
message Facet {
// kind of key
optional string property = 1;
repeated FacetValue values = 2;
}
message Facets {
repeated Facet facets = 1;
}
message FacetValue {
optional string val = 1;
optional int64 count = 2;
}
enum Severity {
INFO = 0;
MINOR = 1;
MAJOR = 2;
CRITICAL = 3;
BLOCKER = 4;
}
message Rule {
optional string key = 1;
optional string name = 2;
optional string lang = 3;
optional RuleStatus status = 4;
optional string langName = 5;
}
message Rules {
repeated Rule rules = 1;
}
enum RuleStatus {
BETA = 0;
DEPRECATED = 1;
READY = 2;
REMOVED = 3;
}
enum RuleScope {
MAIN = 0;
TEST = 1;
ALL = 2;
}
// Lines start at 1 and line offsets start at 0
message TextRange {
// Start line. Should never be absent
optional int32 startLine = 1;
// End line (inclusive). Absent means it is same as start line
optional int32 endLine = 2;
// If absent it means range starts at the first offset of start line
optional int32 startOffset = 3;
// If absent it means range ends at the last offset of end line
optional int32 endOffset = 4;
}
message Flow {
repeated Location locations = 1;
optional string description = 2;
optional FlowType type = 3;
}
enum FlowType {
UNDEFINED = 0;
DATA = 1;
EXECUTION = 2;
}
message Location {
optional string component = 4;
optional string unusedComponentId = 1;
// Only when component is a file. Can be empty for a file if this is an issue global to the file.
optional sonarqube.ws.commons.TextRange textRange = 2;
optional string msg = 3;
repeated MessageFormatting msgFormattings = 5;
}
message User {
optional string login = 1;
optional string name = 2;
optional string avatar = 3;
optional bool active = 4;
}
message Changelog {
optional string user = 1;
optional string userName = 2;
// Email is no more returned since 6.3
optional string deprecatedEmail = 3;
optional string creationDate = 4;
repeated Diff diffs = 5;
optional string avatar = 6;
optional bool isUserActive = 7;
optional string externalUser = 8;
optional string webhookSource = 9;
message Diff {
optional string key = 1;
optional string newValue = 2;
optional string oldValue = 3;
}
}
message Comment {
optional string key = 1;
optional string login = 2;
optional string htmlText = 5;
optional string markdown = 6;
optional bool updatable = 7;
optional string createdAt = 8;
}
message Metric {
optional string key = 1;
optional string name = 2;
optional string description = 3;
optional string domain = 4;
optional string type = 5;
optional bool higherValuesAreBetter = 6;
optional bool qualitative = 7;
optional bool hidden = 8;
optional bool custom = 9;
optional int32 decimalScale = 10;
optional string bestValue = 11;
optional string worstValue = 12;
}
enum RuleType {
// Zero is required in order to not get MAINTAINABILITY as default value
// See http://androiddevblog.com/protocol-buffers-pitfall-adding-enum-values/
UNKNOWN = 0;
// same name as in Java enum IssueType,
// same index values as in database (see column ISSUES.ISSUE_TYPE)
CODE_SMELL = 1;
BUG = 2;
VULNERABILITY = 3;
SECURITY_HOTSPOT = 4;
}
enum BranchType {
reserved 1, 2;
UNKNOWN_BRANCH_TYPE = 0;
PULL_REQUEST = 3;
BRANCH = 4;
}
message MessageFormatting {
required int32 start = 1;
required int32 end = 2;
required MessageFormattingType type = 3;
}
enum MessageFormattingType {
CODE = 0;
}
|