AI Slop Code Risk Monitor

grafana/grafana

SlopCodeMonitor badge for grafana/grafana Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for grafana/grafana, a TypeScript project with 77,589 GitHub stars. SynthScan examined 5,091,589 lines of code across 20668 source files, recording 7200 pattern matches distributed across 23 syntactic categories. The legacy adjusted pattern signal is 1.6 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
77.6K
Stars
TypeScript
Language
5.1M
Lines of Code
20.7K
Files
7.2K
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 4.0/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 3800 finding(s).

Hallucinated Dependency & Supply Chain Risk 3.7/100 · LOW

Are imports declared and package/API names verified? 3326 finding(s).

Agent Over-Engineering Ratio 2.3/100 · LOW

Are wrappers, guards, and repeated structures necessary? 2117 finding(s).

PR Review Velocity Impact 8.3/100 · LOW

Which changes need focused human review? 7200 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 149HIGH 16MEDIUM 116LOW 6919

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 7200 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers2043 hits · 2116 pts
SeverityFileLineSnippetContext
LOWjest.config.codeowner.js145function writeCoverageSummaryArtifact(coverageResults) {CODE
LOWeslint.config.js96function withBaseRestrictedImportsConfig(config = {}) {CODE
LOWdevenv/docker/blocks/elastic/data/data.js58async function elasticSetupIndexTemplate() {CODE
LOWdevenv/docker/blocks/elastic/data/data.js159 function getNextSineWaveSleepDuration() {CODE
LOW…right/various-suite/prometheus-variable-editor.spec.ts51 async function addPrometheusQueryVariable(CODE
LOW…right/various-suite/prometheus-variable-editor.spec.ts73 async function variableFlowToQueryEditor(CODE
LOWe2e-playwright/various-suite/recent-queries.spec.ts26async function runQueryAndWaitForResults(CODE
LOW…test-plugins/grafana-extensionstest-app/tests/utils.ts5export async function ensureExtensionRegistryIsPopulated(page: Page) {CODE
LOW…laywright/test-plugins/grafana-test-app/tests/utils.ts40export async function assertEnableDisableRoundtrip(page: Page, pluginId: string, expected: WritePath): Promise<void> {CODE
LOW…aywright/dashboards-suite/dashboard-view-panel.spec.ts113async function openTestDashboardAndEnterViewPanel(CODE
LOW…dashboards-suite/dashboard-restore-permissions.spec.ts23async function restoreFromRecentlyDeleted(page: Page, selectors: E2ESelectorGroups, dashName: string) {CODE
LOWe2e-playwright/dashboards-suite/utils/makeDashboard.ts1export function makeNewDashboardRequestBody(dashboardName: string, folderUid?: string) {CODE
LOW…ywright/panels-suite/panelEdit_queryEditorNext.spec.ts24function addQueryOrExpressionButton(page: Page) {CODE
LOWe2e-playwright/panels-suite/geomap-layer-types.spec.ts12async function setupGeomapWithAirportsGeoJSON({ gotoDashboardPage, selectors, page }: SetupFixtures) {CODE
LOW…ywright/panels-suite/panelEdit_transformsSmoke.spec.ts70async function assertTransformationPickerDisabled(CODE
LOW…-playwright/dashboard-cujs/dashboard-navigation-cuj.ts36export function runDashboardNavigationCujs({ megaMenu }: { megaMenu: boolean }) {CODE
LOWe2e-playwright/dashboard-cujs/cuj-selectors.ts40export function getAdHocFilterOptionValues(page: Page) {CODE
LOWe2e-playwright/dashboard-cujs/cuj-selectors.ts44export function getAdHocFilterRestoreButton(page: Page, type: string) {CODE
LOWe2e-playwright/dashboard-cujs/cuj-selectors.ts79export async function clickFirstScopesDashboard(page: Page) {CODE
LOWe2e-playwright/dashboard-cujs/cuj-selectors.ts87export function getScopesDashboardsSearchInput(page: Page) {CODE
LOWe2e-playwright/dashboard-cujs/utils.ts75export async function trackDashboardReloadRequests(page: Page): Promise<{CODE
LOWe2e-playwright/dashboard-cujs/utils.ts123export function checkDashboardReloadBehavior(requests: DashboardRequest[]): boolean {CODE
LOWe2e-playwright/plugin-catalog-suite/tests/utils.ts68export async function assertInstallUninstallRoundtrip(page: Page, pluginId: string, mt: boolean): Promise<void> {CODE
LOW…ywright/diagnostics-suite/download-diagnostics.spec.ts81function buildDashboardRequestBody(title: string, successDsUid: string, failureDsUid: string) {CODE
LOW…e-playwright/cloud-plugins-suite/azure-monitor.spec.ts36async function provisionAzureMonitorDatasources(CODE
LOWe2e-playwright/dashboard-new-layouts/fixtures.ts26function buildGetByGrafanaSelector(CODE
LOW…ard-new-layouts/dashboards-repeats-custom-grid.spec.ts400async function expectRepeatedPanelsStackedVertically(CODE
LOW…ard-new-layouts/dashboards-repeats-custom-grid.spec.ts421async function expectRepeatedPanelsWrappedHorizontally(CODE
LOW…laywright/dashboard-new-layouts/dashboard-rows.spec.ts255async function expectRowHeaderToBeMarkedAsHidden(title: Locator) {CODE
LOW…laywright/dashboard-new-layouts/dashboard-rows.spec.ts265async function expectCopyLinkToBeVisible(copyLink: Locator) {CODE
LOW…ht/dashboard-new-layouts/dashboard-url-syncing.spec.ts14function buildDashboardPathWithSearch(dashboardUid: string, searchParams: Record<string, string>): string {CODE
LOW…board-new-layouts/dashboards-repeats-snapshots.spec.ts15async function expectRepeatPanelsRendered(panels: Panels, expectedCount: number) {CODE
LOW…dashboard-new-layouts/dashboards-panel-layouts.spec.ts319async function checkAutoGridLayoutInputs(gridLayoutOptions: GridLayoutOptions) {CODE
LOW…dashboard-new-layouts/dashboards-panel-layouts.spec.ts328async function verifyPanelsStackedVertically(panels: Panels, expectedCount = 3) {CODE
LOW…ashboard-new-layouts/dashboard-section-actions.spec.ts331async function prepareDashboardWithSection(CODE
LOW…g/dashboards-conditional-rendering-load-change.spec.ts286 async function failTestDataRequestForOption(page: Page, option: string) {CODE
LOW…right/dashboard-new-layouts/variables/helpers/flows.ts13export async function importVariableTestDashboard(CODE
LOW…/dashboard-new-layouts/variables/helpers/assertions.ts5export async function expectVariableOptionsToBe(page: Page, controls: Controls, label: string, options: string[]) {CODE
LOW…/dashboard-new-layouts/variables/helpers/assertions.ts13export async function expectPreviewOfValuesToBe(previewOptions: Locator, labels: string[]) {CODE
LOWe2e-playwright/dashboard-new-layouts/helpers/flows.ts244function stripMetadataNameFromImportJson(input: string): string {CODE
LOW…playwright/dashboard-new-layouts/helpers/assertions.ts22export async function expectRepeatedPanelTitlesToBe(CODE
LOW…playwright/dashboard-new-layouts/helpers/assertions.ts39export async function expectRepeatedRowTitlesToBe(CODE
LOW…playwright/dashboard-new-layouts/helpers/assertions.ts56export async function expectRepeatedTabTitlesToBe(CODE
LOW…playwright/dashboard-new-layouts/helpers/assertions.ts123export async function expectDashboardChangesToContain(CODE
LOWpublic/app/legacyAPIHandling.ts5export function patchFetchForLegacyAPIMode() {CODE
LOWpublic/app/types/unified-alerting-dto.ts51export function mapStateWithReasonToReason(state: GrafanaAlertStateWithReason): string {CODE
LOWpublic/app/types/unified-alerting-dto.ts62export function mapStateWithReasonToBaseState(CODE
LOWpublic/app/core/assistant/buildAssistantPanelContext.ts9export function buildAssistantPanelContext({CODE
LOWpublic/app/core/assistant/assistantSidebarState.ts35export function getAssistantChatIdToContinue(): string | undefined {CODE
LOWpublic/app/core/context/GrafanaContext.ts32export function useReturnToPreviousInternal() {CODE
LOWpublic/app/core/navigation/mtFallback.test.ts19function renderUseIsMtFallbackConfigured() {CODE
LOWpublic/app/core/utils/richHistory.ts131export async function updateRichHistorySettings(settings: RichHistorySettings): Promise<void> {CODE
LOWpublic/app/core/utils/richHistory.ts143export async function updateStarredInRichHistory(id: string, starred: boolean) {CODE
LOWpublic/app/core/utils/richHistory.ts161export async function updateCommentInRichHistory(id: string, newComment: string | undefined) {CODE
LOWpublic/app/core/utils/errors.ts64export function getRequestConfigFromError(err: FetchError): string {CODE
LOWpublic/app/core/utils/browser.ts5export function checkBrowserCompatibility() {CODE
LOWpublic/app/core/utils/object.ts12export function sortedDeepCloneWithoutNulls(value: unknown, convertInfinity?: boolean, stripBOMs?: boolean): unknown {CODE
LOWpublic/app/core/utils/metrics.ts43export function reportMetricPerformanceMark(metricName: string, prefix = '', suffix = ''): void {CODE
LOWpublic/app/core/crash/crash.utils.ts13function isChromePerformanceMemory(memory: unknown): memory is ChromePerformanceMemory {CODE
LOWpublic/app/core/navtree/buildNavTree.ts91function applyRegisteredNavEntries(tree: NavModelItem[]): NavModelItem[] {CODE
1983 more matches not shown…
Fake / Example Data3174 hits · 2112 pts
SeverityFileLineSnippetContext
LOWdevenv/docker/blocks/influxdb1/docker-compose.yaml16 image: grafana/fake-data-genCODE
LOWdevenv/docker/blocks/postgres/docker-compose.yaml17 image: grafana/fake-data-genCODE
LOWdevenv/docker/blocks/mysql/docker-compose.yaml21 image: grafana/fake-data-genCODE
LOWdevenv/docker/blocks/opentsdb/docker-compose.yaml7 image: grafana/fake-data-genCODE
LOWdevenv/docker/blocks/prometheus/docker-compose.yaml23 image: grafana/fake-data-genCODE
LOWdevenv/docker/blocks/prometheus/prometheus.yml32 - job_name: 'fake-data-gen'CODE
LOWdevenv/docker/blocks/mssql_tls/docker-compose.yaml15 image: grafana/fake-data-genCODE
LOWdevenv/docker/blocks/graphite1/docker-compose.yaml9 image: grafana/fake-data-genCODE
LOWdevenv/docker/blocks/graphite/docker-compose.yaml9 image: grafana/fake-data-genCODE
LOWdevenv/docker/blocks/mssql/docker-compose.yaml15 image: grafana/fake-data-genCODE
LOW…nv/dev-dashboards/datasource-mssql/mssql_fakedata.json76 "description": "A dashboard visualizing data generated from grafana/fake-data-gen",CODE
LOW…nv/dev-dashboards/datasource-mysql/mysql_fakedata.json74 "description": "A dashboard visualizing data generated from grafana/fake-data-gen",CODE
LOW…v-dashboards/panel-table/table-auto-column-widths.json400 "csvContent": "Info,Image,Image w/ Link,Pills,Data Link,Long Text,Styling\ndown,https://grafana.CODE
LOW…v-dashboards/panel-table/table-auto-column-widths.json400 "csvContent": "Info,Image,Image w/ Link,Pills,Data Link,Long Text,Styling\ndown,https://grafana.CODE
LOWdevenv/dev-dashboards/panel-table/table_nested.json69 "csvContent": "Info,Image,Image w/ Link,Pills,Data Link,Long Text,Styling\ndown,https://grafana.CODE
LOWdevenv/dev-dashboards/panel-table/table_nested.json69 "csvContent": "Info,Image,Image w/ Link,Pills,Data Link,Long Text,Styling\ndown,https://grafana.CODE
LOW…env/dev-dashboards/panel-table/table_kitchen_sink.json69 "csvContent": "Info,Image,Image w/ Link,Pills,Data Link,Long Text,Styling\ndown,https://grafana.CODE
LOW…env/dev-dashboards/panel-table/table_kitchen_sink.json69 "csvContent": "Info,Image,Image w/ Link,Pills,Data Link,Long Text,Styling\ndown,https://grafana.CODE
LOW…env/dev-dashboards/panel-table/table_kitchen_sink.json964 "csvContent": "Info,Long Text\ndown,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. SCODE
LOW…env/dev-dashboards/panel-table/table_kitchen_sink.json964 "csvContent": "Info,Long Text\ndown,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. SCODE
LOW…dev-dashboards/panel-table/table_v12_2_migrations.json69 "csvContent": "Info,Image,Image w/ Link,Pills,Data Link,Long Text\ndown,https://grafana.com/mediCODE
LOW…dev-dashboards/panel-table/table_v12_2_migrations.json69 "csvContent": "Info,Image,Image w/ Link,Pills,Data Link,Long Text\ndown,https://grafana.com/mediCODE
LOW…dev-dashboards/panel-table/table_v12_2_migrations.json619 "csvContent": "Info,Image,Image w/ Link,Pills,Data Link,Long Text\ndown,https://grafana.com/mediCODE
LOW…dev-dashboards/panel-table/table_v12_2_migrations.json619 "csvContent": "Info,Image,Image w/ Link,Pills,Data Link,Long Text\ndown,https://grafana.com/mediCODE
LOW…-dashboards/datasource-postgres/postgres_fakedata.json74 "description": "A dashboard visualizing data generated from grafana/fake-data-gen",CODE
LOW…tasource/locales/es-ES/grafana-e2etest-datasource.json5 "placeholder": "Ingrese su clave de API",CODE
LOW…tasource/locales/es-ES/grafana-e2etest-datasource.json16 "placeholder": "Ingrese la ruta, p. ej. /api/v1",CODE
LOW…tasource/locales/sv-SE/grafana-e2etest-datasource.json5 "placeholder": "Ange din API-nyckel",CODE
LOW…tasource/locales/sv-SE/grafana-e2etest-datasource.json16 "placeholder": "Ange sökvägen, t.ex. /api/v1",CODE
LOW…tasource/locales/en-US/grafana-e2etest-datasource.json5 "placeholder": "Enter your API key",CODE
LOW…tasource/locales/en-US/grafana-e2etest-datasource.json16 "placeholder": "Enter the path, e.g. /api/v1",CODE
LOW…playwright/dashboards-suite/new-query-variable.spec.ts39 await expect(nameInput).toHaveAttribute('placeholder', 'Variable name');CODE
LOW…playwright/dashboards-suite/new-query-variable.spec.ts53 await expect(labelInput).toHaveAttribute('placeholder', 'Label name');CODE
LOW…playwright/dashboards-suite/new-query-variable.spec.ts58 await expect(descriptionInput).toHaveAttribute('placeholder', 'Descriptive text');CODE
LOW…playwright/dashboards-suite/new-query-variable.spec.ts74 await expect(datasourceSelect).toHaveAttribute('placeholder', 'gdev-testdata');CODE
LOW…playwright/dashboards-suite/new-query-variable.spec.ts83 await expect(regexInput).toHaveAttribute('placeholder', '/.*-(?<text>.*)-(?<value>.*)-.*/');CODE
LOWe2e-playwright/panels-suite/table-nested.spec.ts234 // toggle the lorem ipsum column's wrap text toggle and confirm that the height shrinks.COMMENT
LOW…ywright/panels-suite/table-adhoc-range-filters.spec.ts138 await expect(popup.getByRole('checkbox', { name: /Lorem ipsum dolor sit amet/ })).toBeVisible();CODE
LOW…ywright/panels-suite/table-adhoc-range-filters.spec.ts138 await expect(popup.getByRole('checkbox', { name: /Lorem ipsum dolor sit amet/ })).toBeVisible();CODE
LOW…ywright/panels-suite/table-adhoc-range-filters.spec.ts153 'placeholder',CODE
LOW…ywright/panels-suite/table-adhoc-range-filters.spec.ts157 'placeholder',CODE
LOWe2e-playwright/panels-suite/table-kitchenSink.spec.ts78 // toggle the lorem ipsum column's wrap text toggle and confirm that the height shrinks.COMMENT
LOW…-layouts/variables/dashboards-filter-variables.spec.ts71 'placeholder',CODE
LOW…new-layouts/variables/dashboards-variable-type.spec.ts75 await expect(variableOptions.query.getTargetDatasourceInput()).toHaveAttribute('placeholder', 'gdev-testdata');CODE
LOW…w-layouts/variables/dashboards-adhoc-variables.spec.ts60 await expect(sidebar.variableOptions.adhoc.getDatasourceInput()).toHaveAttribute('placeholder', dataSource);CODE
LOW…w-layouts/variables/dashboards-query-variables.spec.ts96 'placeholder',CODE
LOW…ion-alerting-resources/terraform-provisioning/index.md232 Lorem ipsum - Custom alert!CODE
LOW…configure-access/configure-authentication/jwt/index.md78 "name": "John Doe",CODE
LOW…ns/access-control/rbac-terraform-provisioning/index.md162 admins = ["admin@example.com"]CODE
LOW⚡public/locales/tr-TR/grafana.json6065 "placeholder": "Değerler seçin"CODE
LOW⚡public/locales/tr-TR/grafana.json6074 "placeholder": "Ara..."CODE
LOW⚡public/locales/tr-TR/grafana.json6080 "placeholder": "Değer seçin"CODE
LOW⚡public/locales/tr-TR/grafana.json12109 "placeholder": "örnek: 127.0.0.1"CODE
LOW⚡public/locales/tr-TR/grafana.json12119 "placeholder": "örnek: cn=%s"CODE
LOW⚡public/locales/tr-TR/grafana.json12125 "placeholder": "örnek: dc=grafana,dc=org"CODE
LOW⚡public/locales/tr-TR/grafana.json18498 "placeholder": "Değer seçin"CODE
LOW⚡public/locales/tr-TR/grafana.json18501 "placeholder": "Değişken değeri girin"CODE
LOW⚡public/locales/tr-TR/grafana.json18510 "placeholder": "Değişken değeri girin"CODE
LOWpublic/locales/tr-TR/grafana.json1511 "placeholder": "",CODE
LOWpublic/locales/tr-TR/grafana.json2558 "placeholder": "Grup etiketi değerlerine göre filtrele"CODE
3114 more matches not shown…
Hallucination Indicators149 hits · 1715 pts
SeverityFileLineSnippetContext
CRITICAL…-playwright/dashboards-suite/textbox-variables.spec.ts56 const textPanel = page.locator(selectors.components.Panels.Visualization.Text.container(''));CODE
CRITICALe2e-playwright/notebooks-suite/notebook-crud.spec.ts104 const row = page.getByTestId(selectors.pages.Notebooks.List.table.row(notebookUid!));CODE
CRITICALe2e-playwright/notebooks-suite/notebook-crud.spec.ts107 const rowMenuButton = page.getByTestId(selectors.pages.Notebooks.List.table.rowMenuButton(notebookUid!));CODE
CRITICAL…playwright/notebooks-suite/notebooks-list-page.spec.ts69 const rowA = page.getByTestId(selectors.pages.Notebooks.List.table.row(uidA));CODE
CRITICAL…playwright/notebooks-suite/notebooks-list-page.spec.ts70 const rowB = page.getByTestId(selectors.pages.Notebooks.List.table.row(uidB));CODE
CRITICAL…playwright/notebooks-suite/notebooks-list-page.spec.ts122 const row = page.getByTestId(selectors.pages.Notebooks.List.table.row(uid));CODE
CRITICAL…playwright/notebooks-suite/notebooks-list-page.spec.ts125 const rowMenuButton = page.getByTestId(selectors.pages.Notebooks.List.table.rowMenuButton(uid));CODE
CRITICAL…laywright/dashboard-new-layouts/page-objects/Panels.ts21 return (scope ?? this.page).getByTestId(this.selectors.components.Panels.Panel.title(panelTitle));CODE
CRITICAL⚡…laywright/dashboard-new-layouts/page-objects/Panels.ts115 await this.getByGrafanaSelector(this.selectors.components.Panels.Panel.menu(panelTitle)).click({ force: true });CODE
CRITICAL⚡…laywright/dashboard-new-layouts/page-objects/Panels.ts118 await this.getByGrafanaSelector(this.selectors.components.Panels.Panel.menuItems(item)).hover();CODE
CRITICAL⚡…laywright/dashboard-new-layouts/page-objects/Panels.ts121 await this.getByGrafanaSelector(this.selectors.components.Panels.Panel.menuItems(menuPath.at(-1)!)).click();CODE
CRITICAL…ywright/dashboard-new-layouts/page-objects/Controls.ts128 this.getByGrafanaSelector(this.selectors.pages.Dashboard.SubMenu.submenuItemLabels(variableLabel)),CODE
CRITICAL…rd-new-layouts/page-objects/sidebar/VariableOptions.ts17 this.selectors.components.PanelEditor.ElementEditPane.variableType(variableType)CODE
CRITICAL…rd-new-layouts/page-objects/sidebar/VariableOptions.ts192 this.selectors.components.PanelEditor.OptionsPane.fieldLabel(`selection-options-category ${title}`),CODE
CRITICAL…rd-new-layouts/page-objects/sidebar/VariableOptions.ts334 this.getByGrafanaSelector(this.selectors.components.PanelEditor.OptionsPane.fieldLabel('variable-type Refresh'), {CODE
CRITICAL…rd-new-layouts/page-objects/sidebar/VariableOptions.ts415 this.selectors.components.PanelEditor.OptionsPane.fieldLabel('variable-type Value')CODE
CRITICAL…rd-new-layouts/page-objects/sidebar/VariableOptions.ts432 this.selectors.components.PanelEditor.OptionsPane.fieldLabel('variable-type Value')CODE
CRITICAL…shboard-new-layouts/page-objects/sidebar/RowOptions.ts30 this.selectors.components.PanelEditor.OptionsPane.fieldLabel('dash-row-edit Fill screen')CODE
CRITICAL…board-new-layouts/page-objects/sidebar/PanelOptions.ts24 return this.getByGrafanaSelector(this.selectors.components.PanelEditor.OptionsPane.fieldInput('Title'));CODE
CRITICAL…board-new-layouts/page-objects/sidebar/PanelOptions.ts39 this.selectors.components.PanelEditor.OptionsPane.fieldLabel('Panel options Description')CODE
CRITICAL…board-new-layouts/page-objects/sidebar/PanelOptions.ts44 return this.getByGrafanaSelector(this.selectors.components.PanelEditor.OptionsPane.fieldLabel('subtitle-switch'));CODE
CRITICAL…ard-new-layouts/page-objects/sidebar/ContentOutline.ts18 return this.getByGrafanaSelector(this.selectors.components.PanelEditor.Outline.item(displayedName));CODE
CRITICAL…ard-new-layouts/page-objects/sidebar/ContentOutline.ts34 await this.getByGrafanaSelector(this.selectors.components.PanelEditor.Outline.node(itemName)).click();CODE
CRITICAL…d-new-layouts/page-objects/sidebar/DashboardOptions.ts31 this.selectors.components.PanelEditor.OptionsPane.fieldLabel('dashboard-options Title')CODE
CRITICAL…d-new-layouts/page-objects/sidebar/DashboardOptions.ts38 this.selectors.components.PanelEditor.OptionsPane.fieldLabel('dashboard-options Description')CODE
CRITICAL…w-layouts/page-objects/sidebar/shared/RepeatOptions.ts45 this.selectors.components.PanelEditor.OptionsPane.fieldLabel(`${this.groupId} Repeat direction`)CODE
CRITICAL…w-layouts/page-objects/sidebar/shared/RepeatOptions.ts55 this.selectors.components.PanelEditor.OptionsPane.fieldLabel(`${this.groupId} Max per row`)CODE
CRITICAL…w-layouts/page-objects/sidebar/shared/RepeatOptions.ts93 this.selectors.components.PanelEditor.OptionsPane.fieldLabel(`${this.groupId} Repeat by variable`)CODE
CRITICAL…-objects/sidebar/shared/ConditionalRenderingOptions.ts46 return this.getByGrafanaSelector(this.selectors.pages.Dashboard.Sidebar.conditionalRendering.rule(ruleId));CODE
CRITICAL…ing/unified/components/rule-viewer/RuleViewer.test.tsx101 await user.click(ELEMENTS.actions.more.actions.silence.get());CODE
CRITICAL⚡…ing/unified/components/rule-viewer/RuleViewer.test.tsx551 expect(ELEMENTS.actions.more.pluginActions.sloDashboard.get()).toBeInTheDocument();CODE
CRITICAL⚡…ing/unified/components/rule-viewer/RuleViewer.test.tsx552 expect(ELEMENTS.actions.more.pluginActions.assertsWorkbench.query()).not.toBeInTheDocument();CODE
CRITICAL⚡…ing/unified/components/rule-viewer/RuleViewer.test.tsx554 await waitFor(() => expect(ELEMENTS.actions.more.pluginActions.declareIncident.get()).toBeEnabled());CODE
CRITICAL⚡…ing/unified/components/rule-viewer/RuleViewer.test.tsx570 expect(ELEMENTS.actions.more.pluginActions.assertsWorkbench.get()).toBeInTheDocument();CODE
CRITICAL⚡…ing/unified/components/rule-viewer/RuleViewer.test.tsx571 expect(ELEMENTS.actions.more.pluginActions.sloDashboard.query()).not.toBeInTheDocument();CODE
CRITICAL⚡…ing/unified/components/rule-viewer/RuleViewer.test.tsx573 await waitFor(() => expect(ELEMENTS.actions.more.pluginActions.declareIncident.get()).toBeEnabled());CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx145 expect(ui.settings.googlechat.title.input.get()).toHaveValue('Alert Title');CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx146 expect(ui.settings.googlechat.message.input.get()).toHaveValue('Alert Message');CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx153 expect(ui.settings.webhook.title.container.get()).toBeInTheDocument();CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx154 expect(ui.settings.webhook.message.container.get()).toBeInTheDocument();CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx157 expect(ui.settings.webhook.message.input.query()).not.toBeInTheDocument();CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx158 expect(ui.settings.webhook.title.input.query()).not.toBeInTheDocument();CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx176 expect(ui.settings.webhook.title.input.get()).toHaveValue('Webhook Title');CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx177 expect(ui.settings.webhook.message.input.get()).toHaveValue('Webhook Message');CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx184 expect(ui.settings.googlechat.title.container.get()).toBeInTheDocument();CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx185 expect(ui.settings.googlechat.message.container.get()).toBeInTheDocument();CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx188 expect(ui.settings.googlechat.message.input.query()).not.toBeInTheDocument();CODE
CRITICAL⚡…fied/components/receivers/form/ChannelSubForm.test.tsx189 expect(ui.settings.googlechat.title.input.query()).not.toBeInTheDocument();CODE
CRITICAL…fied/components/receivers/form/ChannelSubForm.test.tsx209 expect(ui.settings.googlechat.title.input.get()).toHaveValue('Original Title');CODE
CRITICAL…fied/components/receivers/form/ChannelSubForm.test.tsx210 expect(ui.settings.googlechat.message.input.get()).toHaveValue('Original Message');CODE
CRITICAL…fied/components/receivers/form/ChannelSubForm.test.tsx225 expect(ui.settings.googlechat.title.input.get()).toHaveValue('Original Title');CODE
CRITICAL…fied/components/receivers/form/ChannelSubForm.test.tsx226 expect(ui.settings.googlechat.message.input.get()).toHaveValue('Original Message');CODE
CRITICAL⚡…components/receivers/form/GrafanaReceiverForm.test.tsx540 const oauth2Container = await ui.webhook.httpConfig.oauth2.container.find();CODE
CRITICAL⚡…components/receivers/form/GrafanaReceiverForm.test.tsx541 const clientSecretField = ui.webhook.httpConfig.oauth2.clientSecret.get(oauth2Container);CODE
CRITICAL⚡…components/receivers/form/GrafanaReceiverForm.test.tsx542 const oauthCaCertField = ui.webhook.httpConfig.oauth2.tls_config.caCertificate.get(oauth2Container);CODE
CRITICAL⚡…components/receivers/form/GrafanaReceiverForm.test.tsx543 const oauthClientCertField = ui.webhook.httpConfig.oauth2.tls_config.clientCert.get(oauth2Container);CODE
CRITICAL⚡…components/receivers/form/GrafanaReceiverForm.test.tsx544 const oauthClientKeyField = ui.webhook.httpConfig.oauth2.tls_config.clientKey.get(oauth2Container);CODE
CRITICAL…components/receivers/form/GrafanaReceiverForm.test.tsx617 expect(await ui.webhook.httpConfig.oauth2.tls_config.container.find()).toBeInTheDocument();CODE
CRITICAL…components/receivers/form/GrafanaReceiverForm.test.tsx618 await user.click(await ui.webhook.httpConfig.oauth2.tls_config.deleteButton.find());CODE
CRITICALpublic/app/features/canvas/runtime/scene.tsx379 this.tooltipPayload.element.options.actions.filter(CODE
89 more matches not shown…
Over-Commented Block1451 hits · 1398 pts
SeverityFileLineSnippetContext
LOWrelyance.yaml1# Relyance Compliance Inspector ConfigurationCOMMENT
LOWeslint.config.js721 // '@grafana/no-plugin-external-import-paths': 'error',COMMENT
LOWdevenv/docker/blocks/loki/loki-config.yaml41# By default, Loki will send anonymous, but uniquely-identifiable usage and configurationCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1######################## Filebeat Configuration ############################COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml21 # Filebeat will choose the paths depending on your OS.COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml41COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml61 #error:COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml81 # Input configuration (advanced). Any input configuration optionCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml101 # Filebeat will choose the paths depending on your OS.COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml141 # Set custom paths for the log files. If left empty,COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml161 #enabled: trueCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml181 #input:COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml201 # Set custom paths for the log files. If left empty,COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml221 #var.paths:COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml241COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml261 #var.paths:COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml281 # Slow logsCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml301 #var.paths:COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml321COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml341 # LogsCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml361 #var.paths: ["/var/log/redis/redis-server.log*"]COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml381 #var.paths:COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml441#- type: logCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml461COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml481 # review: 1COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml501COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml521 # If you enable this setting, the keys are copied top level in the output document.COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml541COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml561 # this can mean that the first entries of a new file are skipped.COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml581 # backoff factor. Having it set to 10s means in the worst case a new line can be added to a logCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml601 # Close renamed closes a file handler when the file is renamed or rotated.COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml621 # Removes the state for file which cannot be found on disk anymore immediatelyCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml641COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml661# Experimental: Config options for the udp inputCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml681COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml701COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml721 # The host and port to receive the new eventCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml741 # The number of seconds of inactivity before a remote connection is closed.COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml761 # Optional passphrase for decrypting the Certificate Key.COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml781COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml801# - type: logCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml821COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml841 #reload.enabled: trueCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml861COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml881 # to be sent to the outputs.COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml901 # will have no more effect.COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml921 # - The buffer limit has been reached.COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml941 # Reader flush timeout, waiting for more events to become available, soCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml961# The supported processors are drop_fields, drop_event, include_fields,COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml981#COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1001#COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1021# match_source_index: 4COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1041#- add_host_metadata:COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1061# overwrite_keys: falseCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1081output.elasticsearch:COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1101COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1121 #pipeline: ""COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1141COMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1161 # susceptible to man-in-the-middle attacks. Use only for testing. Default isCOMMENT
LOWdevenv/docker/blocks/elasticstack/filebeat.yml1181 # Configure cipher suites to be used for SSL connectionsCOMMENT
1391 more matches not shown…
Structural Annotation Overuse123 hits · 214 pts
SeverityFileLineSnippetContext
LOW⚡…playwright/journey-tracking/browse-to-resource.spec.ts171 // Step 1: navigate_folder (clicking the folder)COMMENT
LOW⚡…playwright/journey-tracking/browse-to-resource.spec.ts175 // Step 2: select_resource (clicking the dashboard)COMMENT
LOW⚡…playwright/journey-tracking/browse-to-resource.spec.ts186 // Step 1: Navigate into folder ACOMMENT
LOW⚡…playwright/journey-tracking/browse-to-resource.spec.ts193 // Step 2: Navigate into folder B (nested inside A)COMMENT
LOW⚡…playwright/journey-tracking/browse-to-resource.spec.ts200 // Step 3: Click the dashboard inside folder BCOMMENT
LOWhack/openapi-codegen.sh6## NOTE: The following is a fork of the original gen_openapi helper in k8s.io/code-generatorCOMMENT
LOWdocs/sources/datasources/graphite/annotations/index.md225### Step 1: Record a deployment eventCOMMENT
LOW⚡docs/sources/datasources/graphite/annotations/index.md241### Step 2: Build the latency panelCOMMENT
LOW⚡docs/sources/datasources/graphite/annotations/index.md248### Step 3: Add the deployment annotation queryCOMMENT
LOW⚡docs/sources/datasources/graphite/annotations/index.md257### Step 4: Interpret the resultCOMMENT
LOWdocs/sources/as-code/terraform/terraform-cloud-stack.md46 // Step 1: Create a stackCOMMENT
LOWdocs/sources/as-code/terraform/terraform-cloud-stack.md62 // Step 2: Create a service account and key for the stackCOMMENT
LOWdocs/sources/as-code/terraform/terraform-cloud-stack.md80 // Step 3: Create resources within the stackCOMMENT
LOW…s/as-code/git-sync/add-resources/dashboards-migrate.md73## Step 1: Export the resources to your repositoryCOMMENT
LOW…s/as-code/git-sync/add-resources/dashboards-migrate.md141## Step 2: Delete the original dashboardsCOMMENT
LOW…s/as-code/git-sync/add-resources/dashboards-migrate.md155## Step 3: Validate the migrationCOMMENT
LOW…cation/saml/configure-saml-team-role-mapping/_index.md116### Step 1: Configure Okta to send groupsCOMMENT
LOW…cation/saml/configure-saml-team-role-mapping/_index.md137### Step 2: Configure Grafana to map groups to rolesCOMMENT
LOW…cs/sources/tutorials/alerting-get-started-pt6/index.md147## Step 1: Create a visualization to monitor metricsCOMMENT
LOW…cs/sources/tutorials/alerting-get-started-pt6/index.md194## Step 2: Create alert rulesCOMMENT
LOW…cs/sources/tutorials/alerting-get-started-pt6/index.md265## Step 3: Visualizing metrics and alert annotationsCOMMENT
LOW…cs/sources/tutorials/alerting-get-started-pt6/index.md274## Step 4: Receiving notificationsCOMMENT
LOW…cs/sources/tutorials/alerting-get-started-pt5/index.md171## Step 1: Create Notification PoliciesCOMMENT
LOW…cs/sources/tutorials/alerting-get-started-pt5/index.md208## Step 2: Create alert rules to monitor CPU and memory usageCOMMENT
LOW…cs/sources/tutorials/alerting-get-started-pt5/index.md288## Step 3: Create a second alert rule for memory usageCOMMENT
LOW…cs/sources/tutorials/alerting-get-started-pt4/index.md210## Step 1: Template labels and annotationsCOMMENT
LOW…cs/sources/tutorials/alerting-get-started-pt4/index.md298## Step 2: Template notificationsCOMMENT
LOWdocs/sources/tutorials/iis/index.md82### Step 1: Forward ProxyCOMMENT
LOWdocs/sources/tutorials/iis/index.md92### Step 2: URL RewritingCOMMENT
LOWpublic/app/core/journeys/journey-tracking.md326### Step 0: Decide whether you need a journeyCOMMENT
LOWpublic/app/core/journeys/journey-tracking.md336### Step 1: Plan the journey shapeCOMMENT
LOWpublic/app/core/journeys/journey-tracking.md351### Step 2: Identify or add the interactions you'll listen onCOMMENT
LOWpublic/app/core/journeys/journey-tracking.md364### Step 3: Register metadataCOMMENT
LOWpublic/app/core/journeys/journey-tracking.md394### Step 4: Create the wiring fileCOMMENT
LOWpublic/app/core/journeys/journey-tracking.md454### Step 5: Import at bootstrapCOMMENT
LOWpublic/app/core/journeys/journey-tracking.md474### Step 6: Write testsCOMMENT
LOWpublic/app/core/journeys/journey-tracking.md487### Step 7: Verify locallyCOMMENT
LOW…rting/unified/components/import-to-gma/ImportToGMA.tsx82 // Step 1: Alertmanager resourcesCOMMENT
LOW…rting/unified/components/import-to-gma/ImportToGMA.tsx98 // Step 2: Alert rulesCOMMENT
LOW⚡…blic/app/features/annotations/utils/savedQueryUtils.ts50 // Step 1: Create clean annotation structure with only annotation-specific fieldsCOMMENT
LOW…blic/app/features/annotations/utils/savedQueryUtils.ts63 // Step 2: Use datasource's export/import to normalize saved queryCOMMENT
LOW…blic/app/features/annotations/utils/savedQueryUtils.ts104 // Step 3: Create annotation and apply datasource-specific preparationCOMMENT
LOW…blic/app/features/annotations/utils/savedQueryUtils.ts120 // Step 4: Handle v1 vs v2 dashboard format after preparationCOMMENT
LOW⚡scripts/build-msi.sh139 # Step 1: harvest files into grafana.wxsCOMMENT
LOW⚡scripts/build-msi.sh149 # Step 2: compile all .wxs filesCOMMENT
LOW⚡scripts/build-msi.sh157 # Step 3: link into MSICOMMENT
LOW⚡apps/dashvalidator/pkg/validator/dashboard.go45 // Step 1: Extract queries from dashboard JSONCOMMENT
LOW⚡apps/dashvalidator/pkg/validator/dashboard.go51 // Step 2: Group queries by datasource UID (with variable resolution for MVP)COMMENT
LOW⚡apps/dashvalidator/pkg/validator/dashboard.go54 // Step 3: Validate each datasourceCOMMENT
LOWapps/dashvalidator/pkg/validator/dashboard.go94 // Step 4: Calculate overall compatibility scoreCOMMENT
LOWapps/dashvalidator/pkg/app/app.go142 // Step 1: Parse request bodyCOMMENT
LOWapps/dashvalidator/pkg/app/app.go198 // Step 2: Build validator requestCOMMENT
LOWapps/dashvalidator/pkg/app/app.go348 // Step 3: Validate dashboard compatibilityCOMMENT
LOW⚡apps/dashvalidator/pkg/app/app.go376 // Step 4: Convert result to response formatCOMMENT
LOW⚡apps/dashvalidator/pkg/app/app.go379 // Step 5: Return responseCOMMENT
LOWapps/dashvalidator/pkg/cache/cache.go142// NOTE: This method delegates to GetMetrics for fetching/caching logic.COMMENT
LOW⚡…hboard/pkg/migration/conversion/v2alpha1_to_v1_test.go50 // Step 1: Convert v2alpha1 → v1COMMENT
LOW⚡…hboard/pkg/migration/conversion/v2alpha1_to_v1_test.go55 // Step 2: Convert v1 → v2alpha1 (back)COMMENT
LOW…d/pkg/migration/conversion/v2beta1_to_v2alpha1_test.go65 // Step 1: Convert v2beta1 → v2alpha1COMMENT
LOW…d/pkg/migration/conversion/v2beta1_to_v2alpha1_test.go77 // Step 2: Convert v2alpha1 → v2beta1 (back)COMMENT
63 more matches not shown…
Decorative Section Separators69 hits · 208 pts
SeverityFileLineSnippetContext
MEDIUMdevenv/secrets/secrets.go47// ── Config types (YAML input) ───────────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go74// ── API resource types (JSON for POST) ──────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go130// ── HTTP client ─────────────────────────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go185// ── Check API availability ──────────────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go211// ── Create resources ────────────────────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go304// ── Delete resources ────────────────────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go349// ── Helpers ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go360// ── Self-test (no server required) ──────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go378 // ── Config parsing ──────────────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go425 // ── Resource JSON structure ─────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go496 // ── Helpers ─────────────────────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go510 // ── HTTP interaction (mock server) ──────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go542 // ── Summary ─────────────────────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go579// ── Generate bulk test data ──────────────────────────────────────────────────COMMENT
MEDIUMdevenv/secrets/secrets.go646// ── Main ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/app/features/alerting/unified/utils/access-control.ts26// ── Pure data: static permission maps ────────────────────────────────────────COMMENT
MEDIUM…/app/features/alerting/unified/utils/access-control.ts92// ── Pure functions: source-type-aware permission resolvers ────────────────────COMMENT
MEDIUM…/app/features/alerting/unified/utils/access-control.ts118// ── Runtime utilities ─────────────────────────────────────────────────────────COMMENT
MEDIUM…res/alerting/unified/hooks/abilities/otherAbilities.ts20// ── Folder abilities ──────────────────────────────────────────────────────────COMMENT
MEDIUM…res/alerting/unified/hooks/abilities/otherAbilities.ts41// ── Folder bulk action abilities ──────────────────────────────────────────────COMMENT
MEDIUM…res/alerting/unified/hooks/abilities/otherAbilities.ts62// ── Enrichment abilities ──────────────────────────────────────────────────────COMMENT
MEDIUM…app/features/alerting/unified/hooks/abilities/types.ts131// ── Ability ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…app/features/alerting/unified/hooks/abilities/types.ts195// ── Sentinel constants ────────────────────────────────────────────────────────COMMENT
MEDIUM…app/features/alerting/unified/hooks/abilities/types.ts240// ── Type-guard functions ──────────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.test.tsx38// ── useRuleAdministrationAbility ────────────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.test.tsx303// ── useRuleSilenceAbility ─────────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.test.tsx355// ── useRuleExploreAbility ─────────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.test.tsx381// ── useRuleExportAbility ──────────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.test.tsx404// ── useRuleAdministrationAbility ─────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.test.tsx497// ── usePromRuleSilenceAbility ─────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.test.tsx547// ── usePromRuleExportAbility ──────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.test.tsx576// ── Global rule ability React hooks ──────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.test.tsx628// ── Pure utility function branches ────────────────────────────────────────────COMMENT
MEDIUM…ng/unified/hooks/abilities/rules/rulerRuleAbilities.ts39// ── useRuleAdministrationAbility ──────────────────────────────────────────────COMMENT
MEDIUM…ng/unified/hooks/abilities/rules/rulerRuleAbilities.ts111// ── useRuleSilenceAbility ─────────────────────────────────────────────────────COMMENT
MEDIUM…ng/unified/hooks/abilities/rules/rulerRuleAbilities.ts125// ── useRuleExportAbility ──────────────────────────────────────────────────────COMMENT
MEDIUM…ng/unified/hooks/abilities/rules/rulerRuleAbilities.ts137// ── Internal helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUM…ing/unified/hooks/abilities/rules/promRuleAbilities.ts37// ── usePromRuleAdministrationAbility ─────────────────────────────────────────COMMENT
MEDIUM…ing/unified/hooks/abilities/rules/promRuleAbilities.ts106// ── usePromRuleSilenceAbility ─────────────────────────────────────────────────COMMENT
MEDIUM…ing/unified/hooks/abilities/rules/promRuleAbilities.ts125// ── usePromRuleExportAbility ──────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.utils.ts24// ── Sentinel token ────────────────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.utils.ts30// ── Shared result type ────────────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.utils.ts66// ── Pure ability builders ─────────────────────────────────────────────────────COMMENT
MEDIUM…g/unified/hooks/abilities/rules/ruleAbilities.utils.ts166// ── Shared internal hooks ─────────────────────────────────────────────────────COMMENT
MEDIUM…lerting/unified/hooks/abilities/rules/ruleAbilities.ts37// ── Grafana-managed rule abilities (global / list level) ──────────────────────COMMENT
MEDIUM…lerting/unified/hooks/abilities/rules/ruleAbilities.ts95// ── External datasource rule abilities (global / list level) ──────────────────COMMENT
MEDIUM⚡…lerting/unified/hooks/abilities/rules/ruleAbilities.ts140// ── Explore (no rule context needed) ─────────────────────────────────────────COMMENT
MEDIUM…tures/dashboard-scene/scene/UnconfiguredPanel.test.tsx20// ─── module mocks ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…tures/dashboard-scene/scene/UnconfiguredPanel.test.tsx83// ─── typed mock references ────────────────────────────────────────────────────COMMENT
MEDIUM…tures/dashboard-scene/scene/UnconfiguredPanel.test.tsx98// ─── helpers ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tures/dashboard-scene/scene/UnconfiguredPanel.test.tsx122// ─── setup ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tures/dashboard-scene/scene/UnconfiguredPanel.test.tsx148// ─── tests ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/provisioning/pkg/repository/workflows_test.go462 // ─── size-threshold boundary cases ─────────────────────────────────────COMMENT
MEDIUMapps/provisioning/pkg/repository/workflows_test.go526 // ─── folder-metadata-only deletion cases ───────────────────────────────COMMENT
MEDIUMapps/provisioning/pkg/repository/workflows_test.go610 // ─── size check is evaluated before the folder-metadata guard ──────────COMMENT
MEDIUMpkg/tests/apis/provisioning/common/testing.go3326// ── Git-server test infrastructure ─────────────────────────────────────────COMMENT
MEDIUMpkg/tests/apis/provisioning/common/testing.go3938// ── Export helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUM…visioning/foldermetadata/fixfoldermetadata_git_test.go181// ── helpers ────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ning/foldermetadata/folder_title_normalization_test.go45// ──────────────────────────── ─────────────────────────────────────COMMENT
MEDIUM…ning/foldermetadata/folder_title_normalization_test.go206// ──────────────────────────── ─────────────────────────────────────COMMENT
9 more matches not shown…
Verbosity Indicators91 hits · 164 pts
SeverityFileLineSnippetContext
LOW⚡…playwright/journey-tracking/browse-to-resource.spec.ts171 // Step 1: navigate_folder (clicking the folder)COMMENT
LOW⚡…playwright/journey-tracking/browse-to-resource.spec.ts175 // Step 2: select_resource (clicking the dashboard)COMMENT
LOW⚡…playwright/journey-tracking/browse-to-resource.spec.ts186 // Step 1: Navigate into folder ACOMMENT
LOW⚡…playwright/journey-tracking/browse-to-resource.spec.ts193 // Step 2: Navigate into folder B (nested inside A)COMMENT
LOW⚡…playwright/journey-tracking/browse-to-resource.spec.ts200 // Step 3: Click the dashboard inside folder BCOMMENT
LOW…series/plugins/annotations/useAnnotationClustering.tsx85 // If region annotations are in the cluster we need to check if the end time is later thenCOMMENT
LOW…rting/unified/components/import-to-gma/ImportToGMA.tsx82 // Step 1: Alertmanager resourcesCOMMENT
LOW…rting/unified/components/import-to-gma/ImportToGMA.tsx98 // Step 2: Alert rulesCOMMENT
LOW…blic/app/features/explore/TraceView/createTraceLink.ts168 // Because we can only pass milliseconds in the url we need to check if they are greater or equal.COMMENT
LOW⚡…blic/app/features/annotations/utils/savedQueryUtils.ts50 // Step 1: Create clean annotation structure with only annotation-specific fieldsCOMMENT
LOW…blic/app/features/annotations/utils/savedQueryUtils.ts63 // Step 2: Use datasource's export/import to normalize saved queryCOMMENT
LOW…blic/app/features/annotations/utils/savedQueryUtils.ts104 // Step 3: Create annotation and apply datasource-specific preparationCOMMENT
LOW…blic/app/features/annotations/utils/savedQueryUtils.ts120 // Step 4: Handle v1 vs v2 dashboard format after preparationCOMMENT
LOW⚡scripts/build-msi.sh139 # Step 1: harvest files into grafana.wxsCOMMENT
LOW⚡scripts/build-msi.sh149 # Step 2: compile all .wxs filesCOMMENT
LOW⚡scripts/build-msi.sh157 # Step 3: link into MSICOMMENT
LOWapps/advisor/pkg/app/checks/instancechecks/check.go59 // If running in cloud, we need to check if the version is pinnedCOMMENT
LOWapps/advisor/pkg/app/checks/instancechecks/check.go68 // If running in self-managed, we need to check if the version is out of supportCOMMENT
LOW…r/pkg/app/checks/instancechecks/out_of_support_step.go65 // In other cases, we need to check if the version is out of support.COMMENT
LOW⚡apps/dashvalidator/pkg/validator/dashboard.go45 // Step 1: Extract queries from dashboard JSONCOMMENT
LOW⚡apps/dashvalidator/pkg/validator/dashboard.go51 // Step 2: Group queries by datasource UID (with variable resolution for MVP)COMMENT
LOW⚡apps/dashvalidator/pkg/validator/dashboard.go54 // Step 3: Validate each datasourceCOMMENT
LOWapps/dashvalidator/pkg/validator/dashboard.go94 // Step 4: Calculate overall compatibility scoreCOMMENT
LOWapps/dashvalidator/pkg/app/app.go142 // Step 1: Parse request bodyCOMMENT
LOWapps/dashvalidator/pkg/app/app.go198 // Step 2: Build validator requestCOMMENT
LOWapps/dashvalidator/pkg/app/app.go348 // Step 3: Validate dashboard compatibilityCOMMENT
LOW⚡apps/dashvalidator/pkg/app/app.go376 // Step 4: Convert result to response formatCOMMENT
LOW⚡apps/dashvalidator/pkg/app/app.go379 // Step 5: Return responseCOMMENT
LOW⚡…hboard/pkg/migration/conversion/v2alpha1_to_v1_test.go50 // Step 1: Convert v2alpha1 → v1COMMENT
LOW⚡…hboard/pkg/migration/conversion/v2alpha1_to_v1_test.go55 // Step 2: Convert v1 → v2alpha1 (back)COMMENT
LOW…d/pkg/migration/conversion/v2beta1_to_v2alpha1_test.go65 // Step 1: Convert v2beta1 → v2alpha1COMMENT
LOW…d/pkg/migration/conversion/v2beta1_to_v2alpha1_test.go77 // Step 2: Convert v2alpha1 → v2beta1 (back)COMMENT
LOW…/dashboard/pkg/migration/conversion/conversion_test.go123 // Step 1: Convert source to intermediate (if applicable)COMMENT
LOW…/dashboard/pkg/migration/conversion/conversion_test.go150 // Step 2: Convert to final targetCOMMENT
LOWpkg/tests/apis/helper.go1332 // Step 2: Start with search failures, reusing orgs/users from step 1COMMENT
LOWpkg/tests/apis/helper.go1364 // Step 1: Start normally (search working) with DB cleanup disabledCOMMENT
LOW…/tests/apis/provisioning/repository/repository_test.go1958 // Step 1: Create first repository with empty path - syncs successfullyCOMMENT
LOW…/tests/apis/provisioning/repository/repository_test.go1970 // Step 2: Create second repository with same URL, branch, and empty path. Sync staysCOMMENT
LOW…sts/apis/provisioning/orgs/namespace_isolation_test.go47 // Step 1: Create repositories in both organizations with folder syncCOMMENT
LOW…sts/apis/provisioning/orgs/namespace_isolation_test.go74 // Step 2: Sync both repositories and verify successCOMMENT
LOW…sts/apis/provisioning/orgs/namespace_isolation_test.go97 // Step 3: Verify namespace isolation - each org can only see its own resourcesCOMMENT
LOW…sts/apis/provisioning/orgs/namespace_isolation_test.go140 // Step 4: Verify cross-namespace access is blockedCOMMENT
LOW…sts/apis/provisioning/orgs/namespace_isolation_test.go166 // Step 5: Verify dashboards are also isolatedCOMMENT
LOW…sts/apis/provisioning/orgs/namespace_isolation_test.go197 // Step 6: Verify re-sync maintains isolationCOMMENT
LOWpkg/tests/apis/provisioning/quota/sync_quota_test.go175 // Step 1: Create a repo with 1 dashboard (2 resources total: 1 root folder + 1 dashboard)COMMENT
LOWpkg/tests/apis/provisioning/quota/sync_quota_test.go191 // Step 2: Add 2 more dashboard files (would bring total to 4, exceeding limit of 3)COMMENT
LOWpkg/tests/apis/provisioning/quota/sync_quota_test.go203 // Step 3: Trigger a full sync — the QuotaTracker starts at 2/3 so only 1 more creation is allowedCOMMENT
LOWpkg/tests/apis/provisioning/quota/sync_quota_test.go222 // Step 4: Verify job completed with warning state (some resources were skipped)COMMENT
LOW⚡pkg/tests/apis/provisioning/quota/sync_quota_test.go237 // Step 5: Verify partial sync — 1 new dashboard was created (total 2), 1 was skippedCOMMENT
LOW⚡pkg/tests/apis/provisioning/quota/sync_quota_test.go240 // Step 6: Verify the repo is now at quota (1 folder + 2 dashboards = 3/3)COMMENT
LOWpkg/tests/apis/provisioning/quota/sync_quota_test.go272 // Step 2: Add 2 dashboards in new subfolders (each creates a folder + a dashboard).COMMENT
LOWpkg/tests/apis/provisioning/quota/sync_quota_test.go304 // Step 4: Verify job completed with warning (resources skipped due to quota)COMMENT
LOW⚡pkg/tests/apis/provisioning/quota/sync_quota_test.go323 // Step 5: Verify no new dashboards were created. One new folder consumes the last quota slot,COMMENT
LOW⚡pkg/tests/apis/provisioning/quota/sync_quota_test.go331 // Step 6: Verify the repo is now at quota (4 folders + 2 dashboards = 6/6)COMMENT
LOWpkg/tests/apis/provisioning/jobs/migratejob_test.go27 // Step 1: Create an unmanaged dashboard directly via the API.COMMENT
LOWpkg/tests/apis/provisioning/jobs/migratejob_test.go40 // Step 2: Create a repo with a file whose metadata.name matches the unmanaged dashboard.COMMENT
LOW⚡pkg/tests/apis/provisioning/jobs/migratejob_test.go66 // Step 3: Trigger a pull job — it should hit the unmanaged conflict.COMMENT
LOW⚡pkg/tests/apis/provisioning/jobs/migratejob_test.go72 // Step 4: Verify the job completed with a warning (not error, not success).COMMENT
LOWpkg/tests/apis/provisioning/jobs/migratejob_test.go95 // Step 5: Verify the original dashboard is still unmanaged and unchanged.COMMENT
LOWpkg/tests/apis/provisioning/jobs/migratejob_test.go109 // Step 1: Create two unmanaged dashboards directly.COMMENT
31 more matches not shown…
AI Slop Vocabulary21 hits · 57 pts
SeverityFileLineSnippetContext
MEDIUMdevenv/local-npm/conf/config.yaml3# please read carefully the documentation and best practices toCOMMENT
MEDIUMdevenv/local-npm/conf/config.yaml13# Read about the best practicesCOMMENT
MEDIUM…/app/plugins/panel/geomap/layers/data/markersLayer.tsx123 // Helper function to create a robust uniqueness keyCOMMENT
MEDIUM…blic/app/plugins/panel/geomap/utils/getLayersExtent.ts64 // Look at flatCoordinates for more robust support including route layerCOMMENT
MEDIUM…lic/app/features/provisioning/Wizard/BootstrapStep.tsx79 // TODO: improve error handling base on BE response, leverage "fieldErrors" when availableCOMMENT
MEDIUM…lic/app/features/canvas/runtime/sceneAbleManagement.ts510 // but it should be replaced with a more robust solution that doesn't interfere with left click interactions.COMMENT
MEDIUM…/app/features/scopes/selector/ScopesSelectorService.ts215 // todo: leverage component-levelCOMMENT
MEDIUMpublic/test/jest-resolver.js2 // Call the defaultResolver, so we leverage its cache, error handling, etc.COMMENT
LOWscripts/ci/backend-tests/shard.sh23 # we can't just return the result of the regex match shellcheck is unhappy...COMMENT
LOWscripts/ci/backend-tests/shard.sh113 # If there is only one shard, just return all packages.COMMENT
MEDIUM…grafana/notificationPolicies/routingTree.utils.test.ts69 // Compare against the user-defined label so the assertion is robust to the i18n fallback string.COMMENT
MEDIUMpackages/grafana-runtime/src/utils/qscheck.ts4 oauthPassThru?: unknown; // we do not assume boolean, to be more robustCODE
MEDIUM.github/workflows/pr-build-grafana.yml18# for meticulous testsCOMMENT
MEDIUMconf/defaults.ini319# Set to true to skip all database migrations on startup. Should be used in conjunction with "ensure_default_org_and_useCOMMENT
MEDIUMconf/sample.ini1003# Use in conjunction with key_file or key_value in case the JWT token's header specifies a key ID in "kid" fieldCOMMENT
MEDIUMapps/dashvalidator/pkg/validator/dashboard.go161 return false // Definitely v2CODE
MEDIUMapps/dashboard/pkg/migration/schemaversion/v36.go27// - Maintains backward compatibility while establishing a robust foundationCOMMENT
MEDIUMpkg/registry/apis/provisioning/jobs/metrics.go358// short jobs), this counter gives scrape-robust time-averaged utilization. Nil-safe.COMMENT
MEDIUMpkg/registry/apis/dashboard/home/getter_test.go291 // platforms coalesce events, so retrying makes the test robust.COMMENT
MEDIUMpkg/services/oauthtoken/oauth_token.go571 // In the future, we might want to consider passing the session token ID to the render module to make this more robustCOMMENT
MEDIUMpkg/services/ngalert/accesscontrol/receivers.go303 action: "admin", // Essentially read+write receiver resource permissions.CODE
Self-Referential Comments13 hits · 39 pts
SeverityFileLineSnippetContext
MEDIUM.policy.yml1# This file is generated by generate-policy-bot-config.COMMENT
MEDIUM.golangci.yml1# This file is best edited with some JSON-schema-aware editor.COMMENT
MEDIUMpackaging/docker/build.sh108 # Create the expected tag for running the end to end tests successfullyCOMMENT
MEDIUMdevenv/docker/blocks/elasticstack/filebeat.yml3# This file is a full configuration example documenting all non-deprecatedCOMMENT
MEDIUM.github/workflows/deploy-storybook-preview.yml48 # Create the GCS folder name for the preview. Creates a consistent name for all deploys for the PR.COMMENT
MEDIUM.github/workflows/backport-trigger.yml29 # Create a JSON artifact with details of this PR to pass to the backport workflow.COMMENT
MEDIUM.github/workflows/deploy-storybook.yml77 # Create the GCS folder nameCOMMENT
MEDIUM.github/workflows/lint-build-docs.yml58 # Create the directory structure inside the containerCOMMENT
MEDIUM.github/workflows/lint-build-docs.yml61 # Create the _index.md fileCOMMENT
MEDIUM.citools/install.sh23 # Create a new module if go.mod doesn't existCOMMENT
MEDIUMpkg/api/http_server_test.go150 * # Create a new Certificate Signing Request (CSR) using the private key passing passphrase '1234567890123456789012345COMMENT
MEDIUMpkg/api/http_server_test.go217 * # Create a new Certificate Signing Request (CSR) using the private key passing passphrase '11111222223333344444555556COMMENT
MEDIUMpkg/api/http_server_test.go282 * # Create a new Certificate Signing Request (CSR) using the private keyCOMMENT
AI Response Leakage7 hits · 35 pts
SeverityFileLineSnippetContext
HIGHdevenv/dev-dashboards/panel-canvas/canvas-examples.json3805 "content": "#### Home Solar Energy Demo (Day)\n\nThis demo show cases an example off grid home solar sysCODE
HIGHdevenv/dev-dashboards/panel-canvas/canvas-examples.json3843 "content": "#### Home Solar Energy Demo (Night)\n\nThis demo show cases an example off grid home solar sCODE
HIGH…anels-visualizations/visualizations/bar-gauge/index.md93By default, the visualization is configured to [calculate](#value-options) a single value per column or series and to diCODE
HIGH…ta/v1_dev_dashboards/panel-canvas/canvas-examples.json3619 "content": "#### Home Solar Energy Demo (Day)\n\nThis demo show cases an example off grid home solar system withCODE
HIGH…ta/v1_dev_dashboards/panel-canvas/canvas-examples.json3832 "content": "#### Home Solar Energy Demo (Night)\n\nThis demo show cases an example off grid home solar system wiCODE
HIGH…shboards/panel-canvas/v1beta1.canvas-examples.v42.json3619 "content": "#### Home Solar Energy Demo (Day)\n\nThis demo show cases an example off grid home solar system withCODE
HIGH…shboards/panel-canvas/v1beta1.canvas-examples.v42.json3832 "content": "#### Home Solar Energy Demo (Night)\n\nThis demo show cases an example off grid home solar system wiCODE
Slop Phrases11 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMdevenv/docker/blocks/elasticstack/filebeat.yml393# you can use different inputs for various configurations.COMMENT
MEDIUMdevenv/docker/blocks/elasticstack/filebeat.yml964# For example, you can use the following processors to keep the fields thatCOMMENT
MEDIUMdevenv/docker/blocks/auth/freeipa/ldap_freeipa.toml72# If you want to match all (or no ldap groups) then you can use wildcardCOMMENT
LOW…ified/components/contact-points/ContactPoints.test.tsx412 // ⚠️ for some reason, the query params are preserved for all tests so don't forget to clear the inputCOMMENT
LOWscripts/tag_release.sh21# always make sure to pull latest changes from originCOMMENT
MEDIUMconf/ldap.toml73# If you want to match all (or no ldap groups) then you can use wildcardCOMMENT
MEDIUM⚡apps/dashboard/pkg/apis/dashboard_manifest.go38 rawSchemaDashboardv2 = []byte(`{"Action":{"additionalProperties":false,"properties":{"confirmation":{"type":"CODE
MEDIUM⚡apps/dashboard/pkg/apis/dashboard_manifest.go41 rawSchemaDashboardv2alpha1 = []byte(`{"Action":{"additionalProperties":false,"properties":{"confirmation":{"type":"CODE
MEDIUM⚡apps/dashboard/pkg/apis/dashboard_manifest.go44 rawSchemaDashboardv2beta1 = []byte(`{"Action":{"additionalProperties":false,"properties":{"confirmation":{"type":"CODE
MEDIUM⚡apps/dashboard/pkg/apis/dashboard_manifest.go50 rawSchemaNotebookv2beta1 = []byte(`{"Action":{"additionalProperties":false,"properties":{"confirmation":{"type":"CODE
MEDIUMpkg/components/dashdiffs/formatter_basic.go244// level key in the JSON document. As mentioned earlier, we treat theseCOMMENT
Synthetic Comment Markers3 hits · 20 pts
SeverityFileLineSnippetContext
HIGHAI_POLICY.md40Saying that content was generated by AI does not remove your responsibility for it. Your AI-assisted work can strengthenCODE
HIGH…nfigure-notifications/template-notifications/_index.md85## Grafana Cloud AI-generated templatesCOMMENT
HIGHpkg/services/featuremgmt/toggles_gen.go463 // Enable AI-generated alerting templates.COMMENT
Cross-File Repetition4 hits · 20 pts
SeverityFileLineSnippetContext
HIGH…nfigure-security/configure-security-hardening/index.md0script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $nonce;object-src 'none';font-src 'self';style-src 'selSTRING
HIGHscripts/grafana-server/custom.ini0script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $nonce;object-src 'none';font-src 'self';style-src 'selSTRING
HIGHconf/defaults.ini0script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $nonce;object-src 'none';font-src 'self';style-src 'selSTRING
HIGHconf/sample.ini0script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $nonce;object-src 'none';font-src 'self';style-src 'selSTRING
Redundant / Tautological Comments12 hits · 18 pts
SeverityFileLineSnippetContext
LOW…app/api/clients/scope/v0alpha1/sync-from-enterprise.sh25# Check if OpenAPI spec existsCOMMENT
LOWscripts/check-frontend-dev.sh17# Check if .nvmrc file existsCOMMENT
LOWscripts/releasefinder.sh22# Check if script is executableCOMMENT
LOWscripts/releasefinder.sh30# Check if a commit hash was providedCOMMENT
LOW.github/workflows/create-security-branch.yml124 # Check if branch already existsCOMMENT
LOW.github/workflows/changelog.yml148 # Check if a version exists in the changelogCOMMENT
LOW.github/workflows/release-pr.yml205 # Check if a version exists in the changelogCOMMENT
LOW.github/workflows/deploy-storybook-preview.yml60 # Check if SANITIZED_BRANCH is empty and fail if it isCOMMENT
LOW.github/workflows/detect-breaking-changes-levitate.yml218 # Check if label existsCOMMENT
LOW.github/workflows/backend-code-checks.yml107 # Check if the generated specs differ from what's in the repositoryCOMMENT
LOW…b/workflows/scripts/levitate/check-breaking-changes.sh62 # Check if the comparison returned with a non-zero exit codeCOMMENT
LOW.github/actions/check-jobs/action.yml39 # Check if there are any failuresCOMMENT
TODO Padding11 hits · 16 pts
SeverityFileLineSnippetContext
LOW…atures/explore/hooks/useStateSync/migrators/v1.test.ts111 // TODO: implementCOMMENT
LOWpublic/app/features/dashboard/components/GenAI/hooks.ts49// TODO: Add testsCOMMENT
LOW…ation/layoutSerializers/DefaultGridLayoutSerializer.ts139 // TODO: implementCOMMENT
LOW…rcepermission/resource_permissions_integration_test.go162 // TODO: Add tests for External JWT authenticationCOMMENT
LOWpkg/tests/api/alerting/api_testing_test.go261 t.Skip("flakey tests - skipping") //TODO: Fix tests and remove skip.CODE
LOWpkg/storage/secret/metadata/keeper_model.go225 // TODO: implement for keepers that will reference secure value names in their configsCOMMENT
LOWpkg/registry/apis/provisioning/resources/dualwriter.go61 // TODO: implement thisCOMMENT
LOWpkg/registry/apis/iam/user/store_wrapper.go216// TODO: implement proper watch filtering by pre-fetching hidden users at watch start.COMMENT
LOW…registry/apis/iam/authorizer/external_group_mapping.go130// TODO: implement proper watch filtering using Compile or BatchCheck.COMMENT
LOW…egistry/apis/iam/authorizer/team_binding_authorizer.go122// TODO: implement proper watch filtering using Compile or BatchCheck.COMMENT
LOWpkg/services/ngalert/tests/fakes/rules.go338// TODO: implement pagination for this fakeCOMMENT
Modern AI Meta-Vocabulary6 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMrelyance.yaml8# Note: Need a separate entry for each microservice. See example below.COMMENT
MEDIUMdocs/sources/alerting/examples/trace-based-alerts.md219### Enable traffic guardrailsCOMMENT
MEDIUMdocs/sources/as-code/git-sync/usage-limits.md52On Grafana Cloud, tier limits can't be changed from configuration. Contact Support if you need a higher connection limitCODE
MEDIUMdocs/sources/whatsnew/whats-new-in-v7-0.md146With [@grafana/toolkit](https://www.npmjs.com/package/@grafana/toolkit) we are delivering a simple CLI that helps pluginCODE
MEDIUMdocs/sources/developer-resources/contribute/_index.md41- Read the [plugin development guide](https://grafana.com/developers/plugin-tools) to choose a plugin type, scaffold youCODE
MEDIUMpkg/services/featuremgmt/toggles_gen.go1018 // Data source query gateway guardrailsCOMMENT
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…s/sources/datasources/elasticsearch/configure/index.md931. Set **Value** to `ApiKey <your-api-key>`, replacing `<your-api-key>` with your base64-encoded Elasticsearch API key.CODE
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…/app/plugins/datasource/azuremonitor/variables.test.ts255 it('should return None when there is no data', async () => {CODE
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOW…hub/workflows/scripts/test-endpoint-migration-check.sh8# Usage:COMMENT
LOWpkg/util/debouncer/debouncer.go125// Example usage:COMMENT
LOWpkg/storage/unified/sql/db/service.go103// Example usage:COMMENT
Overly Generic Function Names3 hits · 3 pts
SeverityFileLineSnippetContext
LOW…ponents/AssistantTooltip/buildAssistantContext.test.ts72function getData(items: ReturnType<typeof buildDatapointAssistantContext>) {CODE
LOW…t/QueryEditor/Header/TransformationIdentifier.test.tsx71function getData(series = [seriesA, seriesB]): PanelData {CODE
LOWpackages/grafana-ui/src/components/Table/utils.test.ts24function getData() {CODE
Deep Nesting2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/test-aliases.py45CODE
LOWscripts/test-aliases.py170CODE
Excessive Try-Catch Wrapping1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/test-aliases.py152 except Exception as e:CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/test-aliases.py41CODE