E527 feat(extensions): Allow replacing editors using extensions by michael-s-molina · Pull Request #37499 · apache/superset · GitHub
[go: up one dir, main page]

Skip to content

Conversation

@michael-s-molina
Copy link
Member
@michael-s-molina michael-s-molina commented Jan 27, 2026

SUMMARY

This PR introduces a new extension contribution type that allows extensions to replace Superset's default Ace editor with custom editor implementations. Extensions can now register alternative editors (such as Monaco, CodeMirror, or SimpleMDE) for specific languages, enabling enhanced editing experiences across the application.

Key changes:

  • New editors contribution type: Extensions can declare editor contributions in their manifest that specify which languages they support (sql, json, css, markdown, yaml)
  • EditorHost component: A new component that automatically resolves and renders the appropriate editor based on language - either an extension-provided editor or the default Ace editor
  • Editors API: New API functions (registerEditorProvider, getEditorProvider, hasEditorProvider) exposed via @apache-superset/core for extensions to register their editors
  • AceEditorProvider: The default Ace editor refactored into the new provider pattern, ensuring backward compatibility
  • Updated editor locations: All editor instances across Superset (SQL Lab, Dashboard Properties, CSS editors, Annotation Modal, etc.) now use the EditorHost component

Documentation:

  • New Editors Extension Point documentation with implementation guide
  • Updated Contribution Typeswith editors section
  • Added Editors Bundle example extension to the community registry

Example usage:

extension.json

{
  "name": "monaco-editor",
  "version": "1.0.0",
  "frontend": {
    "contributions": {
      "editors": [
        {
          "id": "monaco-editor.sql",
          "name": "Monaco SQL Editor",
          "languages": ["sql"],
          "description": "Monaco-based SQL editor with IntelliSense"
        }
      ]
    }
  }
}

MonacoSQLEditor.tsx

import { forwardRef, useRef, useImperativeHandle, useEffect } from 'react';
import * as monaco from 'monaco-editor';
import type { editors } from '@apache-superset/core';

const MonacoSQLEditor = forwardRef<editors.EditorHandle, editors.EditorProps>(
  (props, ref) => {
    const { value, onChange, hotkeys, onReady } = props;
    const containerRef = useRef<HTMLDivElement>(null);
    const editorRef = useRef<monaco.editor.IStandaloneCodeEditor | null>(null);

    const handle: editors.EditorHandle = {
      focus: () => editorRef.current?.focus(),
      getValue: () => editorRef.current?.getValue() ?? '',
      getCursorPosition: () => {
        const pos = editorRef.current?.getPosition();
        return { line: (pos?.lineNumber ?? 1) - 1, column: (pos?.column ?? 1) - 1 };
      },
      // ... implement remaining methods
    };

    useImperativeHandle(ref, () => handle, []);

    useEffect(() => {
      if (!containerRef.current) return;
      const editor = monaco.editor.create(containerRef.current, { value, language: 'sql' });
      editorRef.current = editor;
      editor.onDidChangeModelContent(() => onChange(editor.getValue()));
      hotkeys?.forEach(hotkey => {
        editor.addAction({ id: hotkey.name, label: hotkey.name, run: () => hotkey.exec(handle) });
      });
      onReady?.(handle);
      return () => editor.dispose();
    }, []);

    return <div ref={containerRef} style={{ height: '100%', width: '100%' }} />;
  },
);

export default MonacoSQLEditor;

activate.ts

import { editors } from '@apache-superset/core';
import MonacoSQLEditor from './MonacoSQLEditor';

export function activate(context) {
  const disposable = editors.registerEditorProvider(
    {
      id: 'monaco-editor.sql',
      name: 'Monaco SQL Editor',
      languages: ['sql'],
    },
    MonacoSQLEditor,
  );

  context.subscriptions.push(disposable);
}

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

After - Extension providing alternative SQL editors (Monaco, CodeMirror, SimpleMDE):

Screen.Recording.2026-01-27.at.18.35.55.mov

TESTING INSTRUCTIONS

  1. Start Superset with the dev server
  2. Verify SQL Lab editor works normally with default Ace editor
  3. Install the Editors Bundle extension
  4. Verify the editor switcher button appears in SQL Lab toolbar
  5. Test switching between Ace, Monaco, CodeMirror, and SimpleMDE editors
  6. Verify Dashboard Properties JSON/CSS editors work correctly
  7. Verify Annotation Modal, Theme Modal, and CSS Template Modal editors work correctly

