Lines Matching full:reporting
15 // There are multiple configurable aspects of the app (namespaces, reporting, API clients, etc).
25 // Global API clients that work across namespaces (e.g. external reporting).
32 // Each namespace has own reporting config, own API clients
54 // How long should we wait before reporting a bug.
56 // How long should we wait for a C repro before reporting a bug.
60 // Reporting config.
61 Reporting []Reporting member
78 // One reporting stage.
79 type Reporting struct { struct
86 // Filter can be used to conditionally skip this reporting or hold off reporting.
90 // Type of reporting and its configuration.
92 // And ExternalConfig which can be used to attach any external reporting system (e.g. Bugzilla).
97 // Type returns a unique string that identifies this reporting type (e.g. "email").
99 // NeedMaintainers says if this reporting requires non-empty maintainers list.
124 FilterReport FilterResult = iota // Report bug in this reporting (default).
125 FilterSkip // Skip this reporting and proceed to the next one.
126 FilterHold // Hold off with reporting this bug.
129 func (cfg *Config) ReportingByName(name string) *Reporting {
130 for i := range cfg.Reporting {
131 reporting := &cfg.Reporting[i]
132 if reporting.Name == name {
133 return reporting
173 panic(fmt.Sprintf("bad kernel repo reporting priority %v for %q", prio, repo))
200 if len(cfg.Reporting) == 0 {
201 panic(fmt.Sprintf("no reporting in namespace %q", ns))
207 for ri := len(cfg.Reporting) - 1; ri >= 0; ri-- {
208 reporting := &cfg.Reporting[ri]
209 if reporting.Name == "" {
210 panic(fmt.Sprintf("empty reporting name in namespace %q", ns))
212 if reportingNames[reporting.Name] {
213 panic(fmt.Sprintf("duplicate reporting name %q", reporting.Name))
215 if reporting.DisplayTitle == "" {
216 reporting.DisplayTitle = reporting.Name
218 checkConfigAccessLevel(&reporting.AccessLevel, parentAccessLevel,
219 fmt.Sprintf("reporting %q/%q", ns, reporting.Name))
220 parentAccessLevel = reporting.AccessLevel
221 if reporting.Filter == nil {
222 reporting.Filter = func(bug *Bug) FilterResult { return FilterReport }
224 reportingNames[reporting.Name] = true
225 if reporting.Config.Type() == "" {
226 panic(fmt.Sprintf("empty reporting type for %q", reporting.Name))
228 if err := reporting.Config.Validate(); err != nil {
231 if _, err := json.Marshal(reporting.Config); err != nil {
233 reporting.Name, err))