forked from magicsong/sonargo
/
settings_service.go
140 lines (127 loc) · 5.54 KB
/
settings_service.go
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
// Manage settings.
package sonargo
import "net/http"
type SettingsService struct {
client *Client
}
type SettingsListDefinitionsObject struct {
Definitions []*Definition `json:"definitions,omitempty"`
}
type Definition struct {
Category string `json:"category,omitempty"`
DefaultValue string `json:"defaultValue,omitempty"`
DeprecatedKey string `json:"deprecatedKey,omitempty"`
Description string `json:"description,omitempty"`
Fields []*Field `json:"fields,omitempty"`
Key string `json:"key,omitempty"`
MultiValues bool `json:"multiValues,omitempty"`
Name string `json:"name,omitempty"`
Options []string `json:"options,omitempty"`
SubCategory string `json:"subCategory,omitempty"`
Type string `json:"type,omitempty"`
}
type Field struct {
Description string `json:"description,omitempty"`
Key string `json:"key,omitempty"`
Name string `json:"name,omitempty"`
Options []string `json:"options,omitempty"`
Type string `json:"type,omitempty"`
}
type SettingsValuesObject struct {
Settings []*Setting `json:"settings,omitempty"`
}
type FieldValue struct {
Boolean string `json:"boolean,omitempty"`
Text string `json:"text,omitempty"`
}
type Setting struct {
Key string `json:"key,omitempty"`
Value string `json:"value,omitempty"`
Inherited bool `json:"inherited,omitempty"`
Values []string `json:"values,omitempty"`
FieldValues []*FieldValue `json:"fieldValues,omitempty"`
}
type SettingsListDefinitionsOption struct {
Component string `url:"component,omitempty"` // Description:"Component key",ExampleValue:"my_project"
}
// ListDefinitions List settings definitions.<br>Requires 'Browse' permission when a component is specified<br/>
func (s *SettingsService) ListDefinitions(opt *SettingsListDefinitionsOption) (v *SettingsListDefinitionsObject, resp *http.Response, err error) {
err = s.ValidateListDefinitionsOpt(opt)
if err != nil {
return
}
req, err := s.client.NewRequest("GET", "settings/list_definitions", opt)
if err != nil {
return
}
v = new(SettingsListDefinitionsObject)
resp, err = s.client.Do(req, v)
if err != nil {
return nil, resp, err
}
return
}
type SettingsResetOption struct {
Component string `url:"component,omitempty"` // Description:"Component key",ExampleValue:"my_project"
Keys string `url:"keys,omitempty"` // Description:"Comma-separated list of keys",ExampleValue:"sonar.links.scm,sonar.debt.hoursInDay"
}
// Reset Remove a setting value.<br>The settings defined in config/sonar.properties are read-only and can't be changed.<br/>Requires one of the following permissions: <ul><li>'Administer System'</li><li>'Administer' rights on the specified component</li></ul>
func (s *SettingsService) Reset(opt *SettingsResetOption) (resp *http.Response, err error) {
err = s.ValidateResetOpt(opt)
if err != nil {
return
}
req, err := s.client.NewRequest("POST", "settings/reset", opt)
if err != nil {
return
}
resp, err = s.client.Do(req, nil)
if err != nil {
return
}
return
}
type SettingsSetOption struct {
Component string `url:"component,omitempty"` // Description:"Component key",ExampleValue:"my_project"
FieldValues string `url:"fieldValues,omitempty"` // Description:"Setting field values. To set several values, the parameter must be called once for each value.",ExampleValue:"fieldValues={"firstField":"first value", "secondField":"second value", "thirdField":"third value"}"
Key string `url:"key,omitempty"` // Description:"Setting key",ExampleValue:"sonar.links.scm"
Value string `url:"value,omitempty"` // Description:"Setting value. To reset a value, please use the reset web service.",ExampleValue:"git@github.com:SonarSource/sonarqube.git"
Values []string `url:"values,omitempty"` // Description:"Setting multi value. To set several values, the parameter must be called once for each value.",ExampleValue:"values=firstValue&values=secondValue&values=thirdValue"
}
// Set Update a setting value.<br>Either 'value' or 'values' must be provided.<br> The settings defined in config/sonar.properties are read-only and can't be changed.<br/>Requires one of the following permissions: <ul><li>'Administer System'</li><li>'Administer' rights on the specified component</li></ul>
func (s *SettingsService) Set(opt *SettingsSetOption) (resp *http.Response, err error) {
err = s.ValidateSetOpt(opt)
if err != nil {
return
}
req, err := s.client.NewRequest("POST", "settings/set", opt)
if err != nil {
return
}
resp, err = s.client.Do(req, nil)
if err != nil {
return
}
return
}
type SettingsValuesOption struct {
Component string `url:"component,omitempty"` // Description:"Component key",ExampleValue:"my_project"
Keys string `url:"keys,omitempty"` // Description:"List of setting keys",ExampleValue:"sonar.test.inclusions,sonar.dbcleaner.cleanDirectory"
}
// Values List settings values.<br>If no value has been set for a setting, then the default value is returned.<br>The settings from conf/sonar.properties are excluded from results.<br>Requires 'Browse' or 'Execute Analysis' permission when a component is specified<br/>
func (s *SettingsService) Values(opt *SettingsValuesOption) (v *SettingsValuesObject, resp *http.Response, err error) {
err = s.ValidateValuesOpt(opt)
if err != nil {
return
}
req, err := s.client.NewRequest("GET", "settings/values", opt)
if err != nil {
return
}
v = new(SettingsValuesObject)
resp, err = s.client.Do(req, v)
if err != nil {
return nil, resp, err
}
return
}