ADDITIONAL INFORMATION

  • Has associated issue:
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
    • Migration is atomic, supports rollback & is backwards-compatible
    • Confirm DB migration upgrade and downgrade tested
    • Runtime estimates and downtime expectations provided
  • Introduces new feature or API
  • Removes existing feature or API

@github-actions github-actions bot added doc Namespace | Anything related to documentation dependencies:npm packages labels Jan 27, 2026
@dosubot dosubot bot added api Related to the REST API change:frontend Requires changing the frontend labels Jan 27, 2026
@michael-s-molina michael-s-molina moved this from To Do to In Review in Superset Extensions Jan 27, 2026
@michael-s-molina michael-s-molina self-assigned this Jan 27, 2026
@netlify
Copy link
netlify bot commented Jan 27, 2026

Deploy Preview for superset-docs-preview ready!

Name Link
🔨 Latest commit 38caf6a
🔍 Latest deploy log https://app.netlify.com/projects/superset-docs-preview/deploys/69793059ad4b3e00089fac06
😎 Deploy Preview https://deploy-preview-37499--superset-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@codecov
Copy link
codecov bot commented Jan 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.58%. Comparing base (4db6f9e) to head (84e700c).
⚠️ Report is 33 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #37499       +/-   ##
===========================================
+ Coverage        0   66.58%   +66.58%     
===========================================
  Files           0      643      +643     
  Lines           0    49049    +49049     
  Branches        0     5500     +5500     
===========================================
+ Hits            0    32661    +32661     
- Misses          0    15093    +15093     
- Partials        0     1295     +1295     
Flag Coverage Δ
hive 41.92% <ø> (?)
mysql 64.64% <ø> (?)
postgres 64.72% <ø> (?)
presto 41.93% <ø> (?)
python 66.55% <ø> (?)
sqlite 64.42% <ø> (?)
unit 100.00% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor
@bito-code-review bito-code-review bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Agent Run #b00531

Actionable Suggestions - 3
  • superset-frontend/src/core/editors/AceEditorProvider.tsx - 1
  • superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.jsx - 1
  • superset-frontend/src/core/editors/EditorHost.tsx - 1
Additional Suggestions - 2
  • superset-frontend/src/core/editors/EditorProviders.ts - 1
    • Language mapping conflict · Line 143-145
      The registerProvider method allows multiple providers to register for the same language, with the last one silently overwriting the mapping. This can make previous providers inaccessible if they supported the same language. It looks like the intention is to replace, but this could lead to unexpected behavior in extension loading. If multiple registrations for the same language aren't intended, add a check to warn and skip registration.
  • superset-frontend/src/features/themes/ThemeModal.tsx - 1
    • Type assertion cleanup · Line 59-67
      Replace the inline array type with JsonValidationAnnotation[] and remove the type assertion on severity since the types are compatible.
Review Details
  • Files reviewed - 29 · Commit Range: 38caf6a..38caf6a
    • scripts/check-type.js
    • superset-frontend/packages/superset-core/src/api/contributions.ts
    • superset-frontend/packages/superset-core/src/api/editors.ts
    • superset-frontend/packages/superset-core/src/api/index.ts
    • superset-frontend/packages/superset-ui-core/src/components/index.ts
    • superset-frontend/src/SqlLab/components/AceEditorWrapper/AceEditorWrapper.test.tsx
    • superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
    • superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
    • superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
    • superset-frontend/src/components/SQLEditorWithValidation/index.tsx
    • superset-frontend/src/core/editors/AceEditorProvider.tsx
    • superset-frontend/src/core/editors/EditorHost.test.tsx
    • superset-frontend/src/core/editors/EditorHost.tsx
    • superset-frontend/src/core/editors/EditorProviders.test.ts
    • superset-frontend/src/core/editors/EditorProviders.ts
    • superset-frontend/src/core/editors/index.ts
    • superset-frontend/src/core/index.ts
    • superset-frontend/src/dashboard/components/PropertiesModal/index.tsx
    • superset-frontend/src/dashboard/components/PropertiesModal/sections/AdvancedSection.tsx
    • superset-frontend/src/dashboard/components/PropertiesModal/sections/StylingSection.tsx
    • superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.jsx
    • superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx
    • superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/index.tsx
    • superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.tsx
    • superset-frontend/src/extensions/ExtensionsManager.ts
    • superset-frontend/src/extensions/ExtensionsStartup.tsx
    • superset-frontend/src/features/annotations/AnnotationModal.tsx
    • superset-frontend/src/features/cssTemplates/CssTemplateModal.tsx
    • superset-frontend/src/features/themes/ThemeModal.tsx
  • Files skipped - 4
    • docs/developer_portal/extensions/contribution-types.md - Reason: Filter setting
    • docs/developer_portal/extensions/extension-points/editors.md - Reason: Filter setting
    • docs/developer_portal/extensions/registry.md - Reason: Filter setting
    • superset-frontend/package.json - Reason: Filter setting
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@github-actions github-actions bot removed the api Related to the REST API label Jan 28, 2026
@bito-code-review
Copy link
Contributor
bito-code-review bot commented Jan 28, 2026

