blob: 29673bdadd28804eceb9a2e07457106d8c128739 (
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
214
215
216
217
218
219
220
221
222
223
|
/*
SonarQube, open source software quality management tool.
Copyright (C) 2008-2015 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.
*/
/*
Notes
- "required" fields are not used as recommended by Google to keep forward-compatibility:
https://developers.google.com/protocol-buffers/docs/proto#simple
- this is beta version of specification. It will evolve during next releases and is
not forward-compatible yet.
- the related Java files are not generated during build. Indeed the existing protoc maven
plugins require protobuf to be installed on boxes. That means that generated Java files
are updated and committed for each change (see src/main/gen-java).
*/
import "constants.proto";
option java_package = "org.sonar.batch.protocol.output";
option optimize_for = SPEED;
message Metadata {
optional int64 analysis_date = 1;
optional string project_key = 2;
optional string branch = 6;
optional int32 root_component_ref = 3;
// temporary fields used during development of computation stack
optional int64 snapshot_id = 4;
optional int32 deleted_components_count = 5;
}
message ComponentLink {
optional ComponentLinkType type = 1;
optional string href = 2;
}
// temporary message during development of computation stack
message Event {
optional int32 component_ref = 1;
optional string name = 2;
optional string description = 3;
optional EventCategory category = 4;
optional string event_data = 5;
}
message Component {
optional int32 ref = 1;
optional string path = 2;
optional string name = 3;
optional ComponentType type = 4;
optional bool is_test = 5;
optional string language = 6;
repeated int32 child_ref = 7 [packed = true];
repeated ComponentLink link = 10;
// Only available on PROJECT and MODULE type
optional string version = 12;
// Only available on PROJECT and MODULE type
optional string key = 14;
// temporary fields during development of computation stack
optional int64 id = 13;
optional int64 snapshot_id = 8;
optional string uuid = 9;
repeated Event event = 11;
}
message Measure {
optional MeasureValueType value_type = 1;
// all values may be unset for "new_xxx" measures (only variations are populated)
optional bool boolean_value = 2;
optional int32 int_value = 3;
optional int64 long_value = 4;
optional double double_value = 5;
optional string string_value = 6;
optional string metric_key = 7;
// temporary fields during development of computation stack
optional string description = 9;
optional string rule_key = 10;
optional Severity severity = 11;
optional string alert_status = 12;
optional string alert_text = 13;
optional double variation_value_1 = 14;
optional double variation_value_2 = 15;
optional double variation_value_3 = 16;
optional double variation_value_4 = 17;
optional double variation_value_5 = 18;
optional int32 tendency = 19;
optional int32 characteric_id = 20;
optional int32 person_id = 21;
}
message Measures {
optional int32 component_ref = 1;
repeated Measure measure = 2;
}
message Issue {
optional string rule_repository = 1;
optional string rule_key = 2;
optional int32 line = 3;
optional string msg = 4;
optional Severity severity = 5;
repeated string tag = 6;
// temporary fields during development of computation stack
optional double effort_to_fix = 7;
optional bool is_new = 8;
optional string uuid = 9;
optional int64 debt_in_minutes = 10;
optional string resolution = 11;
optional string status = 12;
optional string checksum = 13;
optional bool manual_severity = 14;
optional string reporter = 15;
optional string assignee = 16;
optional string action_plan_key = 17;
optional string attributes = 18;
optional string author_login = 19;
optional int64 creation_date = 20;
optional int64 close_date = 21;
optional int64 update_date = 22;
optional int64 selected_at = 23;
optional string diff_fields = 24;
optional bool is_changed = 25;
optional bool must_send_notification = 26;
}
message Issues {
optional int32 component_ref = 1;
repeated Issue issue = 2;
// Temporary field for issues on deleted components
optional string component_uuid = 3;
}
message Scm {
optional int32 component_ref = 1;
repeated Changeset changeset = 2;
// if changesetIndexByLine[3] = 2 then it means that changeset[2] is the last one on line 4
repeated int32 changesetIndexByLine = 3 [packed=true];
message Changeset {
optional string revision = 1;
optional string author = 2;
optional int64 date = 3;
}
}
message Duplicate {
// Will be null when duplicate is in the same file
optional int32 other_file_ref = 1;
optional Range range = 2;
// temporary field during development of computation stack for cross project duplications
optional string other_file_key = 3;
}
message Duplication {
// Origin position in current file
optional Range origin_position = 1;
repeated Duplicate duplicate = 2;
}
message Duplications {
optional int32 component_ref = 1;
repeated Duplication duplication = 2;
}
// Lines start at 1 and line offsets start at 0
message Range {
// Should never be null
optional int32 start_line = 1;
// End line (inclusive). Null means it is same as start line
optional int32 end_line = 2;
// If null it means range starts at the first offset of start line
optional int32 start_offset = 3;
// If null it means range ends at the last offset of end line
optional int32 end_offset = 4;
}
message Symbols {
optional int32 file_ref = 1;
repeated Symbol symbol = 2;
message Symbol {
optional Range declaration = 1;
repeated Range reference = 2;
}
}
message SyntaxHighlighting {
optional int32 file_ref = 1;
// Rule must be sorted by line and start offset
repeated HighlightingRule highlighting_rule = 2;
message HighlightingRule {
optional Range range = 1;
optional HighlightingType type = 2;
}
}
|