Kindsys: Include CODEOWNERS to Kinds report (#61978)

* Kindsys: Include CODEOWNERS to Kinds report

* Sort CODEOWNERS for the sake of reproducibility

* Fix linter complains
This commit is contained in:
Joan López de la Franca Beltran 2023-01-24 15:53:01 +01:00 committed by GitHub
parent 32ff95bde3
commit 6e126596e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 256 additions and 57 deletions

1
go.mod
View File

@ -277,6 +277,7 @@ require (
github.com/Masterminds/semver/v3 v3.1.1
github.com/dave/dst v0.27.2
github.com/grafana/thema v0.0.0-20230122235053-b4b6714dd1c9
github.com/hmarr/codeowners v1.1.1
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f
k8s.io/apimachinery v0.25.3
)

2
go.sum
View File

@ -1563,6 +1563,8 @@ github.com/hetznercloud/hcloud-go v1.26.2/go.mod h1:2C5uMtBiMoFr3m7lBFPf7wXTdh33
github.com/hetznercloud/hcloud-go v1.32.0/go.mod h1:XX/TQub3ge0yWR2yHWmnDVIrB+MQbda1pHxkUmDlUME=
github.com/hetznercloud/hcloud-go v1.33.2 h1:ptWKVYLW7YtjXzsqTFKFxwpVo3iM9UMkVPBYQE4teLU=
github.com/hetznercloud/hcloud-go v1.33.2/go.mod h1:XX/TQub3ge0yWR2yHWmnDVIrB+MQbda1pHxkUmDlUME=
github.com/hmarr/codeowners v1.1.1 h1:a1eD22I36JYH6O/zb+R+JkJgQ3CSlbu6H9EserOojSw=
github.com/hmarr/codeowners v1.1.1/go.mod h1:+ez+YARvfVhzL1MzY0f2+D/VusjODs4iRj3tO/IxBMw=
github.com/hodgesds/perf-utils v0.0.8/go.mod h1:F6TfvsbtrF88i++hou29dTXlI2sfsJv+gRZDtmTJkAs=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=

View File

@ -0,0 +1,61 @@
package kindsysreport
import (
"os"
"path/filepath"
"github.com/hmarr/codeowners"
)
type CodeOwnersFinder struct {
ruleset codeowners.Ruleset
}
func NewCodeOwnersFinder(groot string) (CodeOwnersFinder, error) {
//nolint:gosec
file, err := os.Open(filepath.Join(groot, ".github", "CODEOWNERS"))
if err != nil {
return CodeOwnersFinder{}, err
}
ruleset, err := codeowners.ParseFile(file)
if err != nil {
return CodeOwnersFinder{}, err
}
return CodeOwnersFinder{
ruleset: ruleset,
}, nil
}
func (f CodeOwnersFinder) FindFor(pp ...string) ([]string, error) {
if len(f.ruleset) == 0 {
return nil, nil
}
// Set, to avoid duplicates
m := make(map[string]struct{})
for _, p := range pp {
r, err := f.ruleset.Match(p)
if err != nil {
return nil, err
}
// No rule found for path p
if r == nil {
continue
}
for _, o := range r.Owners {
m[o.Value] = struct{}{}
}
}
result := make([]string, 0, len(m))
for k := range m {
result = append(result, k)
}
return result, nil
}

View File

@ -9,8 +9,9 @@ import (
"context"
"encoding/json"
"fmt"
"net/url"
"os"
"path"
"path/filepath"
"reflect"
"sort"
"strings"
@ -88,6 +89,7 @@ type Kind struct {
Category string
Links KindLinks
GrafanaMaturityCount int
CodeOwners []string
}
// MarshalJSON is overwritten to marshal
@ -106,6 +108,12 @@ func (k Kind) MarshalJSON() ([]byte, error) {
m["category"] = k.Category
m["grafanaMaturityCount"] = k.GrafanaMaturityCount
if len(k.CodeOwners) == 0 {
m["codeowners"] = []string{}
} else {
m["codeowners"] = k.CodeOwners
}
m["links"] = map[string]string{}
for _, ref := range []string{"Schema", "Go", "Ts", "Docs"} {
refVal := reflect.ValueOf(k.Links).FieldByName(ref).String()
@ -179,17 +187,22 @@ func buildKindStateReport() *KindStateReport {
r := emptyKindStateReport()
b := corekind.NewBase(nil)
groot := filepath.Join(elsedie(os.Getwd())("cannot get cwd"), "..", "..")
of := elsedie(kindsysreport.NewCodeOwnersFinder(groot))("cannot parse .github/codeowners")
seen := make(map[string]bool)
for _, k := range b.All() {
seen[k.Props().Common().Name] = true
lin := k.Lineage()
switch k.Props().(type) {
case kindsys.CoreProperties:
links := buildCoreLinks(lin, k.Decl().Properties)
r.add(Kind{
SomeKindProperties: k.Props(),
Category: "core",
Links: buildCoreLinks(lin, k.Decl().Properties),
Links: links,
GrafanaMaturityCount: grafanaMaturityAttrCount(lin.Latest().Underlying()),
CodeOwners: findCodeOwners(of, links),
})
}
}
@ -217,11 +230,13 @@ func buildKindStateReport() *KindStateReport {
for _, pp := range corelist.New(nil) {
for _, si := range all {
if ck, has := pp.ComposableKinds[si.Name()]; has {
links := buildComposableLinks(pp.Properties, ck.Decl().Properties)
r.add(Kind{
SomeKindProperties: ck.Props(),
Category: "composable",
Links: buildComposableLinks(pp.Properties, ck.Decl().Properties),
Links: links,
GrafanaMaturityCount: grafanaMaturityAttrCount(ck.Lineage().Latest().Underlying()),
CodeOwners: findCodeOwners(of, links),
})
} else if may := si.Should(string(pp.Properties.Type)); may {
n := plugindef.DerivePascalName(pp.Properties) + si.Name()
@ -253,10 +268,6 @@ func buildKindStateReport() *KindStateReport {
return r
}
func buildDocsRef(category string, props kindsys.CommonProperties) string {
return path.Join(docsBaseURL, category, props.MachineName, "schema-reference")
}
func buildCoreLinks(lin thema.Lineage, cp kindsys.CoreProperties) KindLinks {
const category = "core"
vpath := fmt.Sprintf("v%v", lin.Latest().Version()[0])
@ -265,10 +276,10 @@ func buildCoreLinks(lin thema.Lineage, cp kindsys.CoreProperties) KindLinks {
}
return KindLinks{
Schema: path.Join(repoBaseURL, fmt.Sprintf(coreCUEPath, cp.MachineName, cp.MachineName)),
Go: path.Join(repoBaseURL, fmt.Sprintf(coreGoPath, cp.MachineName)),
Ts: path.Join(repoBaseURL, fmt.Sprintf(coreTSPath, cp.MachineName, vpath, cp.MachineName)),
Docs: path.Join(docsBaseURL, category, cp.MachineName, "schema-reference"),
Schema: elsedie(url.JoinPath(repoBaseURL, fmt.Sprintf(coreCUEPath, cp.MachineName, cp.MachineName)))("cannot build schema link"),
Go: elsedie(url.JoinPath(repoBaseURL, fmt.Sprintf(coreGoPath, cp.MachineName)))("cannot build go link"),
Ts: elsedie(url.JoinPath(repoBaseURL, fmt.Sprintf(coreTSPath, cp.MachineName, vpath, cp.MachineName)))("cannot build ts link"),
Docs: elsedie(url.JoinPath(docsBaseURL, category, cp.MachineName, "schema-reference"))("cannot build docs link"),
}
}
@ -302,14 +313,14 @@ func buildComposableLinks(pp plugindef.PluginDef, cp kindsys.ComposablePropertie
var goLink string
if pp.Backend != nil && *pp.Backend {
goLink = path.Join(repoBaseURL, fmt.Sprintf(composableGoPath, pName, schemaInterface, schemaInterface))
goLink = elsedie(url.JoinPath(repoBaseURL, fmt.Sprintf(composableGoPath, pName, schemaInterface, schemaInterface)))("cannot build go link")
}
return KindLinks{
Schema: path.Join(repoBaseURL, fmt.Sprintf(composableCUEPath, string(pp.Type), pName, schemaInterface)),
Schema: elsedie(url.JoinPath(repoBaseURL, fmt.Sprintf(composableCUEPath, string(pp.Type), pName, schemaInterface)))("cannot build schema link"),
Go: goLink,
Ts: path.Join(repoBaseURL, fmt.Sprintf(composableTSPath, string(pp.Type), pName, schemaInterface)),
Docs: path.Join(docsBaseURL, category, cp.MachineName, "schema-reference"),
Ts: elsedie(url.JoinPath(repoBaseURL, fmt.Sprintf(composableTSPath, string(pp.Type), pName, schemaInterface)))("cannot build ts link"),
Docs: elsedie(url.JoinPath(docsBaseURL, category, cp.MachineName, "schema-reference"))("cannot build docs link"),
}
}
@ -319,6 +330,17 @@ func grafanaMaturityAttrCount(sch cue.Value) int {
return aw.Count(sch, attr)[attr]
}
func findCodeOwners(of kindsysreport.CodeOwnersFinder, links KindLinks) []string {
owners := elsedie(of.FindFor([]string{
toLocalPath(links.Schema),
toLocalPath(links.Go),
toLocalPath(links.Ts),
}...))("cannot find code owners")
sort.Strings(owners)
return owners
}
func machinize(s string) string {
return strings.Map(func(r rune) rune {
switch {
@ -342,6 +364,10 @@ func toCamelCase(s string) string {
return strings.ToLower(string(s[0])) + s[1:]
}
func toLocalPath(s string) string {
return strings.Replace(s, repoBaseURL+"/", "", 1)
}
type reportJenny struct{}
func (reportJenny) JennyName() string {

View File

@ -2,6 +2,7 @@
"kinds": {
"alertgroupspanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -23,6 +24,7 @@
},
"alertlistpanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -44,6 +46,7 @@
},
"alertmanagerdataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -65,6 +68,7 @@
},
"alertmanagerdatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -86,6 +90,9 @@
},
"annotationslistpanelcfg": {
"category": "composable",
"codeowners": [
"grafana/user-essentials"
],
"currentVersion": [
0,
0
@ -93,10 +100,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": true,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/annotationslistpanelcfg/schema-reference",
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/annotationslistpanelcfg/schema-reference",
"go": "n/a",
"schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/annolist/panelcfg.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/annolist/panelcfg.gen.ts"
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/annolist/panelcfg.cue",
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/annolist/panelcfg.gen.ts"
},
"machineName": "annotationslistpanelcfg",
"maturity": "experimental",
@ -107,6 +114,7 @@
},
"apikey": {
"category": "core",
"codeowners": [],
"currentVersion": [
0,
0
@ -127,6 +135,7 @@
},
"azuremonitordataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -148,6 +157,7 @@
},
"azuremonitordatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -169,6 +179,9 @@
},
"barchartpanelcfg": {
"category": "composable",
"codeowners": [
"grafana/grafana-bi-squad"
],
"currentVersion": [
0,
0
@ -176,10 +189,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": true,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/barchartpanelcfg/schema-reference",
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/barchartpanelcfg/schema-reference",
"go": "n/a",
"schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/barchart/panelcfg.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/barchart/panelcfg.gen.ts"
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/barchart/panelcfg.cue",
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/barchart/panelcfg.gen.ts"
},
"machineName": "barchartpanelcfg",
"maturity": "experimental",
@ -190,6 +203,9 @@
},
"bargaugepanelcfg": {
"category": "composable",
"codeowners": [
"grafana/user-essentials"
],
"currentVersion": [
0,
0
@ -197,10 +213,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": true,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/bargaugepanelcfg/schema-reference",
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/bargaugepanelcfg/schema-reference",
"go": "n/a",
"schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/bargauge/panelcfg.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/bargauge/panelcfg.gen.ts"
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/bargauge/panelcfg.cue",
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/bargauge/panelcfg.gen.ts"
},
"machineName": "bargaugepanelcfg",
"maturity": "experimental",
@ -211,6 +227,7 @@
},
"cloudwatchdataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -232,6 +249,7 @@
},
"cloudwatchdatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -253,6 +271,12 @@
},
"dashboard": {
"category": "core",
"codeowners": [
"grafana/grafana-as-code",
"grafana/grafana-bi-squad",
"grafana/plugins-platform-frontend",
"grafana/user-essentials"
],
"currentVersion": [
0,
0
@ -260,10 +284,10 @@
"grafanaMaturityCount": 144,
"lineageIsGroup": false,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/core/dashboard/schema-reference",
"go": "https:/github.com/grafana/grafana/tree/main/pkg/kinds/dashboard",
"schema": "https:/github.com/grafana/grafana/tree/main/kinds/dashboard/dashboard_kind.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/packages/grafana-schema/src/raw/dashboard/x/dashboard_types.gen.ts"
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/core/dashboard/schema-reference",
"go": "https://github.com/grafana/grafana/tree/main/pkg/kinds/dashboard",
"schema": "https://github.com/grafana/grafana/tree/main/kinds/dashboard/dashboard_kind.cue",
"ts": "https://github.com/grafana/grafana/tree/main/packages/grafana-schema/src/raw/dashboard/x/dashboard_types.gen.ts"
},
"machineName": "dashboard",
"maturity": "experimental",
@ -273,6 +297,7 @@
},
"dashboarddataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -294,6 +319,7 @@
},
"dashboarddatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -315,6 +341,9 @@
},
"dashboardlistpanelcfg": {
"category": "composable",
"codeowners": [
"grafana/user-essentials"
],
"currentVersion": [
0,
0
@ -322,10 +351,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": true,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/dashboardlistpanelcfg/schema-reference",
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/dashboardlistpanelcfg/schema-reference",
"go": "n/a",
"schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/dashlist/panelcfg.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/dashlist/panelcfg.gen.ts"
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/dashlist/panelcfg.cue",
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/dashlist/panelcfg.gen.ts"
},
"machineName": "dashboardlistpanelcfg",
"maturity": "experimental",
@ -336,6 +365,7 @@
},
"datasource": {
"category": "core",
"codeowners": [],
"currentVersion": [
0,
0
@ -356,6 +386,7 @@
},
"debugpanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -377,6 +408,7 @@
},
"elasticsearchdataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -398,6 +430,7 @@
},
"elasticsearchdatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -419,6 +452,7 @@
},
"flamegraphpanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -440,6 +474,7 @@
},
"folder": {
"category": "core",
"codeowners": [],
"currentVersion": [
0,
0
@ -460,6 +495,9 @@
},
"gaugepanelcfg": {
"category": "composable",
"codeowners": [
"grafana/user-essentials"
],
"currentVersion": [
0,
0
@ -467,10 +505,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": true,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/gaugepanelcfg/schema-reference",
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/gaugepanelcfg/schema-reference",
"go": "n/a",
"schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/gauge/panelcfg.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/gauge/panelcfg.gen.ts"
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/gauge/panelcfg.cue",
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/gauge/panelcfg.gen.ts"
},
"machineName": "gaugepanelcfg",
"maturity": "experimental",
@ -481,6 +519,7 @@
},
"geomappanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -502,6 +541,7 @@
},
"gettingstartedpanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -523,6 +563,7 @@
},
"googlecloudmonitoringdataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -544,6 +585,7 @@
},
"googlecloudmonitoringdatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -565,6 +607,7 @@
},
"grafanadataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -586,6 +629,7 @@
},
"grafanadatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -607,6 +651,7 @@
},
"graphitedataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -628,6 +673,7 @@
},
"graphitedatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -649,6 +695,7 @@
},
"grapholdpanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -670,6 +717,9 @@
},
"histogrampanelcfg": {
"category": "composable",
"codeowners": [
"grafana/grafana-bi-squad"
],
"currentVersion": [
0,
0
@ -677,10 +727,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": true,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/histogrampanelcfg/schema-reference",
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/histogrampanelcfg/schema-reference",
"go": "n/a",
"schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/histogram/panelcfg.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/histogram/panelcfg.gen.ts"
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/histogram/panelcfg.cue",
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/histogram/panelcfg.gen.ts"
},
"machineName": "histogrampanelcfg",
"maturity": "experimental",
@ -691,6 +741,7 @@
},
"iconpanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -712,6 +763,7 @@
},
"jaegerdataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -733,6 +785,7 @@
},
"jaegerdatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -754,6 +807,7 @@
},
"livepanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -775,6 +829,7 @@
},
"logspanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -796,6 +851,7 @@
},
"lokidataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -817,6 +873,7 @@
},
"lokidatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -838,6 +895,7 @@
},
"microsoftsqlserverdataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -859,6 +917,7 @@
},
"microsoftsqlserverdatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -880,6 +939,7 @@
},
"mysqldataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -901,6 +961,7 @@
},
"mysqldatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -922,6 +983,9 @@
},
"newspanelcfg": {
"category": "composable",
"codeowners": [
"grafana/user-essentials"
],
"currentVersion": [
0,
0
@ -929,10 +993,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": true,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/newspanelcfg/schema-reference",
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/newspanelcfg/schema-reference",
"go": "n/a",
"schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/news/panelcfg.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/news/panelcfg.gen.ts"
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/news/panelcfg.cue",
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/news/panelcfg.gen.ts"
},
"machineName": "newspanelcfg",
"maturity": "experimental",
@ -943,6 +1007,7 @@
},
"nodegraphpanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -964,6 +1029,7 @@
},
"parcadataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -985,6 +1051,7 @@
},
"parcadatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1006,6 +1073,7 @@
},
"phlaredataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1027,6 +1095,7 @@
},
"phlaredatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1048,6 +1117,9 @@
},
"piechartpanelcfg": {
"category": "composable",
"codeowners": [
"grafana/grafana-bi-squad"
],
"currentVersion": [
0,
0
@ -1055,10 +1127,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": true,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/piechartpanelcfg/schema-reference",
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/piechartpanelcfg/schema-reference",
"go": "n/a",
"schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/piechart/panelcfg.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/piechart/panelcfg.gen.ts"
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/piechart/panelcfg.cue",
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/piechart/panelcfg.gen.ts"
},
"machineName": "piechartpanelcfg",
"maturity": "experimental",
@ -1069,6 +1141,12 @@
},
"playlist": {
"category": "core",
"codeowners": [
"grafana/grafana-as-code",
"grafana/grafana-bi-squad",
"grafana/plugins-platform-frontend",
"grafana/user-essentials"
],
"currentVersion": [
0,
0
@ -1076,10 +1154,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": false,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/core/playlist/schema-reference",
"go": "https:/github.com/grafana/grafana/tree/main/pkg/kinds/playlist",
"schema": "https:/github.com/grafana/grafana/tree/main/kinds/playlist/playlist_kind.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/packages/grafana-schema/src/raw/playlist/x/playlist_types.gen.ts"
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/core/playlist/schema-reference",
"go": "https://github.com/grafana/grafana/tree/main/pkg/kinds/playlist",
"schema": "https://github.com/grafana/grafana/tree/main/kinds/playlist/playlist_kind.cue",
"ts": "https://github.com/grafana/grafana/tree/main/packages/grafana-schema/src/raw/playlist/x/playlist_types.gen.ts"
},
"machineName": "playlist",
"maturity": "merged",
@ -1089,6 +1167,7 @@
},
"postgresqldataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1110,6 +1189,7 @@
},
"postgresqldatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1131,6 +1211,7 @@
},
"prometheusdataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1152,6 +1233,7 @@
},
"prometheusdatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1173,6 +1255,7 @@
},
"query": {
"category": "core",
"codeowners": [],
"currentVersion": [
0,
0
@ -1193,6 +1276,7 @@
},
"queryhistory": {
"category": "core",
"codeowners": [],
"currentVersion": [
0,
0
@ -1213,6 +1297,7 @@
},
"serviceaccount": {
"category": "core",
"codeowners": [],
"currentVersion": [
0,
0
@ -1233,6 +1318,9 @@
},
"statpanelcfg": {
"category": "composable",
"codeowners": [
"grafana/user-essentials"
],
"currentVersion": [
0,
0
@ -1240,10 +1328,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": true,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/statpanelcfg/schema-reference",
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/statpanelcfg/schema-reference",
"go": "n/a",
"schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/stat/panelcfg.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/stat/panelcfg.gen.ts"
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/stat/panelcfg.cue",
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/stat/panelcfg.gen.ts"
},
"machineName": "statpanelcfg",
"maturity": "experimental",
@ -1254,6 +1342,7 @@
},
"tableoldpanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1275,6 +1364,12 @@
},
"team": {
"category": "core",
"codeowners": [
"grafana/grafana-as-code",
"grafana/grafana-bi-squad",
"grafana/plugins-platform-frontend",
"grafana/user-essentials"
],
"currentVersion": [
0,
0
@ -1282,10 +1377,10 @@
"grafanaMaturityCount": 7,
"lineageIsGroup": false,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/core/team/schema-reference",
"go": "https:/github.com/grafana/grafana/tree/main/pkg/kinds/team",
"schema": "https:/github.com/grafana/grafana/tree/main/kinds/team/team_kind.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/packages/grafana-schema/src/raw/team/x/team_types.gen.ts"
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/core/team/schema-reference",
"go": "https://github.com/grafana/grafana/tree/main/pkg/kinds/team",
"schema": "https://github.com/grafana/grafana/tree/main/kinds/team/team_kind.cue",
"ts": "https://github.com/grafana/grafana/tree/main/packages/grafana-schema/src/raw/team/x/team_types.gen.ts"
},
"machineName": "team",
"maturity": "merged",
@ -1295,6 +1390,7 @@
},
"tempodataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1316,6 +1412,7 @@
},
"tempodatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1337,6 +1434,7 @@
},
"testdatadbdataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1358,6 +1456,7 @@
},
"testdatadbdatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1379,6 +1478,9 @@
},
"textpanelcfg": {
"category": "composable",
"codeowners": [
"grafana/user-essentials"
],
"currentVersion": [
0,
0
@ -1386,10 +1488,10 @@
"grafanaMaturityCount": 0,
"lineageIsGroup": true,
"links": {
"docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/textpanelcfg/schema-reference",
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/textpanelcfg/schema-reference",
"go": "n/a",
"schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/text/panelcfg.cue",
"ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/text/panelcfg.gen.ts"
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/text/panelcfg.cue",
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/text/panelcfg.gen.ts"
},
"machineName": "textpanelcfg",
"maturity": "experimental",
@ -1400,6 +1502,7 @@
},
"thumb": {
"category": "core",
"codeowners": [],
"currentVersion": [
0,
0
@ -1420,6 +1523,7 @@
},
"tracespanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1441,6 +1545,7 @@
},
"user": {
"category": "core",
"codeowners": [],
"currentVersion": [
0,
0
@ -1461,6 +1566,7 @@
},
"welcomepanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1482,6 +1588,7 @@
},
"xychartpanelcfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1503,6 +1610,7 @@
},
"zipkindataquery": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0
@ -1524,6 +1632,7 @@
},
"zipkindatasourcecfg": {
"category": "composable",
"codeowners": [],
"currentVersion": [
0,
0