Code Review Agent Run #d22c31

Actionable Suggestions - 0
Review Details
  • Files reviewed - 36 · Commit Range: 38caf6a..0bae49b
    • scripts/check-type.js
    • superset-frontend/cypress-base/cypress/e2e/sqllab/tabs.test.ts
    • superset-frontend/packages/superset-core/src/api/contributions.ts
    • superset-frontend/packages/superset-core/src/api/editors.ts
    • superset-frontend/packages/superset-core/src/api/index.ts
    • superset-frontend/packages/superset-ui-core/src/components/index.ts
    • superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
    • superset-frontend/src/SqlLab/components/EditorWrapper/index.tsx
    • superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.tsx
    • superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
    • superset-frontend/src/SqlLab/components/TemplateParamsEditor/TemplateParamsEditor.test.tsx
    • superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
    • superset-frontend/src/components/SQLEditorWithValidation/index.tsx
    • superset-frontend/src/core/editors/AceEditorProvider.tsx
    • superset-frontend/src/core/editors/EditorHost.test.tsx
    • superset-frontend/src/core/editors/EditorHost.tsx
    • superset-frontend/src/core/editors/EditorProviders.test.ts
    • superset-frontend/src/core/editors/EditorProviders.ts
    • superset-frontend/src/core/editors/index.ts
    • superset-frontend/src/core/index.ts
    • superset-frontend/src/dashboard/components/PropertiesModal/index.tsx
    • superset-frontend/src/dashboard/components/PropertiesModal/sections/AdvancedSection.tsx
    • superset-frontend/src/dashboard/components/PropertiesModal/sections/StylingSection.tsx
    • superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.jsx
    • superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.test.tsx
    • superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx
    • superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.test.tsx
    • superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndMetricSelect.test.tsx
    • superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/AdhocFilterEditPopoverSqlTabContent.test.tsx
    • superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/index.tsx
    • superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.tsx
    • superset-frontend/src/extensions/ExtensionsManager.ts
    • superset-frontend/src/extensions/ExtensionsStartup.tsx
    • superset-frontend/src/features/annotations/AnnotationModal.tsx
    • superset-frontend/src/features/cssTemplates/CssTemplateModal.tsx
    • superset-frontend/src/features/themes/ThemeModal.tsx
  • Files skipped - 4
    • docs/developer_portal/extensions/contribution-types.md - Reason: Filter setting
    • docs/developer_portal/extensions/extension-points/editors.md - Reason: Filter setting
    • docs/developer_portal/extensions/registry.md - Reason: Filter setting
    • superset-frontend/package.json - Reason: Filter setting
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@bito-code-review
Copy link
Contributor
bito-code-review bot commented Jan 28, 2026

Code Review Agent Run #e57268

Actionable Suggestions - 0
Review Details
  • Files reviewed - 36 · Commit Range: 0bae49b..c2b650a
    • scripts/check-type.js
    • superset-frontend/cypress-base/cypress/e2e/sqllab/tabs.test.ts
    • superset-frontend/packages/superset-core/src/api/contributions.ts
    • superset-frontend/packages/superset-core/src/api/editors.ts
    • superset-frontend/packages/superset-core/src/api/index.ts
    • superset-frontend/packages/superset-ui-core/src/components/index.ts
    • superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
    • superset-frontend/src/SqlLab/components/EditorWrapper/index.tsx
    • superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.tsx
    • superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
    • superset-frontend/src/SqlLab/components/TemplateParamsEditor/TemplateParamsEditor.test.tsx
    • superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
    • superset-frontend/src/components/SQLEditorWithValidation/index.tsx
    • superset-frontend/src/core/editors/AceEditorProvider.tsx
    • superset-frontend/src/core/editors/EditorHost.test.tsx
    • superset-frontend/src/core/editors/EditorHost.tsx
    • superset-frontend/src/core/editors/EditorProviders.test.ts
    • superset-frontend/src/core/editors/EditorProviders.ts
    • superset-frontend/src/core/editors/index.ts
    • superset-frontend/src/core/index.ts
    • superset-frontend/src/dashboard/components/PropertiesModal/index.tsx
    • superset-frontend/src/dashboard/components/PropertiesModal/sections/AdvancedSection.tsx
    • superset-frontend/src/dashboard/components/PropertiesModal/sections/StylingSection.tsx
    • superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.jsx
    • superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.test.tsx
    • superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx
    • superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.test.tsx
    • superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndMetricSelect.test.tsx
    • superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/AdhocFilterEditPopoverSqlTabContent.test.tsx
    • superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/index.tsx
    • superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.tsx
    • superset-frontend/src/extensions/ExtensionsManager.ts
    • superset-frontend/src/extensions/ExtensionsStartup.tsx
    • superset-frontend/src/features/annotations/AnnotationModal.tsx
    • superset-frontend/src/features/cssTemplates/CssTemplateModal.tsx
    • superset-frontend/src/features/themes/ThemeModal.tsx
  • Files skipped - 4
    • docs/developer_portal/extensions/contribution-types.md - Reason: Filter setting
    • docs/developer_portal/extensions/extension-points/editors.md - Reason: Filter setting
    • docs/developer_portal/extensions/registry.md - Reason: Filter setting
    • superset-frontend/package.json - Reason: Filter setting
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

Copy link
Member
@villebro villebro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Super nice step forward for opening up editor extendability! First pass comments.

Comment on lines +72 to +73
default:
return FullSQLEditor;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed we have JS and TS editors as options in EditorLanguage - is FullSQLEditor a good default option for those? If not should we consider removing those for now from EditorLanguage until we have good default editors for them?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. It will not be a good option for those languages. I removed them here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last comment on this point: should we raise rather than default to FullSQLEditor for unknown languages?

Copy link
Member
@villebro villebro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

35B2

LGTM - left one last comment, feel free to merge when this is green

@bito-code-review
Copy link
Contributor
bito-code-review bot commented Jan 28, 2026

Code Review Agent Run #64cb3c

Actionable Suggestions - 0
Review Details
  • Files reviewed - 36 · Commit Range: c2b650a..84e700c
    • scripts/check-type.js
    • superset-frontend/cypress-base/cypress/e2e/sqllab/tabs.test.ts
    • superset-frontend/packages/superset-core/src/api/contributions.ts
    • superset-frontend/packages/superset-core/src/api/editors.ts
    • superset-frontend/packages/superset-core/src/api/index.ts
    • superset-frontend/packages/superset-ui-core/src/components/index.ts
    • superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
    • superset-frontend/src/SqlLab/components/EditorWrapper/index.tsx
    • superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.tsx
    • superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
    • superset-frontend/src/SqlLab/components/TemplateParamsEditor/TemplateParamsEditor.test.tsx
    • superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
    • superset-frontend/src/components/SQLEditorWithValidation/index.tsx
    • superset-frontend/src/core/editors/AceEditorProvider.tsx
    • superset-frontend/src/core/editors/EditorHost.test.tsx
    • superset-frontend/src/core/editors/EditorHost.tsx
    • superset-frontend/src/core/editors/EditorProviders.test.ts
    • superset-frontend/src/core/editors/EditorProviders.ts
    • superset-frontend/src/core/editors/index.ts
    • superset-frontend/src/core/index.ts
    • superset-frontend/src/dashboard/components/PropertiesModal/index.tsx
    • superset-frontend/src/dashboard/components/PropertiesModal/sections/AdvancedSection.tsx
    • superset-frontend/src/dashboard/components/PropertiesModal/sections/StylingSection.tsx
    • superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.jsx
    • superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.test.tsx
    • superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx
    • superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.test.tsx
    • superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndMetricSelect.test.tsx
    • superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/AdhocFilterEditPopoverSqlTabContent.test.tsx
    • superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/index.tsx
    • superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.tsx
    • superset-frontend/src/extensions/ExtensionsManager.ts
    • superset-frontend/src/extensions/ExtensionsStartup.tsx
    • superset-frontend/src/features/annotations/AnnotationModal.tsx
    • superset-fro D60E ntend/src/features/cssTemplates/CssTemplateModal.tsx
    • superset-frontend/src/features/themes/ThemeModal.tsx
  • Files skipped - 4
    • docs/developer_portal/extensions/contribution-types.md - Reason: Filter setting
    • docs/developer_portal/extensions/extension-points/editors.md - Reason: Filter setting
    • docs/developer_portal/extensions/registry.md - Reason: Filter setting
    • superset-frontend/package.json - Reason: Filter setting
  • Tools
    • Eslint (Linter) - ✔︎ Successful
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

change:frontend Requires changing the frontend dependencies:npm doc Namespace | Anything related to documentation packages size/XXL

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

2 participants

0