Sign Up Free
diff --git a/docs/platforms/_category_.yaml b/docs/platforms/_category_.yaml
index 185b2b05..8ae92cb7 100644
--- a/docs/platforms/_category_.yaml
+++ b/docs/platforms/_category_.yaml
@@ -1,4 +1,4 @@
-label: Git
+label: Git Platforms
position: 3
collapsible: true
collapsed: false
diff --git a/docs/platforms/azure-devops.md b/docs/platforms/azure-devops.md
index 7accacc6..12b70765 100644
--- a/docs/platforms/azure-devops.md
+++ b/docs/platforms/azure-devops.md
@@ -70,7 +70,7 @@ you will need to add the Personal Access Token.
management.
- **Use the CodeRabbit logo as the profile picture** - This further ensures easy
recognition. You can download our logo from
- [here](/img/integrations/logo.svg "download").
+ [here](/img/integrations/logo.png "download").
### Key Points to Remember
@@ -95,7 +95,8 @@ Follow these steps to generate the token:
accessible organizations."
6. Enter a name and an expiry date for the token.
7. We need to have read & write access to "Work Items" & "Code" to post reviews
- on pull requests.
+ on pull requests. If you are on the Pro tier also add "Build" access for pipeline
+ failure remediation.
8. Click "Create"

diff --git a/docs/platforms/bitbucket-cloud.md b/docs/platforms/bitbucket-cloud.md
new file mode 100644
index 00000000..acb37f34
--- /dev/null
+++ b/docs/platforms/bitbucket-cloud.md
@@ -0,0 +1,129 @@
+---
+title: "Bitbucket Cloud"
+description: "Learn how to integrate CodeRabbit with Bitbucket Cloud."
+sidebar_label: "Bitbucket Cloud"
+sidebar_position: 6
+---
+
+CodeRabbit integrates with Bitbucket Cloud to enhance code review and collaboration by:
+
+- Automatically initiating code reviews for newly created merge requests.
+- Displaying review comments and suggestions directly on merge requests.
+- Enabling seamless interaction with the CodeRabbit bot for real-time feedback and assistance.
+
+This guide will assist you in effectively integrating CodeRabbit with Bitbucket Cloud.
+
+## Configure App Password
+
+To enable CodeRabbit to interact with your Bitbucket repositories, an app password is required. This token grants the necessary permissions for interacting with the Merge Requests and Discussions APIs.
+
+1. Create a new Bitbucket account specifically for CodeRabbit and treat it as a service account.
+2. Name the account "CodeRabbit".
+3. Generate an App Password to enable seamless integration between CodeRabbit and your Bitbucket repositories.
+
+We recommend creating a new user as a service account, associating this user to the workspace you'd like to install CodeRabbit on, and providing CodeRabbit with the app password to allow access. During the installation process, CodeRabbit will automatically configure the required webhook for seamless integration.
+
+
+

+
+
+:::note
+
+If you wish to change the review user, you must provide the app password for the new user who will post reviews and comments. However, this requires manually removing the previous user from the projects and associated webhooks. Once this is done, you will need to reinstall the CodeRabbit app for each project.
+
+:::
+
+### Recommendations
+
+- **Create a dedicated user for CodeRabbit** - This ensures the user is exclusively for CodeRabbit, allowing better access control.
+- **Use "CodeRabbit" as the username** - This makes the user easily recognizable for future reference.
+- **Use a dedicated email address** - This helps in easy identification and management.
+- **Use the CodeRabbit logo as the profile picture** - This further ensures easy recognition. You can download our logo from [here](/img/integrations/logo.svg "download").
+- **Developer Access** Ensure the service account user has developer access to the projects that you wish to install CodeRabbit on.
+
+#### Key Points to Remember
+
+- Code reviews will be attributed to the owner of the app password.
+
+#### Generating an App password
+
+Bitbucket provides an option to generate an app password for a new user. Follow these steps to generate the password:
+
+1. Log in using the user designated for CodeRabbit reviews. This user serves as a service account for managing reviews and related activities.
+2. Go to "Personal Bitbucket Settings".
+3. Choose **App passwords**.
+4. Click **Create app password**.
+5. Enter a label easily recognizable for this app passwords usage.
+6. Ensure the following scopes are selected:
+ 1. Account - Read
+ 2. Issues - Write
+ 3. Workspace membership - Read
+ 4. Projects - Write
+ 5. Repositories - Write
+ 6. Pull requests - Write
+ 7. Webhooks - Read and write
+ 8. Pipelines - Read
+ 9. Runners - Read
+7. Click **Create**
+8. Note down the app password as it will only be displayed once.
+
+
+

+
+
+

+
+
+### Where to Provide CodeRabbit the App Password
+
+By default, if no app password is provided, CodeRabbit will prompt you to provide one during the installation process. However, if you wish to provide the token beforehand, you can do so by navigating to the **Organization Settings** tab, and selecting the **Bitbucket User** tab on the sidebar. Once entering the app password, the password will be validated and saved for future use.
+
+You can confirm the correct user is being selected by verifying the user ID shown on the UI with the user ID of the service account user you created.
+
+---
+
+### Installing CodeRabbit into your Bitbucket Repositories
+
+1. Go to the [Repositories page](https://app.coderabbit.ai/settings/repositories) in the CodeRabbit app.
+2. Select the checkbox next to the repositories where you want to install CodeRabbit. To install it on all repositories at once, select the checkbox at the top.
+3. Select **Install Repositories**.
+
+
+

+
+
+The webhook `https://coderabbit.ai/bitbucketHandler` will now be installed for the projects selected.
+
+
+

+
+
+### Troubleshooting
+
+:::note
+
+If you are experiencing issues with the webhook, such as CodeRabbit not being able to access the repository, or not reviewing pull requests, you can manually delete the webhook to the repository.
+
+Then refresh the repository page in the CodeRabbit app and you can reinstall the webhook.
+
+If you cannot install the webhook please check that your Bitbucket user has the necessary permissions to install the webhook and the App Password is properly configured.
+
+:::
diff --git a/docs/platforms/github-com.md b/docs/platforms/github-com.md
index b368ce74..ecc07272 100644
--- a/docs/platforms/github-com.md
+++ b/docs/platforms/github-com.md
@@ -7,7 +7,7 @@ sidebar_position: 1
This is a step-by-step guide to integrate CodeRabbit with your GitHub repositories.
-> **CodeRabbit** is an AI code reviewer designed to ease the challenges of code review, supporting repository maintainers and teams. It not only reviews your PRs but also provides concise summaries, identifies potential issues, and offers insights that might be missed during manual reviews.
+> **CodeRabbit** is an AI code reviewer designed to ease the challenges of code review, supporting repository maintainers and teams. It reviews your PRs and provides concise summaries, identifies potential issues, and offers insights that might be missed during manual reviews.
## How CodeRabbit Works?
@@ -21,13 +21,13 @@ It preprocesses the PR content, builds context, leverages Large Language Models
### 1. Accessing CodeRabbit
-Visit the [Code Rabbit login](https://app.coderabbit.ai/login?free-trial) page. You'll see all the authentication options, select "**Login with GitHub**" to proceed.
+Visit the [CodeRabbit login](https://app.coderabbit.ai/login?free-trial) page. You'll see all the authentication options, select "**Login with GitHub**" to proceed.

### 2. Authorization
-When you choose **Login with GitHub** in step1 , you'll be prompted to authorize CodeRabbit.
+When you choose **Login with GitHub** in step1, you'll be prompted to authorize CodeRabbit.
> This step grants the necessary permissions for CodeRabbit to interact with your repositories and pull requests.
@@ -55,13 +55,15 @@ If you opt to authorize all repositories during setup, CodeRabbit will automatic
You can configure CodeRabbit through a YAML file or using the [App's UI](https://app.coderabbit.ai/login).
-You can tailor CodeRabbit's functionality using the coderabbit.yaml file, which you place directly in your GitHub repository. This file mirrors the options available in the CodeRabbit user interface, with each setting in the YAML corresponding to a specific toggle in the UI. Configure CodeRabbit either through the coderabbit.yaml file or the interface, depending on your preference.
+You can tailor CodeRabbit's functionality using the `.coderabbit.yaml` file, which you place directly in your GitHub repository. This file mirrors the options available in the CodeRabbit user interface, with each setting in the YAML corresponding to a specific toggle in the UI. Configure CodeRabbit either through the coderabbit.yaml file or the interface, depending on your preference.
:::note
-If a coderabbit.yaml file exists in your GitHub repository, it takes precedence over any UI settings. Choose either the YAML file or UI configuration - you don't need to use both. **Refer Coderabbit.yaml schema [here](https://storage.googleapis.com/coderabbit_public_assets/schema.v2.json)**
+
+If a `.coderabbit.yaml` file exists in your GitHub repository, it takes precedence over any UI settings. Choose either the YAML file or UI configuration - you don't need to use both. **Refer CodeRabbit YAML schema [here](https://storage.googleapis.com/coderabbit_public_assets/schema.v2.json)**
+
:::
-Once your coderabbit.yaml file is prepared according to your needs, simply place it in your GitHub repository, and you're all setโCodeRabbit is now integrated.
+Once your `.coderabbit.yaml` file is prepared according to your needs, simply place it in your GitHub repository, and you're all set โ CodeRabbit is now integrated.
> When a pull request is created targeting the master branch, CodeRabbit automatically initiates its review process. It analyzes the changes and generates a summary and walkthrough of the modifications. The specific feedback and analysis provided by CodeRabbit are determined by the options you've configured in your YAML file.
@@ -89,7 +91,7 @@ The sequence diagram illustrates the precise flow of interactions between the ob

-Also check out the response when i asked for what improvements can be done on the code level
+Also, check out the response when asked for what improvements can be done on the code level.

@@ -97,7 +99,7 @@ In addition to providing reviews and summaries, **CodeRabbit** can also detect c
> For example, I accidentally set up both CodeRabbit Pro (The process we've been discussing) and the open-source version (Refer to [different config process](https://github.com/coderabbitai/ai-pr-reviewer?tab=readme-ov-file#install-instructions)) in my repository at the same time.
-Interestingly, CodeRabbit automatically detects and alerts you about configuration conflicts.
+CodeRabbit automatically detects and alerts you about configuration conflicts.

@@ -107,7 +109,7 @@ CodeRabbit generates detailed statistics and test plans for each pull request.

-> CodeRabbit also allows you to configure **custom review instructions** based on your organization's needs, in case you want it to follow specific guidelines beyond the standard review, to learn more on [adding custom review instructions](https://docs.coderabbit.ai/guides/review-instructions/)
+> CodeRabbit also allows you to configure **custom review instructions** based on your organization's needs, in case you want it to follow specific guidelines beyond the standard review, to learn more on [adding custom review instructions](/guides/review-instructions)
Whether you manage a popular repository or are working on a smaller project, whether it's hosted on **GitLab, GitHub, or self-hosted GitHub or GitLab**, CodeRabbit can help streamline your development process. This AI Code Review assistant is designed to save you time by automating code reviews and offering insightful feedback.
diff --git a/docs/platforms/github-enterprise-server.md b/docs/platforms/github-enterprise-server.md
index cb0e8084..733607cb 100644
--- a/docs/platforms/github-enterprise-server.md
+++ b/docs/platforms/github-enterprise-server.md
@@ -75,8 +75,7 @@ steps below to
[create a GitHub App](https://docs.github.com/en/enterprise-server@latest/apps/creating-github-apps/registering-a-github-app/registering-a-github-app):
1. Sign in to your GitHub Enterprise account.
-2. In the upper-right corner of any page, click your profile photo, then click
- **Settings**.
+2. In the upper-right corner of any page, click your profile photo, then click **Settings**.
3. In the left sidebar, click **Developer settings** > **GitHub Apps**
4. Click **New GitHub App**.
5. Set the following fields:
@@ -90,8 +89,10 @@ steps below to
- **Webhook secret**: Use a secure string and keep it handy.
- **Permissions**:
- **Repository permissions**:
+ - **Actions**: Read-only
- **Checks**: Read-only
- **Contents**: Read and write
+ - **Commit statuses**: Read and write
- **Discussions**: Read-only
- **Issues**: Read and write
- **Metadata**: Read-only
@@ -110,6 +111,7 @@ steps below to
- Pull request review thread
- Push
- Release
+ - **Where can this GitHub App be installed?**: Select `Any account`
6. Click **Create GitHub App**.
Once the GitHub App has been created, click on **Generate a new client secret**
@@ -129,6 +131,8 @@ Keep the following details handy:

+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
### **Step 4: CodeRabbit UI Onboarding**
Submit the details that were accumulated in previous steps:
@@ -166,4 +170,20 @@ Use this CodeRabbit IP if your instance requires IP whitelisting
`35.222.179.152/32` and `34.170.211.100/32`.
VPN tunneling is available as an add-on package. Please reach out to us at
-[contact@coderabbit.ai](mailto:contact@coderabbit.ai) if you are interested.
+[support@coderabbit.ai](mailto:support@coderabbit.ai) if you are interested.
+
+### **FAQ**
+
+#### Who should create the OAuth App and GitHub App?
+
+The OAuth App and GitHub App should be created by a user with administrative
+privileges on the GitHub Enterprise Server instance. This user will be responsible for managing the integration with CodeRabbit.
+
+#### I see an error when trying to log in to CodeRabbit. What should I do?
+
+If you encounter an error during the login process, please ensure that:
+
+- The OAuth App and GitHub App are correctly configured with the right URLs and permissions.
+- The browser local storage and cookies related to CodeRabbit are cleared.
+
+If the issue persists, contact our support team.
diff --git a/docs/platforms/gitlab-com.md b/docs/platforms/gitlab-com.md
deleted file mode 100644
index ebff5ce4..00000000
--- a/docs/platforms/gitlab-com.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: Integrating CodeRabbit with GitLab.com
-description: Learn how to integrate CodeRabbit and add to your GitLab workflow.
-sidebar_label: GitLab.com
-sidebar_position: 2
----
-
-This guide will assist you in effectively integrating CodeRabbit with SaaS GitLab.
-
-## How it works
-
-For the CodeRabbit app to post reviews on merge requests, it needs to interact with the GitLab API, which requires a Personal Access Token. This token can be generated either by using our default CodeRabbit user or by creating a Personal Access Token from one of your existing users.
-
-The CodeRabbit default user, named "coderabbitai", is already set up in GitLab SaaS and will be added to your project when you install the CodeRabbit app. During installation, the necessary webhook for the project will also be created.
-
-If your organization prefers to use an organization user, you can create a new user in GitLab and generate a Personal Access Token for that user, following [our recommendations](#recommendations).
-
-:::note
-
-Keep in mind that if you want to change the review user, you can either disable the organization user or add a new user via the CodeRabbit UI. However, this will require manually removing the previous user from the projects and associated webhooks. Afterward, you will need to reinstall the CodeRabbit app for each project.
-
-:::
-
-## GitLab Access Tokens
-
-To interact with the GitLab API, a **Personal Access Token** is required. This token can either be generated by using our default CodeRabbit user or by creating a **Personal Access Token** from one of your existing users.
-
-Upon first login to the application (immediately after the onboarding screen), you will need to choose based on your organization's requirements.
-
-
-
-**We recommend using the default CodeRabbit user** for most organizations, as it is pre-configured. However, we understand that some organizations may prefer more control over the user or have restrictions regarding user inclusion within their organization.
-
-### Personal Access Tokens
-
-If your organization opts to use another user within the organization, you can do so by [generating a personal access token](#generating-a-personal-access-token).
-
-
-
-#### Recommendations
-
-- **Create a dedicated user for CodeRabbit** - This ensures the user is exclusively for CodeRabbit, allowing better access control.
-- **Use "CodeRabbit" as the username** - This makes the user easily recognizable for future reference.
-- **Use a dedicated email address** - This helps in easy identification and management.
-- **Use the CodeRabbit logo as the profile picture** - This further ensures easy recognition. You can download our logo from [here](/img/integrations/logo.svg "download").
-
-#### Key Points to Remember
-
-- Personal access tokens have expiration dates. Ensure the expiration date covers the duration of your intended use of the CodeRabbit app.
-- Code reviews will be attributed to the owner of the personal access token.
-- If the personal access token expires, you can add a new one via the CodeRabbit UI:
- - Navigate to the "GitLab User" page in the sidebar.
- - Click the "Update" button on the displayed card to see the same modal as the initial login.
-
-### Generating a Personal Access Token
-
-GitLab provides an option to generate a personal access token for a new user. Follow these steps to generate the token:
-
-1. Log in as the user intended for CodeRabbit reviews.
-2. Select your avatar on the left sidebar.
-3. Choose "Edit Profile."
-4. Select "Access Tokens" from the left sidebar.
-5. Click "Add New Token."
-6. Enter a name and an expiry date for the token.
-7. If no expiry date is entered, it defaults to 365 days from the current date.
-8. Ensure the following scopes are selected: `api`, `read_api`, `read_user`.
-9. Click "Create Personal Access Token."
-10. Note down the token as it will only be displayed once.
-
-
diff --git a/docs/platforms/gitlab-com.mdx b/docs/platforms/gitlab-com.mdx
new file mode 100644
index 00000000..c276cd35
--- /dev/null
+++ b/docs/platforms/gitlab-com.mdx
@@ -0,0 +1,154 @@
+---
+title: Integrating CodeRabbit with GitLab.com
+description: Learn how to integrate CodeRabbit and add to your GitLab workflow.
+sidebar_label: GitLab.com
+sidebar_position: 2
+---
+
+CodeRabbit integrates with GitLab to enhance code review and collaboration by:
+
+- Automatically initiating code reviews for newly created merge requests.
+- Displaying review comments and suggestions directly on merge requests.
+- Enabling seamless interaction with the CodeRabbit bot for real-time feedback and assistance.
+
+This guide will assist you in effectively integrating CodeRabbit with SaaS GitLab.
+
+## GitLab Access Tokens
+
+To enable CodeRabbit to interact with your GitLab repositories, an access token is required. This token grants the necessary permissions for interacting with the Merge Requests and Discussions APIs.
+
+ 1. Personal Access Token (PAT): You can create a new GitLab account specifically for CodeRabbit, name it โCodeRabbitโ and treat it as a service account. Then generate a PAT from it where PAT will enable seamless integration between CodeRabbit and your GitLab repositories.
+ 2. Group Access Token: If your organization uses GitLab Premium or Ultimate, you can generate a Group Access Token. This option automatically creates a bot user associated with the group for managing access and posting reviews.
+
+### Personal Access Token
+
+We recommend creating a new user as a service account, associating this user to the group you'd like to install CodeRabbit on, and providing CodeRabbit with the personal access token to allow access. During the installation process, CodeRabbit will automatically configure the required webhook for seamless integration.
+
+
+

+
+
+:::note
+
+If you wish to change the review user, you must provide the access token for the new user who will post reviews and comments. However, this requires manually removing the previous user from the projects and associated webhooks. Once this is done, you will need to reinstall the CodeRabbit app for each project.
+
+:::
+
+
+

+
+
+#### Recommendations
+
+- **Create a dedicated user for CodeRabbit** - This ensures the user is exclusively for CodeRabbit, allowing better access control.
+- **Use "CodeRabbit" as the username** - This makes the user easily recognizable for future reference.
+- **Use a dedicated email address** - This helps in easy identification and management.
+- **Use the CodeRabbit logo as the profile picture** - This further ensures easy recognition. You can download our logo from [here](/img/integrations/logo.svg "download").
+- **Ensure Developer Access** - Ensure the dedicated user has (at least) **Developer** access to the group or projects that you wish to install CodeRabbit on.
+
+#### Key Points to Remember
+
+- Personal access tokens have expiration dates. Ensure the expiration date **covers the duration** of your intended use of CodeRabbit.
+- Code reviews will be attributed to the owner of the personal access token.
+- If the personal access token expires, you can add a new one via the CodeRabbit UI:
+ - Navigate to the **GitLab User** page in the sidebar.
+ - Enter the new Access token, and click the **Update** button on the page.
+
+#### Generating a Personal Access Token
+
+GitLab provides an option to generate a personal access token for a new user. Follow these steps to generate the token:
+
+1. Log in using the user designated for CodeRabbit reviews. This user serves as a service account for managing reviews and related activities.
+2. Select your avatar on the left sidebar.
+3. Choose **Edit Profile**.
+4. Select **Access Tokens** from the left sidebar.
+5. Click [Add New Token.](https://gitlab.com/-/user_settings/personal_access_tokens)
+6. Enter a name and an expiry date for the token.
+7. If no expiry date is entered, it defaults to 365 days from the current date.
+8. Ensure the following scopes are selected: `api`, `read_api`, `read_user`.
+9. Click **Create Personal Access Token**
+10. Note down the token as it will only be displayed once.
+
+
+

+
+
+---
+
+### Group Access Token
+
+Creating a Group Access Token in GitLab automatically generates a bot user. Ensure that the token is configured with Developer access. Once set up, you only need to provide this token for integration. Note that a Group Access Token is limited to the scope of the group where it was created. To configure additional groups, you will need to generate a separate Group Access Token for each group.
+
+:::note
+
+By default, GitLab restricts this option to users on the Premium or Ultimate tiers.
+
+:::
+
+#### Generating a Group Access Token
+
+1. Navigate to the group you wish to install CodeRabbit on.
+2. Select **Settings** from the left sidebar.
+3. Select **Access Tokens** within the Settings heading.
+4. Create a Group Access Token.
+5. Ensure the following scopes are selected: `api`.
+6. Ensure Developer Access is provided.
+
+---
+
+### Where to Provide CodeRabbit the Access Token
+
+By default, if no access token is provided, CodeRabbit will prompt you to provide one during the installation process. However, if you wish to provide the token beforehand, you can do so by navigating to the **Organization Settings** tab, and selecting the **GitLab User** tab on the sidebar. Once entering the token, the token will be validated and saved for future use.
+
+You can confirm the correct user is being selected by verifying the user ID shown on the UI with the user ID of the service account user you created.
+
+---
+
+### Installing CodeRabbit into your GitLab Repositories
+
+1. Go to the [Repositories page](https://app.coderabbit.ai/settings/repositories) in the CodeRabbit app.
+2. Select the checkbox next to the repositories where you want to install CodeRabbit. To install it on all repositories at once, select the checkbox at the top.
+3. Select **Install Repositories**.
+
+
+

+
+
+The webhook `https://coderabbit.ai/gitlabHandler` will now be installed for the projects selected.
+
+
+

+
+
+### Troubleshooting
+
+:::note
+
+If you are experiencing issues with the webhook, such as coderabbit not being able to access the repository, or not reviewing pull requests, you can manually delete the webhook to the repository.
+
+Then refresh the repository page in the CodeRabbit app and you can reinstall the webhook.
+
+If you cannot install the webhook please check that your GitLab user has the necessary permissions to install the webhook and the PAT is not expired.
+
+:::
diff --git a/docs/platforms/platforms.md b/docs/platforms/platforms.md
index 038b329c..996089fc 100644
--- a/docs/platforms/platforms.md
+++ b/docs/platforms/platforms.md
@@ -1,8 +1,6 @@
---
-title: Supported Git Platforms
-sidebar_label: Supported Git Platforms
+title: Integrate with Git platforms
description: Overview of CodeRabbit's supported Git platforms.
-sidebar_position: 1
---
CodeRabbit supports various Git platforms to provide code review for your repositories. For the cloud-hosted Git platforms, you can [login][login] to CodeRabbit and add your repositories. The following platforms are supported:
@@ -11,28 +9,27 @@ CodeRabbit supports various Git platforms to provide code review for your reposi
| Host | Support |
| ------------------------ | ---------------------------------------- |
-| GitHub.com | [Supported][login] |
+| GitHub.com | [Supported](github-com.md) |
| GitHub Enterprise Server | [Supported](github-enterprise-server.md) |
## GitLab
| Host | Support |
| ------------------- | ---------------------------------- |
-| GitLab.com | [Supported](gitlab-com.md) |
+| GitLab.com | [Supported](gitlab-com.mdx) |
| GitLab Self Managed | [Supported](self-hosted-gitlab.md) |
## Azure DevOps
-| Host | Support |
-| ------------------- | ---------------------------- |
-| Azure DevOps | [Supported](azure-devops.md) |
-| Azure DevOps Server | [Supported] |
+| Host | Support |
+| ------------ | ---------------------------- |
+| Azure DevOps | [Supported](azure-devops.md) |
## Bitbucket
-| Host | Support |
-| --------------------- | ----------- |
-| Cloud | Coming soon |
-| Bitbucket Data Center | Coming soon |
+| Host | Support |
+| -------------------- | ---------------------------------------- |
+| Bitbucket Datacenter | [Supported](../self-hosted/bitbucket.md) |
+| Bitbucket Cloud | [Supported](./bitbucket-cloud.md) |
[login]: https://app.coderabbit.ai/login
diff --git a/docs/platforms/self-hosted-gitlab.md b/docs/platforms/self-hosted-gitlab.md
index 4ef7623c..3fa18a71 100644
--- a/docs/platforms/self-hosted-gitlab.md
+++ b/docs/platforms/self-hosted-gitlab.md
@@ -71,6 +71,8 @@ After the user is created, you can retrieve the **User ID** from that user's
profile and generate an [**access token**](#generating-personal-access-token).
The access token is used to post reviews on merge requests.
+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
#### **Creating OAuth2 application**
For self-managed GitLab, we recommend creating an instance-wide application
@@ -120,4 +122,4 @@ Use this CodeRabbit IP if your instance requires IP whitelisting
`35.222.179.152/32` and `34.170.211.100/32`.
VPN tunneling is available as an add-on package. Please reach out to us at
-[contact@coderabbit.ai](mailto:contact@coderabbit.ai) if you are interested.
+[support@coderabbit.ai](mailto:support@coderabbit.ai) if you are interested.
diff --git a/docs/reference/caching.md b/docs/reference/caching.md
new file mode 100644
index 00000000..cea907c0
--- /dev/null
+++ b/docs/reference/caching.md
@@ -0,0 +1,20 @@
+# Caching
+
+CodeRabbit provides caching capabilities for code and dependencies to accelerate the review process. This feature enhances your development workflow by delivering faster feedback.
+
+## Security and Privacy
+
+- Cached data is encrypted (except for OSS projects)
+- Cache expires after a maximum of one week
+- Cached data is used exclusively for speeding up reviews
+
+## Configuration
+
+You can opt out of caching in two ways:
+
+1. **Disable Cache**: Configure `Review - Disable Cache` at either:
+
+ - Organization level
+ - Repository level
+
+2. **Disable Data Retention**: Turn off the `Data Retention` setting in your Organization Settings to disable all data retention across your organization.
diff --git a/docs/reference/review-commands.md b/docs/reference/review-commands.md
new file mode 100644
index 00000000..011bf9d5
--- /dev/null
+++ b/docs/reference/review-commands.md
@@ -0,0 +1,47 @@
+---
+title: Code review commands
+description: A list of commands that you can issue to CodeRabbit during code reviews.
+---
+
+This page lists the various commands that you can issue to CodeRabbit through
+its chat interface during code reviews. For more information about working with
+CodeRabbit through chat, see [Interact with CodeRabbit reviews](/guides/code-review-overview#interact).
+
+| Command | Description | Use Case |
+| --------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `@coderabbitai review` | Triggers an incremental review of new changes | When automatic reviews are disabled or you want to manually trigger a review |
+| `@coderabbitai full review` | Performs a complete review of all files from scratch | When you want to get fresh insights on the entire PR |
+| `@coderabbitai summary` | Regenerates the PR summary | When you want an updated overview after making changes |
+
+## Code review flow control
+
+| Command | Description | Use Case |
+| ---------------------- | ---------------------------------------- | --------------------------------------------------- |
+| `@coderabbitai pause` | Temporarily stops reviews on the PR | When you're making multiple rapid changes |
+| `@coderabbitai resume` | Restarts reviews after a pause | When you're ready for CodeRabbit to review again |
+| `@coderabbitai ignore` | Permanently disables reviews for this PR | When you want to handle the review process manually |
+
+## Comment management
+
+| Command | Description | Use Case |
+| ----------------------- | --------------------------------------- | ------------------------------------------------------- |
+| `@coderabbitai resolve` | Resolves all CodeRabbit review comments | When you've addressed all feedback and want to clean up |
+
+## Documentation commands
+
+| Command | Description | Use Case |
+| ----------------------------------- | -------------------------------------------- | --------------------------------------------------- |
+| `@coderabbitai generate docstrings` | Generates docstrings for functions in the PR | When you need automatic documentation for your code |
+| `@coderabbitai configuration` | Shows current CodeRabbit settings | When you need to check or export your configuration |
+
+## Agentic chat commands
+
+| Command | Description | Use Case |
+| -------------------- | ---------------------------------------------------------- | ---------------------------------------------------- |
+| `@coderabbitai plan` | Get the agentic chat to plan an edit for previous comments | When you want CodeRabbit to change your code for you |
+
+## Help and support
+
+| Command | Description | Use Case |
+| -------------------- | ------------------------------------------ | ------------------------------------------ |
+| `@coderabbitai help` | Displays available commands and usage info | When you need guidance on using CodeRabbit |
diff --git a/docs/self-hosted/_category_.yaml b/docs/self-hosted/_category_.yaml
index 1025807f..84f0b578 100644
--- a/docs/self-hosted/_category_.yaml
+++ b/docs/self-hosted/_category_.yaml
@@ -1,4 +1,4 @@
-label: Self-Hosted
+label: Self-Hosted CodeRabbit
position: 4
collapsible: true
collapsed: false
diff --git a/docs/self-hosted/azure-devops.md b/docs/self-hosted/azure-devops.md
index c02cb7e8..f1a820a3 100644
--- a/docs/self-hosted/azure-devops.md
+++ b/docs/self-hosted/azure-devops.md
@@ -11,11 +11,13 @@ The self-hosted option is only available for CodeRabbit Enterprise customers wit
:::
-## Create a Azure DevOps User
+## Create an Azure DevOps User
- **Username**: Set the username to "CodeRabbit" for easier identification (optional).
- **Profile Image**: Use the CodeRabbitAI logo for the user image (optional).
+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
## Add User to Projects
Add the CodeRabbit user to each project where you want CodeRabbit to post reviews, with rights to post reviews & open PRs.
@@ -28,6 +30,7 @@ Generate a personal access token for the CodeRabbit user to be added in the `.en
- `Code` - Full
- `Work Items` - Read, write, and manage
+- `Build` - Read
Consult official CodeRabbitAI documentation for a detailed [guide](https://docs.coderabbit.ai/platforms/azure-devops#generating-a-personal-access-token) on creating personal access tokens.
@@ -61,34 +64,68 @@ LLM_PROVIDER=azure-openai
LLM_TIMEOUT=360000
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_API_KEY=
-AZURE_GPT4OMINI_DEPLOYMENT_NAME=
-AZURE_GPT4O_DEPLOYMENT_NAME=
-## o1-mini is optional
-AZURE_O1_MINI_DEPLOYMENT_NAME=[]
-## o1-preview is optional: itโs very expensive but provides best reviews
-AZURE_O1_DEPLOYMENT_NAME=[]
-## gpt-4-turbo is optional: itโs expensive but provides better reviews than gpt-4o
-AZURE_GPT4TURBO_DEPLOYMENT_NAME=[]
+## it is recommended to deploy gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally).
+AZURE_GPT41MINI_DEPLOYMENT_NAME=
+AZURE_O4MINI_DEPLOYMENT_NAME=
+AZURE_O3_DEPLOYMENT_NAME=
+AZURE_GPT41_DEPLOYMENT_NAME=[]
+# optionally, deploy gpt-4o-mini instead of gpt-4.1-mini
+AZURE_GPT4OMINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o3-mini instead of o4-mini
+AZURE_O3MINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o1 instead of o3
+AZURE_O1_DEPLOYMENT_NAME=[]
+
+# OAuth2 Configuration (optional)
+# This will use client_credentials flow to get an access token,
+# and use it to make requests to the LLM provider.
+# Here is more information on this flow: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow#first-case-access-token-request-with-a-shared-secret
+# It is expected that the response from the OAuth2 server will be in the format
+# {
+# "access_token": "",
+# "token_type": "Bearer",
+# "expires_in": 3599,
+# }
+OAUTH2_ENDPOINT=[]
+OAUTH2_CLIENT_ID=[]
+OAUTH2_CLIENT_SECRET=[]
+OAUTH2_SCOPE=[]
+
+HTTP_PROXY=[]
+HTTPS_PROXY=[]
+NO_PROXY=[]
+
+# if using AWS Bedrock
+# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4.
+LLM_PROVIDER=bedrock-anthropic
+LLM_TIMEOUT=360000
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_REGION=
TEMP_PATH=/cache
-AST_GREP_RULES_PATH=/home/jailuser/ast-grep-rules
-AST_GREP_ESSENTIALS=ast-grep-essentials
-
SELF_HOSTED=azure-devops
AZURE_DEVOPS_BOT_TOKEN=
AZURE_DEVOPS_BOT_USERNAME=
+
CODERABBIT_LICENSE_KEY=
-CODERABBIT_API_KEY=[]
-ENABLE_LEARNINGS=[true]
+CODERABBIT_API_KEY=
ENABLE_METRICS=[true]
+ENABLE_LEARNINGS=[true]
+# if using CodeRabbit's learnings, also provide the following
+# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc.
+OBJECT_STORE_URI=[]
JIRA_HOST=[]
JIRA_PAT=[]
LINEAR_PAT=[]
+
+ENABLE_WEB_SEARCH=[true]
+PERPLEXITY_API_KEY=[]
```
:::note
@@ -110,7 +147,7 @@ docker pull /coderabbit-agent:latest
### Verify the image is up
-You can query `/health` endpoint to verify that the coderabbit-agent service is up and running.
+You can query `/health` endpoint to verify that the `coderabbit-agent` service is up and running.
```bash
curl 127.0.0.1:8080/health
diff --git a/docs/self-hosted/bitbucket.md b/docs/self-hosted/bitbucket.md
new file mode 100644
index 00000000..51cb1895
--- /dev/null
+++ b/docs/self-hosted/bitbucket.md
@@ -0,0 +1,157 @@
+---
+title: Use Self-Hosted CodeRabbit With Bitbucket Datacenter
+sidebar_label: Bitbucket Datacenter
+description: Instructions to self-host CodeRabbit and integrate it with Bitbucket Datacenter.
+sidebar_position: 4
+---
+
+:::note
+
+The self-hosted option is only available for CodeRabbit Enterprise customers with 500 user seats or more. Please contact [CodeRabbit Sales](mailto:sales@coderabbit.ai) to learn more about the CodeRabbit Enterprise plan.
+
+:::
+
+## Create a Bitbucket User
+
+- **Username**: Set the username to "CodeRabbit" for easier identification (optional).
+- **Profile Image**: Use the CodeRabbitAI logo for the user image (optional).
+
+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
+## Add User to Projects
+
+Add the CodeRabbit user to each project where you want CodeRabbit to post reviews, with permissions to:
+
+- Post reviews
+- Open pull requests
+
+## Create a Personal Access Token for CodeRabbit user
+
+Generate a personal access token for the CodeRabbit user to be added in the `.env` file as `BITBUCKET_SERVER_BOT_TOKEN`.
+
+## Add a webhook to each project
+
+1. **Navigate to Webhook Settings**: Go to the repository settings and locate the webhooks configuration page.
+2. **Configure Events**: Enable the following Pull Request events:
+ - "Opened"
+ - "Modified"
+ - "Comment Added"
+3. **Add Webhook URL**: Enter the URL pointing to the CodeRabbit service, followed by `/bitbucket_server_webhooks` (e.g., `http://127.0.0.1:8080/bitbucket_server_webhooks`).
+
+## Prepare a `.env` file
+
+Create a `.env` file with the following content:
+
+```bash
+# if using OpenAI
+LLM_PROVIDER=openai
+LLM_TIMEOUT=360000
+OPENAI_API_KEYS=
+OPENAI_BASE_URL=[]
+OPENAI_ORG_ID=[]
+OPENAI_PROJECT_ID=[]
+
+# if using Azure OpenAI
+LLM_PROVIDER=azure-openai
+LLM_TIMEOUT=360000
+AZURE_OPENAI_ENDPOINT=
+AZURE_OPENAI_API_KEY=
+## it is recommended to deploy gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally).
+AZURE_GPT41MINI_DEPLOYMENT_NAME=
+AZURE_O4MINI_DEPLOYMENT_NAME=
+AZURE_O3_DEPLOYMENT_NAME=
+AZURE_GPT41_DEPLOYMENT_NAME=[]
+# optionally, deploy gpt-4o-mini instead of gpt-4.1-mini
+AZURE_GPT4OMINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o3-mini instead of o4-mini
+AZURE_O3MINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o1 instead of o3
+AZURE_O1_DEPLOYMENT_NAME=[]
+
+# OAuth2 Configuration (optional)
+# This will use client_credentials flow to get an access token,
+# and use it to make requests to the LLM provider.
+# Here is more information on this flow: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow#first-case-access-token-request-with-a-shared-secret
+# It is expected that the response from the OAuth2 server will be in the format
+# {
+# "access_token": "",
+# "token_type": "Bearer",
+# "expires_in": 3599,
+# }
+OAUTH2_ENDPOINT=[]
+OAUTH2_CLIENT_ID=[]
+OAUTH2_CLIENT_SECRET=[]
+OAUTH2_SCOPE=[]
+
+HTTP_PROXY=[]
+HTTPS_PROXY=[]
+NO_PROXY=[]
+
+# if using AWS Bedrock
+# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4.
+LLM_PROVIDER=bedrock-anthropic
+LLM_TIMEOUT=360000
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_REGION=
+
+# System Configuration
+TEMP_PATH=/cache
+
+SELF_HOSTED=bitbucket-server
+
+BITBUCKET_SERVER_URL=/rest
+BITBUCKET_SERVER_WEBHOOK_SECRET=
+BITBUCKET_SERVER_BOT_TOKEN=
+BITBUCKET_SERVER_BOT_USERNAME=
+
+CODERABBIT_LICENSE_KEY=
+
+CODERABBIT_API_KEY=
+ENABLE_METRICS=[true]
+ENABLE_LEARNINGS=[true]
+# if using CodeRabbit's learnings, also provide the following
+# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc.
+OBJECT_STORE_URI=[]
+
+JIRA_HOST=[]
+JIRA_PAT=[]
+
+LINEAR_PAT=[]
+
+ENABLE_WEB_SEARCH=[true]
+PERPLEXITY_API_KEY=[]
+```
+
+:::note
+
+- If you are using Azure OpenAI, verify that the model deployment names are in the .env file.
+ Values marked with [] are optional and can be omitted if the feature is not needed.
+- You can generate `CODERABBIT_API_KEY` from CodeRabbit UI -> Organizations Settings -> API Keys.
+
+:::
+
+## Pull the CodeRabbit Docker image
+
+Authenticate and pull the Docker image using the provided credentials file:
+
+```bash
+cat coderabbit.json | docker login -u _json_key --password-stdin us-docker.pkg.dev
+docker pull us-docker.pkg.dev/coderabbitprod/self-hosted/coderabbit-agent:latest
+```
+
+### Verify the image is up
+
+You can query `/health` endpoint to verify that the `coderabbit-agent` service is up and running.
+
+```bash
+curl 127.0.0.1:8080/health
+```
+
+## Host the image
+
+You can host the image on a server, serverless function, or container environment and expose port `8080`. Run the Docker image with the equivalent command on your chosen platform, ensuring you replace the `.env` file path with the path to your actual `.env` file:
+
+```bash
+docker run --env-file .env --publish 127.0.0.1:8080:8080 us-docker.pkg.dev/coderabbitprod/self-hosted/coderabbit-agent:latest
+```
diff --git a/docs/self-hosted/github.md b/docs/self-hosted/github.md
index d3d9cec3..cce4296c 100644
--- a/docs/self-hosted/github.md
+++ b/docs/self-hosted/github.md
@@ -22,6 +22,7 @@ Set the following Repository permissions:
- Issues: Read & write
- Metadata: Read-only
- Pull requests: Read & write
+- Actions: Read-only
Set the following Organization permissions:
@@ -41,6 +42,8 @@ Set the following events:
- Push
- Release
+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
## Gather information from the GitHub App
- App ID
@@ -64,14 +67,44 @@ LLM_PROVIDER=azure-openai
LLM_TIMEOUT=360000
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_API_KEY=
-AZURE_GPT4OMINI_DEPLOYMENT_NAME=
-AZURE_GPT4O_DEPLOYMENT_NAME=
-## o1-mini is optional
-AZURE_O1_MINI_DEPLOYMENT_NAME=[]
-## o1-preview is optional: itโs very expensive but provides best reviews
-AZURE_O1_DEPLOYMENT_NAME=[]
-## gpt-4-turbo is optional: itโs expensive but provides better reviews than gpt-4o
-AZURE_GPT4TURBO_DEPLOYMENT_NAME=[]
+# it is recommended to deploy gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally).
+AZURE_GPT41MINI_DEPLOYMENT_NAME=
+AZURE_O4MINI_DEPLOYMENT_NAME=
+AZURE_O3_DEPLOYMENT_NAME=
+AZURE_GPT41_DEPLOYMENT_NAME=[]
+# optionally, deploy gpt-4o-mini instead of gpt-4.1-mini
+AZURE_GPT4OMINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o3-mini instead of o4-mini
+AZURE_O3MINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o1 instead of o3
+AZURE_O1_DEPLOYMENT_NAME=[]
+
+# OAuth2 Configuration (optional)
+# This will use client_credentials flow to get an access token,
+# and use it to make requests to the LLM provider.
+# Here is more information on this flow: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow#first-case-access-token-request-with-a-shared-secret
+# It is expected that the response from the OAuth2 server will be in the format
+# {
+# "access_token": "",
+# "token_type": "Bearer",
+# "expires_in": 3599,
+# }
+OAUTH2_ENDPOINT=[]
+OAUTH2_CLIENT_ID=[]
+OAUTH2_CLIENT_SECRET=[]
+OAUTH2_SCOPE=[]
+
+HTTP_PROXY=[]
+HTTPS_PROXY=[]
+NO_PROXY=[]
+
+# if using AWS Bedrock
+# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4.
+LLM_PROVIDER=bedrock-anthropic
+LLM_TIMEOUT=360000
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_REGION=
# if using Anthropic
LLM_PROVIDER=anthropic
@@ -81,9 +114,6 @@ ANTHROPIC_BASE_URL=[]
TEMP_PATH=/cache
-AST_GREP_RULES_PATH=/home/jailuser/ast-grep-rules
-AST_GREP_ESSENTIALS=ast-grep-essentials
-
SELF_HOSTED=github
GH_WEBHOOK_SECRET=
@@ -95,26 +125,20 @@ GITHUB_APP_PEM_FILE=
CODERABBIT_LICENSE_KEY=
-CODERABBIT_API_KEY=[]
-# This will use your CodeRabbit API key to store learnings on our servers.
-ENABLE_LEARNINGS=[true]
+CODERABBIT_API_KEY=
ENABLE_METRICS=[true]
+ENABLE_LEARNINGS=[true]
+# if using CodeRabbit's learnings, also provide the following
+# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc.
+OBJECT_STORE_URI=[]
JIRA_HOST=[]
JIRA_PAT=[]
LINEAR_PAT=[]
-OAUTH2_ENDPOINT=[]
-OAUTH2_CLIENT_ID=[]
-OAUTH2_CLIENT_SECRET=[]
-
-# Set to true to use the on-prem knowledge base features. This will take precedence over the ENABLE_LEARNINGS flag above.
-SELF_HOSTED_KNOWLEDGE_BASE=[true]
-# The branch which CodeRabbit will store the knowledge base json files in.
-SELF_HOSTED_KNOWLEDGE_BASE_BRANCH=[coderabbitai/data]
-# URL to the host running ChromaDB 0.5.20.
-CHROMADB_URL=[http://chromadb:8000]
+ENABLE_WEB_SEARCH=[true]
+PERPLEXITY_API_KEY=[]
```
:::note
@@ -124,7 +148,7 @@ CHROMADB_URL=[http://chromadb:8000]
- For `GITHUB_APP_PEM_FILE`, flatten the PEM file by replacing newlines with `\n`.
- For `GITHUB_HOSTNAME`, use GitHub Enterprise server's hostname, for example, โgithub.acme-inc.comโ
- You can generate `CODERABBIT_API_KEY` from CodeRabbit UI -> Organizations Settings -> API Keys.
-- Refer to the [Self-hosted knowledge base](/integrations/knowledge-base#self-hosted) section for details on the `ON_PREM_KNOWLEDGE_BASE`.
+- When `ENABLE_LEARNINGS` is set to `true`, CodeRabbit will use `CODERABBIT_API_KEY` to store learnings on our servers.
:::
@@ -147,7 +171,7 @@ docker run --env-file .env --publish 127.0.0.1:8080:8080 /coder
### Verify the image is up
-You can query `/health` endpoint to verify that the coderabbit-agent service is up and running.
+You can query `/health` endpoint to verify that the `coderabbit-agent` service is up and running.
```bash
curl 127.0.0.1:8080/health
diff --git a/docs/self-hosted/gitlab.md b/docs/self-hosted/gitlab.md
index e4275fe1..9b3a6a28 100644
--- a/docs/self-hosted/gitlab.md
+++ b/docs/self-hosted/gitlab.md
@@ -16,6 +16,8 @@ The self-hosted option is only available for CodeRabbit Enterprise customers wit
- **Username**: Set the username to "CodeRabbit" for easier identification (optional).
- **Profile Image**: Use the CodeRabbitAI logo for the user image (optional).
+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
## Add User to Projects
Add the CodeRabbit user to each project where you want CodeRabbit to post reviews, with at least `Developer` access.
@@ -42,9 +44,9 @@ Consult official CodeRabbitAI documentation for a detailed [guide](https://docs.
- Issues events
- Merge request events
-## Prepare an `.env` file
+## Prepare a `.env` file
-Create an `.env` file with the following content:
+Create a `.env` file with the following content:
```bash
# if using OpenAI
@@ -60,14 +62,44 @@ LLM_PROVIDER=azure-openai
LLM_TIMEOUT=360000
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_API_KEY=
-AZURE_GPT4OMINI_DEPLOYMENT_NAME=
-AZURE_GPT4O_DEPLOYMENT_NAME=
-## o1-mini is optional
-AZURE_O1_MINI_DEPLOYMENT_NAME=
-## o1-preview is optional: itโs very expensive but provides best reviews
-AZURE_O1_DEPLOYMENT_NAME=
-## gpt-4-turbo is optional: itโs expensive but provides better reviews
-AZURE_GPT4TURBO_DEPLOYMENT_NAME=[]
+## it is recommended to deploy gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally).
+AZURE_GPT41MINI_DEPLOYMENT_NAME=
+AZURE_O4MINI_DEPLOYMENT_NAME=
+AZURE_O3_DEPLOYMENT_NAME=
+AZURE_GPT41_DEPLOYMENT_NAME=[]
+# optionally, deploy gpt-4o-mini instead of gpt-4.1-mini
+AZURE_GPT4OMINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o3-mini instead of o4-mini
+AZURE_O3MINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o1 instead of o3
+AZURE_O1_DEPLOYMENT_NAME=[]
+
+# OAuth2 Configuration (optional)
+# This will use client_credentials flow to get an access token,
+# and use it to make requests to the LLM provider.
+# Here is more information on this flow: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow#first-case-access-token-request-with-a-shared-secret
+# It is expected that the response from the OAuth2 server will be in the format
+# {
+# "access_token": "",
+# "token_type": "Bearer",
+# "expires_in": 3599,
+# }
+OAUTH2_ENDPOINT=[]
+OAUTH2_CLIENT_ID=[]
+OAUTH2_CLIENT_SECRET=[]
+OAUTH2_SCOPE=[]
+
+HTTP_PROXY=[]
+HTTPS_PROXY=[]
+NO_PROXY=[]
+
+# if using AWS Bedrock
+# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4.
+LLM_PROVIDER=bedrock-anthropic
+LLM_TIMEOUT=360000
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_REGION=
# if using Anthropic
LLM_PROVIDER=anthropic
@@ -77,23 +109,27 @@ ANTHROPIC_BASE_URL=[]
TEMP_PATH=/cache
-AST_GREP_RULES_PATH=/home/jailuser/ast-grep-rules
-AST_GREP_ESSENTIALS=ast-grep-essentials
-
SELF_HOSTED=gitlab
GITLAB_BOT_TOKEN=
GITLAB_WEBHOOK_SECRET=
+
CODERABBIT_LICENSE_KEY=
-CODERABBIT_API_KEY=[]
-ENABLE_LEARNINGS=[true]
+CODERABBIT_API_KEY=
ENABLE_METRICS=[true]
+ENABLE_LEARNINGS=[true]
+# if using CodeRabbit's learnings, also provide the following
+# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc.
+OBJECT_STORE_URI=[]
JIRA_HOST=[]
JIRA_PAT=[]
LINEAR_PAT=[]
+
+ENABLE_WEB_SEARCH=[true]
+PERPLEXITY_API_KEY=[]
```
:::note
diff --git a/docs/tools/_category_.yml b/docs/tools/_category_.yaml
similarity index 100%
rename from docs/tools/_category_.yml
rename to docs/tools/_category_.yaml
diff --git a/docs/tools/actionlint.md b/docs/tools/actionlint.md
index c05171f5..ab787e0d 100644
--- a/docs/tools/actionlint.md
+++ b/docs/tools/actionlint.md
@@ -1,10 +1,16 @@
---
-title: Actionlint
-sidebar_label: Actionlint
-description: CodeRabbit's guide to Actionlint.
+title: actionlint
+sidebar_label: actionlint
+description: CodeRabbit's guide to actionlint.
---
-[Actionlint](https://github.com/rhysd/actionlint/) is a static checker for
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[`actionlint`](https://github.com/rhysd/actionlint/) is a static checker for
GitHub Actions workflow files.
## Files
@@ -20,4 +26,4 @@ CodeRabbit will use the default configuration.
## Links
-- [Actionlint Configuration](https://github.com/rhysd/actionlint/blob/main/docs/config.md/)
+- [`actionlint` Configuration](https://github.com/rhysd/actionlint/blob/main/docs/config.md/)
diff --git a/docs/tools/biome.md b/docs/tools/biome.md
index 953debee..be71d385 100644
--- a/docs/tools/biome.md
+++ b/docs/tools/biome.md
@@ -4,6 +4,12 @@ sidebar_label: Biome
description: CodeRabbit's guide to Biome.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[Biome](https://biomejs.dev/) is a linter for JavaScript, TypeScript, JSX, TSX, JSON, JSONC, CSS.
## Files
diff --git a/docs/tools/brakeman.md b/docs/tools/brakeman.md
new file mode 100644
index 00000000..d9fac002
--- /dev/null
+++ b/docs/tools/brakeman.md
@@ -0,0 +1,40 @@
+---
+title: Brakeman
+sidebar_label: Brakeman
+description: CodeRabbit's guide to Brakeman.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Brakeman](https://brakemanscanner.org/) is a static analysis tool which checks Ruby on Rails applications for security vulnerabilities. It scans your application's code for potential security issues and provides detailed reports about any vulnerabilities it finds.
+
+## Supported Files
+
+Brakeman will run on files with the following extensions:
+
+- `Gemfile`
+- `*.rb`
+- `*.erb`
+
+## Features
+
+Brakeman can detect many critical vulnerabilities such as:
+
+- SQL injection
+- Cross-site scripting (XSS)
+- Mass assignment
+- Remote code execution
+- And many more security vulnerabilities
+- Out of date package versions
+- Etc
+
+## Links
+
+- [Brakeman Official Website](https://brakemanscanner.org/)
+- [Brakeman GitHub Repository](https://github.com/presidentbeef/brakeman)
+- [Brakeman Documentation](https://brakemanscanner.org/docs/)
+- [Warning Types](https://brakemanscanner.org/docs/warning_types/)
diff --git a/docs/tools/buf.md b/docs/tools/buf.md
index 51fbb446..70c2b70e 100644
--- a/docs/tools/buf.md
+++ b/docs/tools/buf.md
@@ -4,6 +4,12 @@ sidebar_label: Buf
description: CodeRabbit's guide to Buf.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[Buf](https://buf.build/) offers linting for Protobuf files.
## Files
diff --git a/docs/tools/checkov.md b/docs/tools/checkov.md
index 93a7e3d1..a0b14cb7 100644
--- a/docs/tools/checkov.md
+++ b/docs/tools/checkov.md
@@ -4,6 +4,12 @@ sidebar_label: Checkov
description: CodeRabbit's guide to Checkov.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[Checkov](https://www.checkov.io/) is a static code analysis tool for scanning Infrastructure as Code (IaC) files for misconfigurations.
## Files
diff --git a/docs/tools/circleci.md b/docs/tools/circleci.md
index 89fa0714..b7b54fb9 100644
--- a/docs/tools/circleci.md
+++ b/docs/tools/circleci.md
@@ -1,17 +1,23 @@
---
-title: CircleCi
-sidebar_label: CircleCi
-description: CodeRabbit's guide to CircleCi.
+title: CircleCI
+sidebar_label: CircleCI
+description: CodeRabbit's guide to CircleCI.
---
-[CircleCi](https://circleci.com/) is a static checker and validator for circleci config files.
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[CircleCI](https://circleci.com/) is a static checker and validator for circleci config files.
## Files
-We look for `CircleCi Configuration` files specifically in the following directory:
+We look for `CircleCI Configuration` files specifically in the following directory:
-- `.circleci/config.yml"`
-- `.circleci/config.yaml"`
+- `.circleci/config.yml`
+- `.circleci/config.yaml`
## Configuration
@@ -19,4 +25,4 @@ CodeRabbit will use the default configuration.
## Links
-- [CircleCi Configuration](https://circleci.com/docs/configuration-reference/)
+- [CircleCI Configuration](https://circleci.com/docs/configuration-reference/)
diff --git a/docs/tools/clippy.md b/docs/tools/clippy.md
new file mode 100644
index 00000000..257af0e3
--- /dev/null
+++ b/docs/tools/clippy.md
@@ -0,0 +1,50 @@
+---
+title: Clippy
+sidebar_label: Clippy
+description: CodeRabbit's guide to Clippy.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Clippy](https://github.com/rust-lang/rust-clippy) is a collection of lints to catch common mistakes and improve your Rust code. It is the official linter for the Rust programming language.
+
+## Supported Files
+
+Clippy will run on files with the following extensions:
+
+- `*.rs`
+
+## Configuration
+
+Clippy supports the following configuration files:
+
+- `clippy.toml`
+- `.clippy.toml`
+
+:::note
+
+Clippy does not require configuration to run. If no configuration file is found, it will use default settings.
+
+A Cargo.toml is required.
+
+:::
+
+## Features
+
+Clippy can detect many code quality issues such as:
+
+- Style violations
+- Common mistakes
+- Performance issues
+- Deprecated code patterns
+- And many more Rust-specific issues
+
+## Links
+
+- [Clippy GitHub Repository](https://github.com/rust-lang/rust-clippy)
+- [Clippy Documentation](https://rust-lang.github.io/rust-clippy/master/)
+- [Available Lints](https://rust-lang.github.io/rust-clippy/master/index.html)
diff --git a/docs/tools/cppcheck.md b/docs/tools/cppcheck.md
index 105d7bbd..a650ee49 100644
--- a/docs/tools/cppcheck.md
+++ b/docs/tools/cppcheck.md
@@ -4,6 +4,12 @@ sidebar_label: Cppcheck
description: CodeRabbit's guide to Cppcheck.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[Cppcheck](https://cppcheck.sourceforge.io/) is a static code analysis tool for the C and C++ programming languages.
## Files
diff --git a/docs/tools/detekt.md b/docs/tools/detekt.md
index b52e4ae0..865dd69d 100644
--- a/docs/tools/detekt.md
+++ b/docs/tools/detekt.md
@@ -1,26 +1,32 @@
---
-title: Detekt
-sidebar_label: Detekt
-description: CodeRabbit's guide to Detekt.
+title: detekt
+sidebar_label: detekt
+description: CodeRabbit's guide to detekt.
---
-[Detekt](https://detekt.dev/) is a static code analysis tool specifically designed for Kotlin projects
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[`detekt`](https://detekt.dev/) is a static code analysis tool specifically designed for Kotlin projects
## Files
-Detekt will run on files with the following extensions:
+`detekt` will run on files with the following extensions:
- `.kt`
- `.kts`
## Configuration
-Detekt uses a YAML style configuration file.
+`detekt` uses a YAML style configuration file.
-Detekt supports the following config files:
+`detekt` supports the following config files:
-- User-defined config file set at `reviews.tools.detekt.config_file` in your project's `.coderabbit.yaml` file or setting the "Review โ Tools โ Detekt โ Config File" field in CodeRabbit's settings page.
+- User-defined config file set at `reviews.tools.detekt.config_file` in your project's `.coderabbit.yaml` file or setting the "Review โ Tools โ `detekt` โ Config File" field in CodeRabbit's settings page.
## Links
-- [Detekt Configuration](https://detekt.dev/docs/introduction/configurations/)
+- [`detekt` Configuration](https://detekt.dev/docs/introduction/configurations/)
diff --git a/docs/tools/eslint.md b/docs/tools/eslint.md
index bdf6d9b4..dd10bcf7 100644
--- a/docs/tools/eslint.md
+++ b/docs/tools/eslint.md
@@ -4,6 +4,12 @@ sidebar_label: ESLint
description: CodeRabbit's guide to ESLint.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[ESLint](https://eslint.org/) is a linter for JavaScript, TypeScript, JSX, TSX, CSS, etc.
## Files
diff --git a/docs/tools/gitleaks.md b/docs/tools/gitleaks.md
index 1e725b06..5e722d84 100644
--- a/docs/tools/gitleaks.md
+++ b/docs/tools/gitleaks.md
@@ -4,6 +4,12 @@ sidebar_label: Gitleaks
description: CodeRabbit's guide to Gitleaks.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[Gitleaks](https://gitleaks.io/) is a secret-scanner.
## Files
diff --git a/docs/tools/golangci-lint.md b/docs/tools/golangci-lint.md
index 541db7b9..ba140553 100644
--- a/docs/tools/golangci-lint.md
+++ b/docs/tools/golangci-lint.md
@@ -4,6 +4,12 @@ sidebar_label: golangci-lint
description: CodeRabbit's guide to golangci-lint.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[golangci-lint](https://golangci-lint.run/) is a fast Go linters runner.
## Files
diff --git a/docs/tools/hadolint.md b/docs/tools/hadolint.md
index 044a561d..97c6c661 100644
--- a/docs/tools/hadolint.md
+++ b/docs/tools/hadolint.md
@@ -4,6 +4,12 @@ sidebar_label: Hadolint
description: CodeRabbit's guide to Hadolint.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[Hadolint](https://github.com/hadolint/hadolint) is a Dockerfile linter.
## Files
diff --git a/docs/tools/languagetool.md b/docs/tools/languagetool.md
index 8ef4a59f..554bf70c 100644
--- a/docs/tools/languagetool.md
+++ b/docs/tools/languagetool.md
@@ -4,6 +4,12 @@ sidebar_label: LanguageTool
description: CodeRabbit's guide to LanguageTool.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[LanguageTool](https://github.com/languagetool-org/languagetool) is a style and grammar checker.
## Files
diff --git a/docs/tools/list.md b/docs/tools/list.md
new file mode 100644
index 00000000..b3220568
--- /dev/null
+++ b/docs/tools/list.md
@@ -0,0 +1,79 @@
+---
+title: List of supported tools
+description: Overview of CodeRabbit's supported linters and security analysis tools
+---
+
+This is a list of the third-party open-source linters and security analysis tools that CodeRabbit uses to generate code reviews.
+
+For more information about fine-tuning the CodeRabbit configuration of a tool, click that tool's name in the following list.
+
+For an overview of how CodeRabbit uses these tools when generating code reviews, as well as general information about controlling their use, see [Configure third-party tools](/tools/).
+
+| Technology | Tools | Category |
+| :-------------------------- | :--------------------------------------------------------- | :-------------------------------------------------- |
+| All | [Gitleaks][Gitleaks], [Pipeline Remediation][Pipeline] | Code Security, CI/CD |
+| Azure DevOps Pipelines | [Pipeline Remediation][Pipeline] | CI/CD Failure Remediation |
+| CircleCI | [CircleCI][CircleCI], [Pipeline Remediation][Pipeline] | Configuration Validation, CI/CD Failure Remediation |
+| CloudFormation | [Checkov][Checkov] | Code Security |
+| Cppcheck | [Cppcheck][Cppcheck] | Code Quality |
+| CSS | [Biome][Biome] | Code Quality |
+| Docker | [Hadolint][Hadolint], [Checkov][Checkov] | Code Quality, Code Security |
+| GitHub Actions | [actionlint][actionlint], [Pipeline Remediation][Pipeline] | Code Quality, CI/CD Failure Remediation |
+| GitLab Pipelines | [Pipeline Remediation][Pipeline] | CI/CD Failure Remediation |
+| Go | [golangci-lint][golangci-lint] | Code Quality |
+| Helm | [Checkov][Checkov] | Code Security |
+| Javascript | [Biome][Biome], [oxlint][oxlint] | Code Quality |
+| JSON, JSONC | [Biome][Biome] | Code Quality |
+| JSX | [Biome][Biome], [oxlint][oxlint] | Code Quality |
+| Kotlin | [detekt][detekt] | Code Quality |
+| Kubernetes | [Checkov][Checkov] | Code Security |
+| Lua | [Luacheck][Luacheck] | Code Quality |
+| Markdown | [markdownlint][markdownlint], [LanguageTool][LanguageTool] | Code Quality, Grammar Checking |
+| PHP | [PHPStan][PHPStan] | Code Quality |
+| Plaintext | [LanguageTool][LanguageTool] | Grammar and Spell Checking |
+| Java | [PMD][PMD] | Code Quality |
+| Protobuf | [Buf][Buf] | Code Quality |
+| Python | [Ruff][Ruff] | Code Quality |
+| Regal | [Regal][Regal] | Code Quality |
+| Ruby | [RuboCop][RuboCop], [Brakeman][Brakeman] | Code Quality, Code Security |
+| Rust | [Clippy][Clippy] | Code Quality |
+| Semgrep | [Semgrep][Semgrep] | Code Security |
+| Shell (sh, bash, ksh, dash) | [ShellCheck][ShellCheck] | Code Quality |
+| Shopify | [Shopify CLI][ShopifyCLI] | Code Quality |
+| SQL | [SQLFluff][SQLFluff] | Code Quality |
+| Swift | [SwiftLint][SwiftLint] | Code Quality |
+| Terraform | [Checkov][Checkov] | Code Security |
+| TSX | [Biome][Biome], [oxlint][oxlint] | Code Quality |
+| Typescript | [Biome][Biome], [oxlint][oxlint] | Code Quality |
+| YAML | [YAMLlint][YAMLlint] | Code Quality |
+| Prisma | [Prisma Lint][PrismaLint] | Code Quality |
+
+[ShellCheck]: /tools/shellcheck.md
+[SQLFluff]: /tools/sqlfluff.md
+[Ruff]: /tools/ruff.md
+[markdownlint]: /tools/markdownlint.md
+[LanguageTool]: /tools/languagetool.md
+[Biome]: /tools/biome.md
+[Hadolint]: /tools/hadolint.md
+[SwiftLint]: /tools/swiftlint.md
+[PHPStan]: /tools/phpstan.md
+[golangci-lint]: /tools/golangci-lint.md
+[YAMLlint]: /tools/yamllint.md
+[Gitleaks]: /tools/gitleaks.md
+[Checkov]: /tools/checkov.md
+[detekt]: /tools/detekt.md
+[RuboCop]: /tools/rubocop.md
+[Buf]: /tools/buf.md
+[actionlint]: /tools/actionlint.md
+[Regal]: /tools/regal.md
+[PMD]: /tools/pmd.md
+[Cppcheck]: /tools/cppcheck.md
+[CircleCI]: /tools/circleci.md
+[Semgrep]: /tools/semgrep.md
+[Pipeline]: /tools/pipeline-remediation.md
+[PrismaLint]: /tools/prisma-lint.md
+[oxlint]: /tools/oxlint.md
+[ShopifyCLI]: /tools/shopify-cli.md
+[Luacheck]: /tools/luacheck.md
+[Brakeman]: /tools/brakeman.md
+[Clippy]: /tools/clippy.md
diff --git a/docs/tools/luacheck.md b/docs/tools/luacheck.md
new file mode 100644
index 00000000..3a8414b6
--- /dev/null
+++ b/docs/tools/luacheck.md
@@ -0,0 +1,49 @@
+---
+title: Luacheck
+sidebar_label: Luacheck
+description: CodeRabbit's guide to Luacheck.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Luacheck](https://github.com/mpeterv/luacheck) is a static analyzer and linter for Lua code that detects various issues such as undefined global variables, unused variables and values, accessing uninitialized variables, unreachable code, and more.
+
+## Supported Files
+
+Luacheck will run on files with the following extensions:
+
+- `.lua`
+
+## Configuration
+
+Luacheck supports the following configuration files:
+
+- `.luacheckrc`
+- `luacheckrc`
+- `.luacheckrc.lua`
+- `luacheckrc.lua`
+
+:::note
+
+Luacheck does not require configuration to run. If no configuration file is found, it will use default settings.
+
+:::
+
+## Features
+
+Luacheck can detect:
+
+- Usage of undefined global variables
+- Unused variables and values
+- Accessing uninitialized variables
+- Unreachable code
+- And many more issues
+
+## Links
+
+- [Luacheck GitHub Repository](https://github.com/mpeterv/luacheck)
+- [Luacheck Documentation](https://luacheck.readthedocs.io/)
diff --git a/docs/tools/markdownlint.md b/docs/tools/markdownlint.md
index 137eb56b..0e883437 100644
--- a/docs/tools/markdownlint.md
+++ b/docs/tools/markdownlint.md
@@ -1,10 +1,16 @@
---
-title: Markdownlint
-sidebar_label: Markdownlint
-description: CodeRabbit's guide to Markdownlint.
+title: markdownlint
+sidebar_label: markdownlint
+description: CodeRabbit's guide to markdownlint.
---
-[Markdownlint](https://github.com/DavidAnson/markdownlint) is a linter for Markdown.
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[`markdownlint-cli2`](https://github.com/DavidAnson/markdownlint) is a linter for Markdown.
## Files
@@ -15,7 +21,7 @@ Markdownlint will run on files with the following extensions:
## Configuration
-Markdownlint supports the following config files:
+`markdownlint-cli2` supports the following config files:
- `.markdownlint.jsonc`
- `.markdownlint.json`
@@ -26,4 +32,4 @@ CodeRabbit will use the default settings based on the profile selected if no con
## Links
-- [Markdownlint Configuration](https://github.com/DavidAnson/markdownlint?tab=readme-ov-file#configuration)
+- [`markdownlint-cli2` Configuration](https://github.com/DavidAnson/markdownlint?tab=readme-ov-file#configuration)
diff --git a/docs/tools/oxlint.md b/docs/tools/oxlint.md
new file mode 100644
index 00000000..fd5e7e2c
--- /dev/null
+++ b/docs/tools/oxlint.md
@@ -0,0 +1,50 @@
+---
+title: Oxlint
+sidebar_label: Oxlint
+description: CodeRabbit's guide to Oxlint.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Oxlint](https://oxc.rs/docs/guide/usage/linter) is a blazingly fast JavaScript/TypeScript linter written in Rust that is 50-100x faster than ESLint.
+
+## Supported Files
+
+Oxlint will run on files with the following extensions:
+
+- `.js`
+- `.mjs`
+- `.cjs`
+- `.jsx`
+- `.ts`
+- `.mts`
+- `.cts`
+- `.tsx`
+- `.vue`
+- `.astro`
+- `.svelte`
+
+## Configuration
+
+Oxlint supports the following configuration file:
+
+- `.oxlintrc.json`
+
+:::note
+
+If no Oxlint config file is found and Biome is enabled, CodeRabbit will use Biome instead as Oxlint functionality is included within Biome.
+
+If Biome is not enabled or an Oxlint config file is found, CodeRabbit will use the `.oxlintrc.json` Oxlint config to run.
+
+Oxlint does not require configuration to run if Biome is disabled and Oxlint is enabled.
+
+:::
+
+## Links
+
+- [Oxlint GitHub Repository](https://github.com/oxc-project/oxc/releases/)
+- [Oxlint Website](https://oxc.rs/docs/guide/usage/linter)
diff --git a/docs/tools/phpstan.md b/docs/tools/phpstan.md
index a756f4c4..f67485d2 100644
--- a/docs/tools/phpstan.md
+++ b/docs/tools/phpstan.md
@@ -4,6 +4,12 @@ sidebar_label: PHPStan
description: CodeRabbit's guide to PHPStan.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[PHPStan](https://phpstan.org/) is a static analysis tool for PHP.
## Files
diff --git a/docs/tools/pipeline-remediation.md b/docs/tools/pipeline-remediation.md
new file mode 100644
index 00000000..2beb0213
--- /dev/null
+++ b/docs/tools/pipeline-remediation.md
@@ -0,0 +1,177 @@
+---
+title: Pipeline Failure Remediation
+sidebar_label: Pipeline Remediation
+description: CodeRabbit's automated pipeline failure detection and remediation capabilities.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+## Overview
+
+Are pipeline failures holding up your pull requests? Is your latest code failing to build and digging through the failure logs is an absolute nightmare? CodeRabbit's Pipeline Failure Remediation tool automatically detects and fixes build failures across your CI/CD pipelines.
+
+Our intelligent AI system analyzes pipeline failures in real-time, providing inline comments and actionable suggestions to quickly resolve issues. We support multiple CI/CD platforms and integrate with popular security scanning tools to provide comprehensive remediation guidance.
+
+## Example Remediations
+
+With CodeRabbit CI/CD Pipeline Remediation, you have coderabbit automatically review the output of any tooling you desire. Here are some examples of the types of common issues we can help you fix:
+
+### Docker Build Issues
+
+- Missing build dependencies
+- Base image compatibility
+- Multi-stage build optimization
+- Cache utilization improvements
+
+
+
+### Java Build & Testing
+
+- Maven/Gradle dependency conflicts
+- Compilation errors
+- Test failures
+- Memory allocation issues
+
+
+
+### Kubernetes Deployments
+
+- Service configuration validation
+- Resource allocation optimization
+- Network policy fixes
+- Security context remediation
+
+
+
+### NPM Package Management
+
+- Package resolution conflicts
+- Version compatibility issues
+- Security vulnerability patches
+- Build script optimization
+
+
+
+### Python Environment
+
+- Package dependency resolution
+- Virtual environment setup
+- Test framework configuration
+- Code style compliance
+
+
+
+### Security Scanning
+
+- SAST finding remediation
+- Code injection prevention
+- Security best practices
+- Compliance validation
+
+
+
+### Terraform and Infrastructure as Code
+
+- Resource configuration validation
+- State management issues
+- Provider compatibility
+- Security group optimization
+
+
+
+## Supported Platforms
+
+### GitHub Actions
+
+- Automatic detection of workflow failures
+- Inline fixes for common build issues
+- Integration with GitHub Checks
+- Support for custom actions and workflows
+
+### GitLab CI/CD
+
+- GitLab CI/CD Pipeline failure analysis
+- Integration with GitLab Advanced Security
+- Support for DAST (Dynamic Application Security Testing) findings
+- Remediation for SAST (Static Application Security Testing) issues
+
+
+
+
+
+### CircleCI
+
+- CircleCI Pipeline failure analysis
+- Job-level error analysis
+- Configuration validation
+- Dependency resolution
+
+
+
+### Azure DevOps Pipelines
+
+- Azure DevOps CI/CD Pipeline failure analysis
+- Integration with Azure DevOps Checks
+- Support for custom tasks and pipelines
+- Remediation for build issues
+
+
+
+## Common Use Cases
+
+Our tool handles a wide range of pipeline failures including:
+
+### Build Failures
+
+- Docker build issues
+- Node.js dependency conflicts
+- Java compilation errors
+- Python package resolution
+- Go module management
+
+### Infrastructure as Code
+
+- Kubernetes manifest validation
+- Terraform template errors
+- CloudFormation stack issues
+- Ansible playbook failures
+
+### Security Pipeline Integration
+
+- SAST finding remediation
+- DAST vulnerability fixes
+- Dependency scanning
+- Container security
+
+### Testing Failures
+
+- Unit test failures
+- Integration test errors
+- End-to-end test issues
+- Performance test threshold violations
+
+## How It Works
+
+1. **Detection**: CodeRabbit monitors your pipeline runs and automatically detects failures
+2. **Analysis**: Our AI analyzes the failure logs and context to determine the root cause
+3. **Remediation**: We provide inline suggestions and automated fixes where possible
+4. **Learning**: The system learns from successful fixes to improve future recommendations
+
+## Best Practices
+
+1. **Keep Dependencies Updated**: Regular dependency updates help prevent build failures
+2. **Use Lock Files**: Lock files ensure consistent builds across environments
+3. **Implement Caching**: Proper caching strategies speed up builds and reduce failures
+4. **Monitor Resource Usage**: Ensure sufficient resources are allocated to prevent timeouts
+5. **Maintain Clean Tests**: Well-maintained tests reduce false positives
+
+## Links
+
+- [GitHub Actions Configuration](https://docs.github.com/en/actions)
+- [GitLab CI/CD Documentation](https://docs.gitlab.com/ee/ci/)
+- [CircleCI Documentation](https://circleci.com/docs/)
+- [Azure DevOps Pipeline Documentation](https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/pipelines-get-started?view=azure-devops)
diff --git a/docs/tools/pmd.md b/docs/tools/pmd.md
index 948083d1..31fc7144 100644
--- a/docs/tools/pmd.md
+++ b/docs/tools/pmd.md
@@ -4,7 +4,13 @@ sidebar_label: PMD
description: CodeRabbit's guide to PMD.
---
-[PMD](https://pmd.github.io/) is an extensible multilanguage static code analyzer. Itโs mainly concerned with Java.
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[PMD](https://pmd.github.io/) is an extensible multilanguage static code analyzer. It's mainly concerned with Java.
## Files
diff --git a/docs/tools/prisma-lint.md b/docs/tools/prisma-lint.md
new file mode 100644
index 00000000..33a36904
--- /dev/null
+++ b/docs/tools/prisma-lint.md
@@ -0,0 +1,46 @@
+---
+title: Prisma Lint
+sidebar_label: Prisma Lint
+description: CodeRabbit's guide to Prisma Lint.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Prisma Lint](https://github.com/loop-payments/prisma-lint) is a linter for Prisma schema files that helps enforce consistent conventions and best practices in your Prisma schemas.
+
+## Files
+
+Prisma Lint will run on files with the following extensions:
+
+- `.prisma`
+
+## Configuration
+
+Prisma Lint supports the following config files:
+
+- `.prismalintrc.json`
+- `.prismalintrc`
+- `.prismalintrc.js`
+- `.prismalintrc.yaml`
+- `.prismalintrc.yml`
+- `prismalint.config.js`
+- User-defined config file set at `reviews.tools.prismalint.config_file` in your project's `.coderabbit.yaml` file or setting the "Review โ Tools โ Prisma Lint โ Config File" field in CodeRabbit's settings page.
+
+:::note
+
+By default, Prisma Lint looks for schema files at `prisma/schema.prisma`. If you have a custom schema path specified in the `prisma.schema` field within `package.json`, that will be used instead.
+
+:::
+
+## Rule Configuration
+
+Rules can be configured in your `.prismalintrc.json` file. See the [Prisma Lint Rules Documentation](https://github.com/loop-payments/prisma-lint/blob/main/RULES.md) for more information on the available rules and their configuration options.
+
+## Links
+
+- [Prisma Lint GitHub Repository](https://github.com/loop-payments/prisma-lint)
+- [Prisma Lint Rules Documentation](https://github.com/loop-payments/prisma-lint/blob/main/RULES.md)
diff --git a/docs/tools/regal.md b/docs/tools/regal.md
index eeca3664..d05be084 100644
--- a/docs/tools/regal.md
+++ b/docs/tools/regal.md
@@ -4,7 +4,13 @@ sidebar_label: Regal
description: CodeRabbit's guide to Regal.
---
-[Regal](https://docs.styra.com/regal/) is a linter and language server for Rego.
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Regal](https://docs.styra.com/regal/) is a linter and language server for Rego, the language of [Open Policy Agent](http://openpolicyagent.org) (OPA).
## Files
@@ -14,12 +20,10 @@ Regal will run on files with the following extensions:
## Configuration
-Regal uses a YAML style configuration file. We look for the following config file:
-
-- `.regal/config.yaml`
+Regal uses a YAML configuration file located at `.regal/config.yaml`.
-CodeRabbit will use the default settings based on the profile selected if no config file is found.
+CodeRabbit will use the default settings based on the profile selected if no configuration file is found.
## Links
-- [Regal Configuration](https://docs.styra.com/regal#configuration/)
+- [Regal Configuration](https://docs.styra.com/regal#configuration)
diff --git a/docs/tools/rubocop.md b/docs/tools/rubocop.md
index 4172bea4..45a24de7 100644
--- a/docs/tools/rubocop.md
+++ b/docs/tools/rubocop.md
@@ -1,14 +1,20 @@
---
-title: Rubocop
-sidebar_label: Rubocop
-description: CodeRabbit's guide to Rubocop.
+title: RuboCop
+sidebar_label: RuboCop
+description: CodeRabbit's guide to RuboCop.
---
-[Rubocop](https://rubocop.org/) A Ruby static code analyzer and formatter, based on the community Ruby style guide.
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[RuboCop](https://rubocop.org/) A Ruby static code analyzer and formatter, based on the community Ruby style guide.
## Files
-Rubocop will run on the following files and extensions:
+RuboCop will run on the following files and extensions:
- `.rb`
- `.arb`
@@ -66,7 +72,7 @@ Rubocop will run on the following files and extensions:
## Configuration
-Rubocop uses a YAML style configuration file. We look for the following files anywhere in the repository:
+RuboCop uses a YAML style configuration file. We look for the following files anywhere in the repository:
- `.rubocop.yml`
- `.rubocop.yaml`
@@ -75,4 +81,4 @@ CodeRabbit will use the default settings based on the profile selected if no con
## Links
-- [Rubocop Configuration](https://docs.rubocop.org/rubocop/1.65/configuration.html/)
+- [RuboCop Configuration](https://docs.rubocop.org/rubocop/1.65/configuration.html/)
diff --git a/docs/tools/ruff.md b/docs/tools/ruff.md
index 255ce816..fe897d7b 100644
--- a/docs/tools/ruff.md
+++ b/docs/tools/ruff.md
@@ -4,6 +4,12 @@ sidebar_label: Ruff
description: CodeRabbit's guide to Ruff.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[Ruff](https://docs.astral.sh/ruff/) is a linter for Python.
## Files
diff --git a/docs/tools/semgrep.md b/docs/tools/semgrep.md
index 3098082a..441dcf38 100644
--- a/docs/tools/semgrep.md
+++ b/docs/tools/semgrep.md
@@ -4,14 +4,19 @@ sidebar_label: Semgrep
description: CodeRabbit's guide to Semgrep.
---
-[Semgrep](https://semgrep.dev/) is a static analysis tool designed to scan code
-for security vulnerabilities and code quality issues.
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Semgrep](https://github.com/semgrep/semgrep) is an open-source static analysis tool designed to scan code for security vulnerabilities and code quality issues.
## Configuration
-Semgrep uses a YAML style configuration file. By default we will automatically
+Semgrep uses a YAML style configuration file. By default, we will automatically
use the following files if any are set in the root directory of your
-repostitory.
+repository.
- `semgrep.yml` or `semgrep.yaml`
- `semgrep.config.yml` or `semgrep.config.yaml`
@@ -22,10 +27,12 @@ Semgrep supports the following config files:
project's `.coderabbit.yaml` file or setting the "Review โ Tools โ Semgrep โ
Config File" field in CodeRabbit's settings page.
-Due to licensing, CodeRabbit does not ship with the [community-created Semgrep rules](https://github.com/returntocorp/semgrep-rules), but you're free to use these in your own `semgrep.yml` config file.
+Due to licensing, CodeRabbit does not ship with the [community-created Semgrep rules](https://github.com/returntocorp/semgrep-rules).
:::note
-CodeRabbit will only run Semgrep if your repository contains a Semgrep config file. This config must use the default file names or you must define the path to this file in the `.coderabbit.yaml` or config UI.
+
+CodeRabbit will only run Semgrep if your repository contains a Semgrep config file. This config must use the default file names, or you must define the path to this file in the `.coderabbit.yaml` or config UI.
+
:::
## Links
@@ -35,43 +42,21 @@ CodeRabbit will only run Semgrep if your repository contains a Semgrep config fi
## Files
-Semgrep will run on the following files and extensions:
-
-- `Apex`
-- `Bash`
-- `.c`
-- `.cpp`
-- `.cs`
-- `.clj`
-- `.dart`
-- `Dockerfile`
-- `.ex`
-- `.html`
-- `.go`
-- `.java`
-- `.js`
-- `.jsx`
-- `.json`
-- `.jl`
-- `.jsonnet`
-- `.kt`
-- `.kts`
-- `Lisp`
-- `.lua`
-- `.ml`
-- `.php`
-- `.py`
-- `.r`
-- `.rb`
-- `.rs`
-- `.scala`
-- `Scheme`
-- `.sol`
-- `.swift`
-- `.tf`
-- `.ts`
-- `.tsx`
-- `.yaml`
-- `.xml`
-- `ERB`
-- `Jinja`
+Semgrep will run on the following files types:
+
+- C/C++
+- C#
+- Go
+- Java
+- JavaScript
+- Kotlin
+- Python
+- TypeScript
+- Ruby
+- Rust
+- JSX
+- PHP
+- Scala
+- Swift
+- Terraform
+- JSON
diff --git a/docs/tools/shellcheck.md b/docs/tools/shellcheck.md
index 752e8675..98e2fbba 100644
--- a/docs/tools/shellcheck.md
+++ b/docs/tools/shellcheck.md
@@ -4,6 +4,12 @@ sidebar_label: ShellCheck
description: CodeRabbit's guide to ShellCheck.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[ShellCheck](https://www.shellcheck.net/) is a linter for shell scripts.
## Files
diff --git a/docs/tools/shopify-cli.md b/docs/tools/shopify-cli.md
new file mode 100644
index 00000000..934a6345
--- /dev/null
+++ b/docs/tools/shopify-cli.md
@@ -0,0 +1,56 @@
+---
+title: Shopify CLI
+sidebar_label: Shopify CLI
+description: CodeRabbit's guide to Shopify CLI.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Shopify CLI](https://github.com/Shopify/cli) is a command-line tool that helps you build Shopify apps, themes, and custom storefronts. It provides functionality for initializing, building, developing, and deploying Shopify projects.
+
+## Validation Rules
+
+The tool checks for:
+
+### Theme Validation
+
+- Liquid syntax errors
+- Theme requirements compliance
+- Asset organization
+- Performance best practices
+- Accessibility standards
+
+### App Validation
+
+- App extension configuration
+- Function implementation
+- API version compatibility
+- Security best practices
+
+## Common Issues
+
+The tool helps identify and fix:
+
+1. Theme Issues:
+
+ - Invalid Liquid syntax
+ - Missing required templates
+ - Performance bottlenecks
+ - Accessibility violations
+
+2. App Issues:
+ - Invalid API usage
+ - Missing dependencies
+ - Configuration errors
+ - Security vulnerabilities
+
+## Links
+
+- [Shopify CLI GitHub Repository](https://github.com/Shopify/cli)
+- [Shopify CLI Theme Documentation](https://shopify.dev/docs/api/shopify-cli/theme)
+- [Shopify CLI App Documentation](https://shopify.dev/docs/apps/tools/cli)
+- [Theme Development Requirements](https://shopify.dev/docs/themes/store/requirements)
diff --git a/docs/tools/sqlfluff.md b/docs/tools/sqlfluff.md
new file mode 100644
index 00000000..9eb959f7
--- /dev/null
+++ b/docs/tools/sqlfluff.md
@@ -0,0 +1,41 @@
+---
+title: SQLFluff
+sidebar_label: SQLFluff
+description: CodeRabbit's guide to SQLFluff.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[SQLFluff](https://github.com/sqlfluff/sqlfluff) is a SQL linter and auto-formatter for standardizing SQL code.
+
+## Files
+
+SQLFluff will run on files with the following extensions:
+
+- `.sql`
+
+## Configuration
+
+SQLFluff supports the following config files:
+
+- User-defined config file set at `reviews.tools.sqlfluff.config_file` in your project's `.coderabbit.yaml` file or setting the "Review โ Tools โ SQLFluff โ Config File" field in CodeRabbit's settings page.
+- `setup.cfg`
+- `tox.ini`
+- `pep8.ini`
+- `.sqlfluff`
+- `pyproject.toml`
+
+:::note
+
+CodeRabbit will only run SQLFluff if your repository contains a SQLFluff config file. This config must use one of the default file names listed above, or you must define the path to this file in the `.coderabbit.yaml` or config UI.
+
+:::
+
+## Links
+
+- [SQLFluff Configuration](https://docs.sqlfluff.com/en/stable/configuration.html)
+- [SQLFluff Rules Reference](https://docs.sqlfluff.com/en/stable/rules.html)
diff --git a/docs/tools/swiftlint.md b/docs/tools/swiftlint.md
index 516d99af..c95c2d88 100644
--- a/docs/tools/swiftlint.md
+++ b/docs/tools/swiftlint.md
@@ -4,6 +4,12 @@ sidebar_label: SwiftLint
description: CodeRabbit's guide to SwiftLint.
---
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
[SwiftLint](https://realm.github.io/SwiftLint/) is a linter for Swift.
## Files
@@ -14,7 +20,7 @@ SwiftLint will run on files with the following extensions:
## Configuration
-Ruff supports the following config files:
+SwiftLint supports the following config files:
- User-defined config file set at `reviews.tools.swiftlint.config_file` in your project's `.coderabbit.yaml` file or setting the "Review โ Tools โ SwiftLint โ Config File" field in CodeRabbit's settings page.
- `.swiftlint.yaml`
diff --git a/docs/tools/tools.md b/docs/tools/tools.md
index 3dce7e93..45b376c5 100644
--- a/docs/tools/tools.md
+++ b/docs/tools/tools.md
@@ -1,12 +1,20 @@
---
-title: Supported Tools
-sidebar_label: Supported Tools
+title: Configure third-party tool use
description: Overview of CodeRabbit's supported linters and security analysis tools.
-sidebar_position: 1
---
+This page provides an overview of how CodeRabbit uses third-party open-source tools to deliver its multifaceted code reviews. For a complete list of supported tools, see [Supported tools](/tools/list).
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
CodeRabbit supports various linters and security analysis tools to improve the code review process. The output of these tools is used to enhance the feedback provided by CodeRabbit, making it possible to provide 1-click fixes for common issues.
+All tool runs are done in a secure sandboxed execution environment.
+
## Enabling/Disabling Tools
You can enable or disable tools by setting `reviews.tools..enabled` in your project's `.coderabbit.yaml` file or setting the "Review โ Tools โ Tool โ Enabled" field in CodeRabbit's settings page.
@@ -34,58 +42,6 @@ Remove extraneous f prefix
(F541)
```
-## Supported Tools
-
-| Technology | Tools | Category |
-| :-------------------------- | :--------------------------------------------------------- | :----------------------------- |
-| All | [Gitleaks][Gitleaks] | Code Security |
-| CircleCi | [CircleCi][CircleCi] | Configuration Validation |
-| CloudFormation | [Checkov][Checkov] | Code Security |
-| Cppcheck | [Cppcheck][Cppcheck] | Code Quality |
-| CSS | [Biome][Biome] | Code Quality |
-| Docker | [Hadolint][Hadolint], [Checkov][Checkov] | Code Quality, Code Security |
-| GitHub Actions | [Actionlint][Actionlint] | Code Quality |
-| Go | [golangci-lint][golangci-lint] | Code Quality |
-| Helm | [Checkov][Checkov] | Code Security |
-| Javascript | [Biome][Biome] | Code Quality |
-| JSON, JSONC | [Biome][Biome] | Code Quality |
-| JSX | [Biome][Biome] | Code Quality |
-| Kotlin | [Detekt][Detekt] | Code Quality |
-| Kubernetes | [Checkov][Checkov] | Code Security |
-| Markdown | [Markdownlint][Markdownlint], [LanguageTool][LanguageTool] | Code Quality, Grammar Checking |
-| PHP | [PHPStan][PHPStan] | Code Quality |
-| Plaintext | [LanguageTool][LanguageTool] | Grammar and Spell Checking |
-| Java | [PMD][PMD] | Code Quality |
-| Protobuf | [Buf][Buf] | Code Quality |
-| Python | [Ruff][Ruff] | Code Quality |
-| Regal | [Regal][Regal] | Code Quality |
-| Ruby | [Rubocop][Rubocop] | Code Quality |
-| Semgrep | [Semgrep][Semgrep] | Code Security |
-| Shell (sh, bash, ksh, dash) | [ShellCheck][ShellCheck] | Code Quality |
-| Swift | [SwiftLint][SwiftLint] | Code Quality |
-| Terraform | [Checkov][Checkov] | Code Security |
-| TSX | [Biome][Biome] | Code Quality |
-| Typescript | [Biome][Biome] | Code Quality |
-| YAML | [YamlLint][YamlLint] | Code Quality |
-
-[ShellCheck]: ./shellcheck.md
-[Ruff]: ./ruff.md
-[Markdownlint]: ./markdownlint.md
-[LanguageTool]: ./languagetool.md
-[Biome]: ./biome.md
-[Hadolint]: ./hadolint.md
-[SwiftLint]: ./swiftlint.md
-[PHPStan]: ./phpstan.md
-[golangci-lint]: ./golangci-lint.md
-[YamlLint]: ./yamllint.md
-[Gitleaks]: ./gitleaks.md
-[Checkov]: ./checkov.md
-[Detekt]: ./detekt.md
-[Rubocop]: ./rubocop.md
-[Buf]: ./buf.md
-[Actionlint]: ./actionlint.md
-[Regal]: ./regal.md
-[PMD]: ./pmd.md
-[Cppcheck]: ./cppcheck.md
-[CircleCi]: ./circleci.md
-[Semgrep]: ./semgrep.md
+## What's next
+
+- For a complete list of tools that CodeRabbit supports, see [Supported tools](/tools/list).
diff --git a/docs/tools/yamllint.md b/docs/tools/yamllint.md
index 962a2a78..31649cf0 100644
--- a/docs/tools/yamllint.md
+++ b/docs/tools/yamllint.md
@@ -1,21 +1,27 @@
---
-title: Yamllint
-sidebar_label: Yamllint
-description: CodeRabbit's guide to Yamllint.
+title: YAMLlint
+sidebar_label: YAMLlint
+description: CodeRabbit's guide to YAMLlint.
---
-[Yamllint](https://yamllint.readthedocs.io/en/stable/) is a linter for YAML.
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[YAMLlint](https://yamllint.readthedocs.io/en/stable/) is a linter for YAML.
## Files
-Yamllint will run on files with the following extensions:
+YAMLlint will run on files with the following extensions:
- `.yaml`
- `.yml`
## Configuration
-Yamllint supports the following config files:
+YAMLlint supports the following config files:
- `.yamllint`
- `.yamllint.yaml`
@@ -25,4 +31,4 @@ CodeRabbit will use the default settings based on the profile selected if no con
## Links
-- [Yamllint Configuration](https://yamllint.readthedocs.io/en/stable/configuration.html)
+- [YAMLlint Configuration](https://yamllint.readthedocs.io/en/stable/configuration.html)
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 8254684b..f4cd07ca 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { themes as prismThemes } from "prism-react-renderer"
import { EnumChangefreq } from "sitemap"
@@ -42,7 +58,19 @@ const config: Config = {
redirects: [
{
from: "/get-started",
- to: "/getting-started/configure-coderabbit",
+ to: "/getting-started/quickstart/",
+ },
+ {
+ from: "/about/features",
+ to: "/",
+ },
+ {
+ from: "/about/pricing",
+ to: "/",
+ },
+ {
+ from: "/about/support",
+ to: "/getting-started/support",
},
{
from: "/guides/customize-coderabbit",
@@ -80,6 +108,10 @@ const config: Config = {
from: "/platforms/self-hosted-github",
to: "/platforms/github-enterprise-server",
},
+ {
+ from: "/configure-coderabbit",
+ to: "/getting-started/configure-coderabbit",
+ },
],
},
],
@@ -94,6 +126,48 @@ const config: Config = {
},
}
},
+ [
+ "@inkeep/cxkit-docusaurus",
+ {
+ SearchBar: {
+ baseSettings: {
+ apiKey: process.env.INKEEP_API_KEY,
+ primaryBrandColor: "#FF570A",
+ },
+ aiChatSettings: {
+ chatSubjectName: "CodeRabbit",
+ aiAssistantAvatar: "https://www.coderabbit.ai/favicon.ico",
+ getHelpOptions: [
+ {
+ name: "Discord",
+ icon: {
+ builtIn: "FaDiscord",
+ },
+ action: {
+ type: "open_link",
+ url: "https://discord.gg/coderabbit",
+ },
+ },
+ {
+ name: "Contact Us",
+ icon: {
+ builtIn: "IoChatbubblesOutline",
+ },
+ action: {
+ type: "open_link",
+ url: "https://www.coderabbit.ai/contact-us",
+ },
+ },
+ ],
+ exampleQuestions: [
+ "What is CodeRabbit?",
+ "How to integrate CodeRabbit with GitHub?",
+ "How to set up a AI Code Review?",
+ ],
+ },
+ },
+ },
+ ],
],
presets: [
@@ -180,7 +254,7 @@ const config: Config = {
className: "navbar-link-active",
},
{
- href: "https://blog.coderabbit.ai/blog",
+ href: "https://coderabbit.ai/blog",
label: "Blog",
position: "left",
},
@@ -191,7 +265,7 @@ const config: Config = {
position: "right",
},
{
- href: "https://github.com/coderabbitai",
+ href: "https://github.com/coderabbitai/coderabbit-docs",
className: "github-link",
"aria-label": "GitHub",
position: "right",
diff --git a/package.json b/package.json
index 42ad5773..7c53d492 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
+ "format": "prettier --write .",
"lint": "markdownlint-cli2 \"**/*.md\" && prettier --check .",
"lint:fix": "markdownlint-cli2 \"**/*.md\" --fix; prettier --list-different --write .",
"write-translations": "docusaurus write-translations",
@@ -22,6 +23,7 @@
"@docusaurus/plugin-client-redirects": "^3.6.1",
"@docusaurus/plugin-content-blog": "^3.6.1",
"@docusaurus/preset-classic": "^3.6.1",
+ "@inkeep/cxkit-docusaurus": "^0.5.52",
"@mdx-js/react": "^3.1.0",
"autoprefixer": "^10.4.20",
"clsx": "^2.1.1",
diff --git a/plugins/blog-plugin.js b/plugins/blog-plugin.js
index f847d186..68cc0cc6 100644
--- a/plugins/blog-plugin.js
+++ b/plugins/blog-plugin.js
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
const blogPluginExports = require("@docusaurus/plugin-content-blog")
const defaultBlogPlugin = blogPluginExports.default
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3539e2b0..75704ea5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -20,6 +20,9 @@ importers:
'@docusaurus/preset-classic':
specifier: ^3.6.1
version: 3.6.1(@algolia/client-search@5.14.2)(@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)
+ '@inkeep/cxkit-docusaurus':
+ specifier: ^0.5.52
+ version: 0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mdx-js/react':
specifier: ^3.1.0
version: 3.1.0(@types/react@18.3.12)(react@18.3.1)
@@ -989,12 +992,54 @@ packages:
resolution: {integrity: sha512-nS3WCvepwrnBEgSG5vQu40XG95lC9Jeh/odV5u5IhU1eQFEGDst9xBi6IK5yZdsGvbuaXBZLZtOqWYtuuFa/rQ==}
engines: {node: '>=18.0'}
+ '@floating-ui/core@1.6.9':
+ resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==}
+
+ '@floating-ui/dom@1.6.13':
+ resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==}
+
+ '@floating-ui/react-dom@2.1.2':
+ resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@floating-ui/utils@0.2.9':
+ resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
+
'@hapi/hoek@9.3.0':
resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
'@hapi/topo@5.1.0':
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
+ '@inkeep/cxkit-color-mode@0.5.52':
+ resolution: {integrity: sha512-Mm9ax+2yP+T4F9ICP2eQqqpnm1BaiVUbmuhOF3oNOEQVR8X9sENeSU6X6JIJnFKtVSXYb/AMRe1U4/c5wJzvww==}
+
+ '@inkeep/cxkit-docusaurus@0.5.52':
+ resolution: {integrity: sha512-Mv89214Gt0qe2djAHKpzCu1SQlpQ+dj4tqSFKNO4w5f54qRdLgaQ4Av1LFC2d3PRV1rp4KA6XNjiNC/z2PrP2w==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@inkeep/cxkit-primitives@0.5.52':
+ resolution: {integrity: sha512-xq5ZGC8RX9qhelIbAvRM3EN7cFuwjYUERsoH6cwgyjtk5PnN3HoChlxuA18x1v9mqp8Bv3/lu4Bz0TDNUdiSxQ==}
+ peerDependencies:
+ react: '>=17.0.0'
+ react-dom: '>=17.0.0'
+
+ '@inkeep/cxkit-react@0.5.52':
+ resolution: {integrity: sha512-kNa+cvjH/JrWHVTh9DcYTgX/J6J4h2tyOh7FvK41zvbdKuAOarzQGWJMLvmAsDm4Z4tmPe104Yvm3nrmsrfTOA==}
+
+ '@inkeep/cxkit-styled@0.5.52':
+ resolution: {integrity: sha512-QLtJJ+/ufNG3PqrSMfwHSKWwOhnB4i0qOhsrNiAyNcOtQ5fMZdaAlShAjHDH2ye68sfw2tsyEBxXgZuxHji9dw==}
+
+ '@inkeep/cxkit-theme@0.5.52':
+ resolution: {integrity: sha512-2MWJc+J2n1d4gWkB3A+g4ZSmWxvi/nqxAgEOquiDDWWTrTWCEI8uk8MsWubtCBa73aEOa/tMTKiGYGjbdSCpgw==}
+
+ '@inkeep/cxkit-types@0.5.52':
+ resolution: {integrity: sha512-2AwsCpeB37wU8I+uhMsP2wFu/8goodgTvqL/V/QIaTGDBw62E1qsA6kjt+5V7rzkLzR658aSUOtL9D1G9zc31Q==}
+
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
@@ -1071,6 +1116,466 @@ packages:
'@polka/url@1.0.0-next.28':
resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
+ '@radix-ui/number@1.1.0':
+ resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==}
+
+ '@radix-ui/primitive@1.1.1':
+ resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==}
+
+ '@radix-ui/react-arrow@1.1.1':
+ resolution: {integrity: sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-arrow@1.1.2':
+ resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-avatar@1.1.2':
+ resolution: {integrity: sha512-GaC7bXQZ5VgZvVvsJ5mu/AEbjYLnhhkoidOboC50Z6FFlLA03wG2ianUoH+zgDQ31/9gCF59bE4+2bBgTyMiig==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-checkbox@1.1.3':
+ resolution: {integrity: sha512-HD7/ocp8f1B3e6OHygH0n7ZKjONkhciy1Nh0yuBgObqThc3oyx+vuMfFHKAknXRHHWVE9XvXStxJFyjUmB8PIw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-collection@1.1.1':
+ resolution: {integrity: sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-collection@1.1.2':
+ resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-compose-refs@1.1.1':
+ resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-context@1.1.1':
+ resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-direction@1.1.0':
+ resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.3':
+ resolution: {integrity: sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.5':
+ resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-focus-guards@1.1.1':
+ resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-focus-scope@1.1.2':
+ resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-hover-card@1.1.6':
+ resolution: {integrity: sha512-E4ozl35jq0VRlrdc4dhHrNSV0JqBb4Jy73WAhBEK7JoYnQ83ED5r0Rb/XdVKw89ReAJN38N492BAPBZQ57VmqQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-id@1.1.0':
+ resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-popover@1.1.6':
+ resolution: {integrity: sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popper@1.2.1':
+ resolution: {integrity: sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popper@1.2.2':
+ resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-portal@1.1.3':
+ resolution: {integrity: sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-portal@1.1.4':
+ resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-presence@1.1.2':
+ resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.0.1':
+ resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.0.2':
+ resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-roving-focus@1.1.1':
+ resolution: {integrity: sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-scroll-area@1.2.2':
+ resolution: {integrity: sha512-EFI1N/S3YxZEW/lJ/H1jY3njlvTd8tBmgKEn4GHi51+aMm94i6NmAJstsm5cu3yJwYqYc93gpCPm21FeAbFk6g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-select@2.1.6':
+ resolution: {integrity: sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-slot@1.1.1':
+ resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-slot@1.1.2':
+ resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-tabs@1.1.2':
+ resolution: {integrity: sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-tooltip@1.1.6':
+ resolution: {integrity: sha512-TLB5D8QLExS1uDn7+wH/bjEmRurNMTzNrtq7IjaS4kjion9NtzsTGkvR5+i7yc9q01Pi2KMM2cN3f8UG4IvvXA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-use-callback-ref@1.1.0':
+ resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-controllable-state@1.1.0':
+ resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-escape-keydown@1.1.0':
+ resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-layout-effect@1.1.0':
+ resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-previous@1.1.0':
+ resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-rect@1.1.0':
+ resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-size@1.1.0':
+ resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-visually-hidden@1.1.1':
+ resolution: {integrity: sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-visually-hidden@1.1.2':
+ resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/rect@1.1.0':
+ resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
+
'@sideway/address@4.1.5':
resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
@@ -1200,6 +1705,9 @@ packages:
resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
engines: {node: '>=14.16'}
+ '@tanem/svg-injector@10.1.68':
+ resolution: {integrity: sha512-UkJajeR44u73ujtr5GVSbIlELDWD/mzjqWe54YMK61ljKxFcJoPd9RBSaO7xj02ISCWUqJW99GjrS+sVF0UnrA==}
+
'@trysound/sax@0.2.0':
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
@@ -1291,12 +1799,18 @@ packages:
'@types/ms@0.7.34':
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
+ '@types/node-fetch@2.6.12':
+ resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==}
+
'@types/node-forge@1.3.11':
resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
'@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
+ '@types/node@18.19.86':
+ resolution: {integrity: sha512-fifKayi175wLyKyc5qUfyENhQ1dCNI1UNjp653d8kuYcPQN5JhX3dGuP/XmvPTg/xRBn1VTLpbmi+H/Mr7tLfQ==}
+
'@types/node@22.9.0':
resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==}
@@ -1309,6 +1823,9 @@ packages:
'@types/prop-types@15.7.13':
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
+ '@types/prop-types@15.7.14':
+ resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
+
'@types/qs@6.9.17':
resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==}
@@ -1417,6 +1934,19 @@ packages:
'@xtuc/long@4.2.2':
resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+ '@zag-js/dom-query@1.8.2':
+ resolution: {integrity: sha512-bn6Pxga19PJzpDb+Oh326kn1sgVfO97mxRzRFqzrKz9NuANGlCblmv2NTYmhfppqE1nt9QyLLhyQ2BLbzwouLg==}
+
+ '@zag-js/focus-trap@1.8.2':
+ resolution: {integrity: sha512-GzKdicdiVjlOOsNzmmRAZVccs902PXnoyO+qkzXlIsr8+RPRgtPlZthIp6wtr4CJ2vLOMByvrEt7wCNSIoDzxA==}
+
+ '@zag-js/types@1.8.2':
+ resolution: {integrity: sha512-J+94HhFAPOBchNdGcmvqjB8nbQFgKHcqGoPl5vNTKlcoibN0yFjn4XFZoQU6uCf8sPhNg6NUNTkluR5YjybyJA==}
+
+ abort-controller@3.0.0:
+ resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
+ engines: {node: '>=6.5'}
+
accepts@1.3.8:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
@@ -1442,6 +1972,10 @@ packages:
resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
engines: {node: '>= 10.0.0'}
+ agentkeepalive@4.6.0:
+ resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
+ engines: {node: '>= 8.0.0'}
+
aggregate-error@3.1.0:
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
engines: {node: '>=8'}
@@ -1482,6 +2016,9 @@ packages:
resolution: {integrity: sha512-aYjI4WLamMxbhdJ2QAA99VbDCJOGzMOdT2agh57bi40n86ufkhZSIAf6mkocr7NmtBLtwCnSHvD5NJ+Ky5elWw==}
engines: {node: '>= 14.0.0'}
+ altcha-lib@1.2.0:
+ resolution: {integrity: sha512-S5WF8QLNRaM1hvK24XPhOLfu9is2EBCvH7+nv50sM5CaIdUCqQCd0WV/qm/ZZFGTdSoKLuDp+IapZxBLvC+SNg==}
+
ansi-align@3.0.1:
resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
@@ -1526,6 +2063,10 @@ packages:
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ aria-hidden@1.2.4:
+ resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
+ engines: {node: '>=10'}
+
array-flatten@1.1.1:
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
@@ -1537,6 +2078,9 @@ packages:
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
hasBin: true
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
at-least-node@1.0.0:
resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
engines: {node: '>= 4.0.0'}
@@ -1641,6 +2185,10 @@ packages:
resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
engines: {node: '>=14.16'}
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
call-bind@1.0.7:
resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
engines: {node: '>= 0.4'}
@@ -1716,6 +2264,9 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
+ class-variance-authority@0.7.1:
+ resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
+
clean-css@5.3.3:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
@@ -1756,10 +2307,17 @@ packages:
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+ colorjs.io@0.5.2:
+ resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==}
+
combine-promises@1.2.0:
resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
engines: {node: '>=10'}
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
@@ -2036,6 +2594,10 @@ packages:
resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
engines: {node: '>=10'}
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
depd@1.1.2:
resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
engines: {node: '>= 0.6'}
@@ -2056,6 +2618,9 @@ packages:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+ detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+
detect-node@2.1.0:
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
@@ -2135,6 +2700,10 @@ packages:
resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
engines: {node: '>=10'}
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
@@ -2189,6 +2758,10 @@ packages:
resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
engines: {node: '>= 0.4'}
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
es-errors@1.3.0:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
@@ -2196,6 +2769,14 @@ packages:
es-module-lexer@1.5.4:
resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
+ es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
esast-util-from-estree@2.0.0:
resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==}
@@ -2286,6 +2867,10 @@ packages:
resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
engines: {node: '>= 0.8'}
+ event-target-shim@5.0.1:
+ resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
+ engines: {node: '>=6'}
+
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
@@ -2407,14 +2992,25 @@ packages:
vue-template-compiler:
optional: true
+ form-data-encoder@1.7.2:
+ resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==}
+
form-data-encoder@2.1.4:
resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
engines: {node: '>= 14.17'}
+ form-data@4.0.2:
+ resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
+ engines: {node: '>= 6'}
+
format@0.2.2:
resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
engines: {node: '>=0.4.x'}
+ formdata-node@4.4.1:
+ resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
+ engines: {node: '>= 12.20'}
+
forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
@@ -2456,9 +3052,21 @@ packages:
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
engines: {node: '>= 0.4'}
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-nonce@1.0.1:
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
+ engines: {node: '>=6'}
+
get-own-enumerable-property-symbols@3.0.2:
resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
@@ -2516,6 +3124,10 @@ packages:
gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
got@12.6.1:
resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
engines: {node: '>=14.16'}
@@ -2552,6 +3164,14 @@ packages:
resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
engines: {node: '>= 0.4'}
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
has-yarn@3.0.0:
resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2617,6 +3237,9 @@ packages:
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
engines: {node: '>=8'}
+ html-url-attributes@3.0.1:
+ resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==}
+
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
@@ -2676,6 +3299,12 @@ packages:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'}
+ humanize-ms@1.2.1:
+ resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
+
+ humps@2.0.1:
+ resolution: {integrity: sha512-E0eIbrFWUhwfXJmsbdjRQFQPrl5pTEoKlz163j1mTqqUnU9PgR4AgB8AIITzuB3vLBdxZXyZ9TDIrwB2OASz4g==}
+
iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
@@ -2859,6 +3488,10 @@ packages:
is-typedarray@1.0.0:
resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
+ is-what@4.1.16:
+ resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
+ engines: {node: '>=12.13'}
+
is-wsl@2.2.0:
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
engines: {node: '>=8'}
@@ -3074,6 +3707,10 @@ packages:
resolution: {integrity: sha512-s73fU2CQN7WCgjhaQUQ8wYESQNzGRNOKDd+3xgVqu8kuTEhmwepd/mxOv1LR2oV046ONrTLBFsM7IoKWNvmy5g==}
engines: {node: '>=18'}
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
mdast-util-directive@3.0.0:
resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
@@ -3145,6 +3782,10 @@ packages:
resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
engines: {node: '>= 4.0.0'}
+ merge-anything@5.1.7:
+ resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==}
+ engines: {node: '>=12.13'}
+
merge-descriptors@1.0.3:
resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
@@ -3391,10 +4032,23 @@ packages:
no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ node-domexception@1.0.0:
+ resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
+ engines: {node: '>=10.5.0'}
+
node-emoji@2.1.3:
resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
engines: {node: '>=18'}
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
node-forge@1.3.1:
resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
engines: {node: '>= 6.13.0'}
@@ -3472,6 +4126,15 @@ packages:
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
engines: {node: '>=12'}
+ openai@4.78.1:
+ resolution: {integrity: sha512-drt0lHZBd2lMyORckOXFPQTmnGLWSLt8VK0W9BhOKWpMFBEoHMoz5gxMPmVq5icp+sOrsbMnsmZTVHUlKvD1Ow==}
+ hasBin: true
+ peerDependencies:
+ zod: ^3.23.8
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
opener@1.5.2:
resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
hasBin: true
@@ -3600,6 +4263,9 @@ packages:
resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
engines: {node: '>=12'}
+ path@0.12.7:
+ resolution: {integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==}
+
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -3908,6 +4574,11 @@ packages:
peerDependencies:
react: '>=16.0.0'
+ prism-react-renderer@2.4.1:
+ resolution: {integrity: sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==}
+ peerDependencies:
+ react: '>=16.0.0'
+
prismjs@1.29.0:
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
engines: {node: '>=6'}
@@ -3915,6 +4586,10 @@ packages:
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+
prompts@2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
@@ -4015,6 +4690,17 @@ packages:
peerDependencies:
react: ^16.6.0 || ^17.0.0 || ^18.0.0
+ react-hook-form@7.54.2:
+ resolution: {integrity: sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^16.8.0 || ^17 || ^18 || ^19
+
+ react-icons@5.4.0:
+ resolution: {integrity: sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==}
+ peerDependencies:
+ react: '*'
+
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -4031,6 +4717,12 @@ packages:
react-loadable: '*'
webpack: '>=4.41.1 || 5.x'
+ react-markdown@9.0.3:
+ resolution: {integrity: sha512-Yk7Z94dbgYTOrdk41Z74GoKA7rThnsbbqBTRYuxoe08qvfQ9tJVhmAKw6BJS/ZORG7kTy/s1QvYzSuaoBA1qfw==}
+ peerDependencies:
+ '@types/react': '>=18'
+ react: '>=18'
+
react-monaco-editor@0.55.0:
resolution: {integrity: sha512-GdEP0Q3Rn1dczfKEEyY08Nes5plWwIYU4sWRBQO0+jsQWQsKMHKCC6+hPRwR7G/4aA3V/iU9jSmWPzVJYMVFSQ==}
peerDependencies:
@@ -4038,6 +4730,26 @@ packages:
monaco-editor: ^0.44.0
react: '>=16 <= 18'
+ react-remove-scroll-bar@2.3.8:
+ resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-remove-scroll@2.6.3:
+ resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
react-router-config@5.1.1:
resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
peerDependencies:
@@ -4054,6 +4766,28 @@ packages:
peerDependencies:
react: '>=15'
+ react-style-singleton@2.2.3:
+ resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-svg@16.3.0:
+ resolution: {integrity: sha512-MvoQbITgkmpPJYwDTNdiUyoncJFfoa0D86WzoZuMQ9c/ORJURPR6rPMnXDsLOWDCAyXuV9nKZhQhGyP0HZ0MVQ==}
+ peerDependencies:
+ react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ react-textarea-autosize@8.5.7:
+ resolution: {integrity: sha512-2MqJ3p0Jh69yt9ktFIaZmORHXw4c4bxSIhCeWiFwmJ9EYKgLmuNII3e9c9b2UO+ijl4StnpZdqpxNIhTdHvqtQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -4150,6 +4884,9 @@ packages:
remark-gfm@4.0.0:
resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
+ remark-gfm@4.0.1:
+ resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
+
remark-mdx@3.1.0:
resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==}
@@ -4508,6 +5245,9 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
+ tailwind-merge@2.6.0:
+ resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==}
+
tailwindcss@3.4.15:
resolution: {integrity: sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==}
engines: {node: '>=14.0.0'}
@@ -4573,6 +5313,9 @@ packages:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
@@ -4612,6 +5355,9 @@ packages:
uc.micro@2.1.0:
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
+ undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+
undici-types@6.19.8:
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
@@ -4685,22 +5431,77 @@ packages:
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
- urijs@1.19.11:
- resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==}
+ urijs@1.19.11:
+ resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==}
+
+ url-loader@4.1.1:
+ resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ file-loader: '*'
+ webpack: ^4.0.0 || ^5.0.0
+ peerDependenciesMeta:
+ file-loader:
+ optional: true
+
+ use-callback-ref@1.3.3:
+ resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-composed-ref@1.4.0:
+ resolution: {integrity: sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-isomorphic-layout-effect@1.2.0:
+ resolution: {integrity: sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-latest@1.3.0:
+ resolution: {integrity: sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
- url-loader@4.1.1:
- resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
- engines: {node: '>= 10.13.0'}
+ use-sidecar@1.1.3:
+ resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
+ engines: {node: '>=10'}
peerDependencies:
- file-loader: '*'
- webpack: ^4.0.0 || ^5.0.0
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta:
- file-loader:
+ '@types/react':
optional: true
+ use-sync-external-store@1.5.0:
+ resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ util@0.10.4:
+ resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==}
+
utila@0.4.0:
resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
@@ -4742,6 +5543,13 @@ packages:
web-namespaces@2.0.1:
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
+ web-streams-polyfill@4.0.0-beta.3:
+ resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
+ engines: {node: '>= 14'}
+
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
webpack-bundle-analyzer@4.10.2:
resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==}
engines: {node: '>= 10.13.0'}
@@ -4802,6 +5610,9 @@ packages:
resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
engines: {node: '>=0.8.0'}
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
which@1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
hasBin: true
@@ -6636,12 +7447,133 @@ snapshots:
- uglify-js
- webpack-cli
+ '@floating-ui/core@1.6.9':
+ dependencies:
+ '@floating-ui/utils': 0.2.9
+
+ '@floating-ui/dom@1.6.13':
+ dependencies:
+ '@floating-ui/core': 1.6.9
+ '@floating-ui/utils': 0.2.9
+
+ '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/dom': 1.6.13
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@floating-ui/utils@0.2.9': {}
+
'@hapi/hoek@9.3.0': {}
'@hapi/topo@5.1.0':
dependencies:
'@hapi/hoek': 9.3.0
+ '@inkeep/cxkit-color-mode@0.5.52': {}
+
+ '@inkeep/cxkit-docusaurus@0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@inkeep/cxkit-react': 0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ merge-anything: 5.1.7
+ path: 0.12.7
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - encoding
+ - supports-color
+ - zod
+
+ '@inkeep/cxkit-primitives@0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@inkeep/cxkit-color-mode': 0.5.52
+ '@inkeep/cxkit-theme': 0.5.52
+ '@inkeep/cxkit-types': 0.5.52
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-avatar': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-checkbox': 1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-hover-card': 1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popover': 1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-scroll-area': 1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-select': 2.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-tabs': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-tooltip': 1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@zag-js/focus-trap': 1.8.2
+ altcha-lib: 1.2.0
+ aria-hidden: 1.2.4
+ dequal: 2.0.3
+ humps: 2.0.1
+ merge-anything: 5.1.7
+ openai: 4.78.1
+ prism-react-renderer: 2.4.1(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-hook-form: 7.54.2(react@18.3.1)
+ react-icons: 5.4.0(react@18.3.1)
+ react-markdown: 9.0.3(@types/react@18.3.12)(react@18.3.1)
+ react-remove-scroll: 2.6.3(@types/react@18.3.12)(react@18.3.1)
+ react-svg: 16.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-textarea-autosize: 8.5.7(@types/react@18.3.12)(react@18.3.1)
+ rehype-raw: 7.0.0
+ remark-gfm: 4.0.1
+ unist-util-visit: 5.0.0
+ use-sync-external-store: 1.5.0(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - encoding
+ - supports-color
+ - zod
+
+ '@inkeep/cxkit-react@0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@inkeep/cxkit-styled': 0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - encoding
+ - react
+ - react-dom
+ - supports-color
+ - zod
+
+ '@inkeep/cxkit-styled@0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@inkeep/cxkit-primitives': 0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ class-variance-authority: 0.7.1
+ clsx: 2.1.1
+ merge-anything: 5.1.7
+ tailwind-merge: 2.6.0
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - encoding
+ - react
+ - react-dom
+ - supports-color
+ - zod
+
+ '@inkeep/cxkit-theme@0.5.52':
+ dependencies:
+ colorjs.io: 0.5.2
+
+ '@inkeep/cxkit-types@0.5.52': {}
+
'@isaacs/cliui@8.0.2':
dependencies:
string-width: 5.1.2
@@ -6718,40 +7650,460 @@ snapshots:
- acorn
- supports-color
- '@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1)':
+ '@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@types/mdx': 2.0.13
+ '@types/react': 18.3.12
+ react: 18.3.1
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.17.1
+
+ '@pkgjs/parseargs@0.11.0':
+ optional: true
+
+ '@pnpm/config.env-replace@1.1.0': {}
+
+ '@pnpm/network.ca-file@1.0.2':
+ dependencies:
+ graceful-fs: 4.2.10
+
+ '@pnpm/npm-conf@2.3.1':
+ dependencies:
+ '@pnpm/config.env-replace': 1.1.0
+ '@pnpm/network.ca-file': 1.0.2
+ config-chain: 1.1.13
+
+ '@polka/url@1.0.0-next.28': {}
+
+ '@radix-ui/number@1.1.0': {}
+
+ '@radix-ui/primitive@1.1.1': {}
+
+ '@radix-ui/react-arrow@1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-arrow@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-avatar@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-checkbox@1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-collection@1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-collection@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-context@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-direction@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-dismissable-layer@1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-dismissable-layer@1.1.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-focus-scope@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-hover-card@1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-id@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-popover@1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.6.3(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-popper@1.2.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-arrow': 1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-popper@1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-arrow': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-portal@1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-portal@1.1.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-presence@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-primitive@2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-primitive@2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-roving-focus@1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-collection': 1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-scroll-area@1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/number': 1.1.0
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-select@2.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/number': 1.1.0
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-collection': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.6.3(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-slot@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-slot@1.1.2(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-tabs@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@types/mdx': 2.0.13
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-roving-focus': 1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
'@types/react': 18.3.12
+
+ '@radix-ui/react-tooltip@1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@nodelib/fs.scandir@2.1.5':
+ '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.12)(react@18.3.1)':
dependencies:
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@nodelib/fs.stat@2.0.5': {}
+ '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@nodelib/fs.walk@1.2.8':
+ '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.12)(react@18.3.1)':
dependencies:
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.17.1
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@pkgjs/parseargs@0.11.0':
- optional: true
+ '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@pnpm/config.env-replace@1.1.0': {}
+ '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@pnpm/network.ca-file@1.0.2':
+ '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.12)(react@18.3.1)':
dependencies:
- graceful-fs: 4.2.10
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@pnpm/npm-conf@2.3.1':
+ '@radix-ui/react-use-size@1.1.0(@types/react@18.3.12)(react@18.3.1)':
dependencies:
- '@pnpm/config.env-replace': 1.1.0
- '@pnpm/network.ca-file': 1.0.2
- config-chain: 1.1.13
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@polka/url@1.0.0-next.28': {}
+ '@radix-ui/react-visually-hidden@1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-visually-hidden@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/rect@1.1.0': {}
'@sideway/address@4.1.5':
dependencies:
@@ -6903,6 +8255,12 @@ snapshots:
dependencies:
defer-to-connect: 2.0.1
+ '@tanem/svg-injector@10.1.68':
+ dependencies:
+ '@babel/runtime': 7.26.0
+ content-type: 1.0.5
+ tslib: 2.8.1
+
'@trysound/sax@0.2.0': {}
'@types/acorn@4.0.6':
@@ -7010,12 +8368,21 @@ snapshots:
'@types/ms@0.7.34': {}
+ '@types/node-fetch@2.6.12':
+ dependencies:
+ '@types/node': 22.9.0
+ form-data: 4.0.2
+
'@types/node-forge@1.3.11':
dependencies:
'@types/node': 22.9.0
'@types/node@17.0.45': {}
+ '@types/node@18.19.86':
+ dependencies:
+ undici-types: 5.26.5
+
'@types/node@22.9.0':
dependencies:
undici-types: 6.19.8
@@ -7026,6 +8393,8 @@ snapshots:
'@types/prop-types@15.7.13': {}
+ '@types/prop-types@15.7.14': {}
+
'@types/qs@6.9.17': {}
'@types/range-parser@1.2.7': {}
@@ -7175,6 +8544,22 @@ snapshots:
'@xtuc/long@4.2.2': {}
+ '@zag-js/dom-query@1.8.2':
+ dependencies:
+ '@zag-js/types': 1.8.2
+
+ '@zag-js/focus-trap@1.8.2':
+ dependencies:
+ '@zag-js/dom-query': 1.8.2
+
+ '@zag-js/types@1.8.2':
+ dependencies:
+ csstype: 3.1.3
+
+ abort-controller@3.0.0:
+ dependencies:
+ event-target-shim: 5.0.1
+
accepts@1.3.8:
dependencies:
mime-types: 2.1.35
@@ -7194,6 +8579,10 @@ snapshots:
address@1.2.2: {}
+ agentkeepalive@4.6.0:
+ dependencies:
+ humanize-ms: 1.2.1
+
aggregate-error@3.1.0:
dependencies:
clean-stack: 2.2.0
@@ -7265,6 +8654,8 @@ snapshots:
'@algolia/requester-fetch': 5.14.2
'@algolia/requester-node-http': 5.14.2
+ altcha-lib@1.2.0: {}
+
ansi-align@3.0.1:
dependencies:
string-width: 4.2.3
@@ -7300,12 +8691,18 @@ snapshots:
argparse@2.0.1: {}
+ aria-hidden@1.2.4:
+ dependencies:
+ tslib: 2.8.1
+
array-flatten@1.1.1: {}
array-union@2.1.0: {}
astring@1.9.0: {}
+ asynckit@0.4.0: {}
+
at-least-node@1.0.0: {}
autoprefixer@10.4.20(postcss@8.4.49):
@@ -7447,6 +8844,11 @@ snapshots:
normalize-url: 8.0.1
responselike: 3.0.0
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
call-bind@1.0.7:
dependencies:
es-define-property: 1.0.0
@@ -7531,6 +8933,10 @@ snapshots:
ci-info@3.9.0: {}
+ class-variance-authority@0.7.1:
+ dependencies:
+ clsx: 2.1.1
+
clean-css@5.3.3:
dependencies:
source-map: 0.6.1
@@ -7565,8 +8971,14 @@ snapshots:
colorette@2.0.20: {}
+ colorjs.io@0.5.2: {}
+
combine-promises@1.2.0: {}
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
comma-separated-tokens@2.0.3: {}
commander@10.0.1: {}
@@ -7854,6 +9266,8 @@ snapshots:
rimraf: 3.0.2
slash: 3.0.0
+ delayed-stream@1.0.0: {}
+
depd@1.1.2: {}
depd@2.0.0: {}
@@ -7864,6 +9278,8 @@ snapshots:
destroy@1.2.0: {}
+ detect-node-es@1.1.0: {}
+
detect-node@2.1.0: {}
detect-port-alt@1.1.6:
@@ -7963,6 +9379,12 @@ snapshots:
dependencies:
is-obj: 2.0.0
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
duplexer@0.1.2: {}
eastasianwidth@0.2.0: {}
@@ -8002,10 +9424,23 @@ snapshots:
dependencies:
get-intrinsic: 1.2.4
+ es-define-property@1.0.1: {}
+
es-errors@1.3.0: {}
es-module-lexer@1.5.4: {}
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
esast-util-from-estree@2.0.0:
dependencies:
'@types/estree-jsx': 1.0.5
@@ -8095,6 +9530,8 @@ snapshots:
'@types/node': 22.9.0
require-like: 0.1.2
+ event-target-shim@5.0.1: {}
+
eventemitter3@4.0.7: {}
events@3.3.0: {}
@@ -8259,10 +9696,24 @@ snapshots:
typescript: 5.6.3
webpack: 5.96.1
+ form-data-encoder@1.7.2: {}
+
form-data-encoder@2.1.4: {}
+ form-data@4.0.2:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ mime-types: 2.1.35
+
format@0.2.2: {}
+ formdata-node@4.4.1:
+ dependencies:
+ node-domexception: 1.0.0
+ web-streams-polyfill: 4.0.0-beta.3
+
forwarded@0.2.0: {}
fraction.js@4.3.7: {}
@@ -8301,8 +9752,28 @@ snapshots:
has-symbols: 1.0.3
hasown: 2.0.2
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-nonce@1.0.1: {}
+
get-own-enumerable-property-symbols@3.0.2: {}
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
get-stream@6.0.1: {}
github-slugger@1.5.0: {}
@@ -8381,6 +9852,8 @@ snapshots:
dependencies:
get-intrinsic: 1.2.4
+ gopd@1.2.0: {}
+
got@12.6.1:
dependencies:
'@sindresorhus/is': 5.6.0
@@ -8422,6 +9895,12 @@ snapshots:
has-symbols@1.0.3: {}
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.0.3
+
has-yarn@3.0.0: {}
hasown@2.0.2:
@@ -8570,6 +10049,8 @@ snapshots:
html-tags@3.3.1: {}
+ html-url-attributes@3.0.1: {}
+
html-void-elements@3.0.0: {}
html-webpack-plugin@5.6.3(webpack@5.96.1):
@@ -8644,6 +10125,12 @@ snapshots:
human-signals@2.1.0: {}
+ humanize-ms@1.2.1:
+ dependencies:
+ ms: 2.1.3
+
+ humps@2.0.1: {}
+
iconv-lite@0.4.24:
dependencies:
safer-buffer: 2.1.2
@@ -8770,6 +10257,8 @@ snapshots:
is-typedarray@1.0.0: {}
+ is-what@4.1.16: {}
+
is-wsl@2.2.0:
dependencies:
is-docker: 2.2.1
@@ -8974,6 +10463,8 @@ snapshots:
markdown-it: 14.1.0
markdownlint-micromark: 0.1.12
+ math-intrinsics@1.1.0: {}
+
mdast-util-directive@3.0.0:
dependencies:
'@types/mdast': 4.0.4
@@ -9173,6 +10664,10 @@ snapshots:
dependencies:
fs-monkey: 1.0.6
+ merge-anything@5.1.7:
+ dependencies:
+ is-what: 4.1.16
+
merge-descriptors@1.0.3: {}
merge-stream@2.0.0: {}
@@ -9563,6 +11058,8 @@ snapshots:
lower-case: 2.0.2
tslib: 2.8.1
+ node-domexception@1.0.0: {}
+
node-emoji@2.1.3:
dependencies:
'@sindresorhus/is': 4.6.0
@@ -9570,6 +11067,10 @@ snapshots:
emojilib: 2.4.0
skin-tone: 2.0.0
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
node-forge@1.3.1: {}
node-releases@2.0.18: {}
@@ -9633,6 +11134,18 @@ snapshots:
is-docker: 2.2.1
is-wsl: 2.2.0
+ openai@4.78.1:
+ dependencies:
+ '@types/node': 18.19.86
+ '@types/node-fetch': 2.6.12
+ abort-controller: 3.0.0
+ agentkeepalive: 4.6.0
+ form-data-encoder: 1.7.2
+ formdata-node: 4.4.1
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+
opener@1.5.2: {}
p-cancelable@3.0.0: {}
@@ -9757,6 +11270,11 @@ snapshots:
path-type@5.0.0: {}
+ path@0.12.7:
+ dependencies:
+ process: 0.11.10
+ util: 0.10.4
+
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -10033,10 +11551,18 @@ snapshots:
clsx: 2.1.1
react: 18.3.1
+ prism-react-renderer@2.4.1(react@18.3.1):
+ dependencies:
+ '@types/prismjs': 1.26.5
+ clsx: 2.1.1
+ react: 18.3.1
+
prismjs@1.29.0: {}
process-nextick-args@2.0.1: {}
+ process@0.11.10: {}
+
prompts@2.4.2:
dependencies:
kleur: 3.0.3
@@ -10170,6 +11696,14 @@ snapshots:
react-fast-compare: 3.2.2
shallowequal: 1.1.0
+ react-hook-form@7.54.2(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ react-icons@5.4.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
react-is@16.13.1: {}
react-json-view-lite@1.5.0(react@18.3.1):
@@ -10182,6 +11716,23 @@ snapshots:
react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)'
webpack: 5.96.1
+ react-markdown@9.0.3(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/react': 18.3.12
+ devlop: 1.1.0
+ hast-util-to-jsx-runtime: 2.3.2
+ html-url-attributes: 3.0.1
+ mdast-util-to-hast: 13.2.0
+ react: 18.3.1
+ remark-parse: 11.0.0
+ remark-rehype: 11.1.1
+ unified: 11.0.5
+ unist-util-visit: 5.0.0
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
react-monaco-editor@0.55.0(@types/react@18.3.12)(monaco-editor@0.44.0)(react@18.3.1):
dependencies:
'@types/react': 18.3.12
@@ -10189,6 +11740,25 @@ snapshots:
prop-types: 15.8.1
react: 18.3.1
+ react-remove-scroll-bar@2.3.8(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-style-singleton: 2.2.3(@types/react@18.3.12)(react@18.3.1)
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ react-remove-scroll@2.6.3(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-remove-scroll-bar: 2.3.8(@types/react@18.3.12)(react@18.3.1)
+ react-style-singleton: 2.2.3(@types/react@18.3.12)(react@18.3.1)
+ tslib: 2.8.1
+ use-callback-ref: 1.3.3(@types/react@18.3.12)(react@18.3.1)
+ use-sidecar: 1.1.3(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
react-router-config@5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1):
dependencies:
'@babel/runtime': 7.26.0
@@ -10219,6 +11789,32 @@ snapshots:
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
+ react-style-singleton@2.2.3(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ get-nonce: 1.0.1
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ react-svg@16.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.26.0
+ '@tanem/svg-injector': 10.1.68
+ '@types/prop-types': 15.7.14
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-textarea-autosize@8.5.7(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.26.0
+ react: 18.3.1
+ use-composed-ref: 1.4.0(@types/react@18.3.12)(react@18.3.1)
+ use-latest: 1.3.0(@types/react@18.3.12)(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -10375,6 +11971,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ remark-gfm@4.0.1:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-gfm: 3.0.0
+ micromark-extension-gfm: 3.0.0
+ remark-parse: 11.0.0
+ remark-stringify: 11.0.0
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - supports-color
+
remark-mdx@3.1.0:
dependencies:
mdast-util-mdx: 3.0.0
@@ -10792,6 +12399,8 @@ snapshots:
csso: 5.0.5
picocolors: 1.1.1
+ tailwind-merge@2.6.0: {}
+
tailwindcss@3.4.15:
dependencies:
'@alloc/quick-lru': 5.2.0
@@ -10863,6 +12472,8 @@ snapshots:
totalist@3.0.1: {}
+ tr46@0.0.3: {}
+
trim-lines@3.0.1: {}
trough@2.2.0: {}
@@ -10890,6 +12501,8 @@ snapshots:
uc.micro@2.1.0: {}
+ undici-types@5.26.5: {}
+
undici-types@6.19.8: {}
unicode-canonical-property-names-ecmascript@2.0.1: {}
@@ -10990,8 +12603,50 @@ snapshots:
optionalDependencies:
file-loader: 6.2.0(webpack@5.96.1)
+ use-callback-ref@1.3.3(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-composed-ref@1.4.0(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-isomorphic-layout-effect@1.2.0(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-latest@1.3.0(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ use-isomorphic-layout-effect: 1.2.0(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-sidecar@1.1.3(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-sync-external-store@1.5.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
util-deprecate@1.0.2: {}
+ util@0.10.4:
+ dependencies:
+ inherits: 2.0.3
+
utila@0.4.0: {}
utility-types@3.11.0: {}
@@ -11030,6 +12685,10 @@ snapshots:
web-namespaces@2.0.1: {}
+ web-streams-polyfill@4.0.0-beta.3: {}
+
+ webidl-conversions@3.0.1: {}
+
webpack-bundle-analyzer@4.10.2:
dependencies:
'@discoveryjs/json-ext': 0.5.7
@@ -11161,6 +12820,11 @@ snapshots:
websocket-extensions@0.1.4: {}
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
which@1.3.1:
dependencies:
isexe: 2.0.0
diff --git a/sidebars.ts b/sidebars.ts
index 352cd042..9d093311 100644
--- a/sidebars.ts
+++ b/sidebars.ts
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"
/**
@@ -13,13 +29,174 @@ import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"
const sidebars: SidebarsConfig = {
docsSidebar: [
{
- type: "autogenerated",
- dirName: ".",
+ type: "category",
+ collapsed: true,
+ label: "Get started with CodeRabbit",
+ items: ["overview/introduction", "getting-started/quickstart"],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Add CodeRabbit to your repository",
+ items: [
+ "platforms/platforms",
+ {
+ type: "category",
+ collapsed: true,
+ label: "Supported Git platforms",
+ items: [
+ "platforms/github-com",
+ "platforms/github-enterprise-server",
+ "platforms/gitlab-com",
+ "platforms/self-hosted-gitlab",
+ "platforms/azure-devops",
+ "platforms/bitbucket-cloud",
+ ],
+ },
+ "getting-started/adding-organizations",
+ "getting-started/upgrading-permissions",
+ {
+ type: "category",
+ collapsed: true,
+ label: "Self-host CodeRabbit",
+ items: [
+ "self-hosted/github",
+ "self-hosted/gitlab",
+ "self-hosted/azure-devops",
+ "self-hosted/bitbucket",
+ ],
+ },
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Configure CodeRabbit",
+ items: [
+ "getting-started/configure-coderabbit",
+ "integrations/knowledge-base",
+ "guides/review-instructions",
+ "tools/tools",
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Review pull requests",
+ items: [
+ "guides/code-review-overview",
+ "guides/commands",
+ "guides/generate-improvements",
+ "guides/code-review-best-practices",
+ "guides/code-review-troubleshooting",
+ "guides/agent_chat",
+ {
+ type: "category",
+ collapsed: true,
+ label: "Analyze and improve your code",
+ items: [
+ "integrations/code-graph-analysis",
+ "finishing-touches/docstrings",
+ ],
+ },
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Create and resolve issues",
+ items: [
+ "integrations/issue-integrations",
+ "guides/issue-chat",
+ "guides/issue-creation",
+ "guides/linked-issues",
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Review local changes",
+ items: [
+ "guides/about-vscode",
+ "guides/install-vscode",
+ "guides/use-vscode",
+ "guides/config-vscode",
+ "guides/uninstall-vscode",
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Generate reports",
+ items: [
+ "guides/reports-overview",
+ "guides/scheduled-reports",
+ "guides/ondemand-reports",
+ "guides/custom-reports",
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Reference",
+ items: [
+ {
+ type: "link",
+ label: "CodeRabbit API",
+ href: "https://api.coderabbit.ai/api/swagger/",
+ },
+ "reference/review-commands",
+ {
+ type: "category",
+ label: "Supported tools",
+ collapsed: true,
+ items: [
+ "tools/list",
+ "tools/actionlint",
+ "tools/biome",
+ "tools/buf",
+ "tools/checkov",
+ "tools/circleci",
+ "tools/cppcheck",
+ "tools/detekt",
+ "tools/eslint",
+ "tools/gitleaks",
+ "tools/golangci-lint",
+ "tools/hadolint",
+ "tools/languagetool",
+ "tools/luacheck",
+ "tools/markdownlint",
+ "tools/oxlint",
+ "tools/phpstan",
+ "tools/pipeline-remediation",
+ "tools/pmd",
+ "tools/prisma-lint",
+ "tools/regal",
+ "tools/rubocop",
+ "tools/ruff",
+ "tools/semgrep",
+ "tools/shellcheck",
+ "tools/sqlfluff",
+ "tools/swiftlint",
+ "tools/yamllint",
+ ],
+ },
+ "reference/caching",
+ ],
},
{
- type: "link",
- label: "API Reference",
- href: "https://api.coderabbit.ai/api/swagger/",
+ type: "category",
+ collapsed: true,
+ label: "Resources",
+ items: [
+ "getting-started/support",
+ "getting-started/subscription-management",
+ "overview/why-coderabbit",
+ "faq",
+ "early-access",
+ "future-development",
+ "changelog",
+ ],
},
],
}
diff --git a/src/components/AiDisclaimer/AiDisclaimer.tsx b/src/components/AiDisclaimer/AiDisclaimer.tsx
index 6786278b..3bda0ebc 100644
--- a/src/components/AiDisclaimer/AiDisclaimer.tsx
+++ b/src/components/AiDisclaimer/AiDisclaimer.tsx
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React from "react"
import "./style.css"
import WriteIcon from "@site/static/img/write-icon.svg"
diff --git a/src/components/AiDisclaimer/index.ts b/src/components/AiDisclaimer/index.ts
index 382446c9..737448ed 100644
--- a/src/components/AiDisclaimer/index.ts
+++ b/src/components/AiDisclaimer/index.ts
@@ -1 +1,17 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
export * from "./AiDisclaimer"
diff --git a/src/components/AiDisclaimer/style.css b/src/components/AiDisclaimer/style.css
index 74a10792..eed53f48 100644
--- a/src/components/AiDisclaimer/style.css
+++ b/src/components/AiDisclaimer/style.css
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
.ai-disclaimer-wrapper {
display: flex;
align-items: center;
diff --git a/src/components/FeaturedPosts/FeaturedPosts.module.css b/src/components/FeaturedPosts/FeaturedPosts.module.css
index 0391b6d3..0b387255 100644
--- a/src/components/FeaturedPosts/FeaturedPosts.module.css
+++ b/src/components/FeaturedPosts/FeaturedPosts.module.css
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
.blogCard {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
diff --git a/src/components/FeaturedPosts/FeaturedPosts.tsx b/src/components/FeaturedPosts/FeaturedPosts.tsx
index 1491d5d9..8a38ba1a 100644
--- a/src/components/FeaturedPosts/FeaturedPosts.tsx
+++ b/src/components/FeaturedPosts/FeaturedPosts.tsx
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React from "react"
import styles from "./FeaturedPosts.module.css"
import Layout from "@theme/Layout"
diff --git a/src/components/ProPlanNotice.mdx b/src/components/ProPlanNotice.mdx
new file mode 100644
index 00000000..da4ac0e4
--- /dev/null
+++ b/src/components/ProPlanNotice.mdx
@@ -0,0 +1,7 @@
+{/* ProPlanNotice.mdx */}
+
+:::info Pro Plan Feature
+
+This feature is available exclusively as part of the Pro plan and is not included in the Lite plan. Please refer to our [pricing page](https://www.coderabbit.ai/pricing) for more information about our plans and features.
+
+:::
diff --git a/src/components/ReportSchema.tsx b/src/components/ReportSchema.tsx
index 94f188aa..ee057675 100644
--- a/src/components/ReportSchema.tsx
+++ b/src/components/ReportSchema.tsx
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import Schema from "@site/static/schema/reporting.json"
import JSONSchemaViewer from "@theme/JSONSchemaViewer"
diff --git a/src/components/SchemaViewer.tsx b/src/components/SchemaViewer.tsx
index 0c9eb96b..cb3bd22c 100644
--- a/src/components/SchemaViewer.tsx
+++ b/src/components/SchemaViewer.tsx
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import Schema from "@site/static/schema/schema.v2.json"
import JSONSchemaViewer from "@theme/JSONSchemaViewer"
diff --git a/src/components/YamlEditor/YamlEditor.tsx b/src/components/YamlEditor/YamlEditor.tsx
index 6e3abfdb..533d2d90 100644
--- a/src/components/YamlEditor/YamlEditor.tsx
+++ b/src/components/YamlEditor/YamlEditor.tsx
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React, { useState, useEffect } from "react"
import AceEditor from "react-ace"
diff --git a/src/css/custom.css b/src/css/custom.css
index a2d00fbc..4a77db0a 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&family=Work+Sans:wght@400;500;600;700&display=swap");
@tailwind base;
@@ -74,19 +90,6 @@ a[docid="docs"] > svg {
align-items: center;
}
-@media screen and (max-width: 480px) {
- a.navbar__item.navbar__link[docid="docs"] {
- display: none !important;
- }
-}
-
-@media screen and (max-width: 480px) {
- a.navbar__item.navbar__link[href="https://blog.coderabbit.ai/blog"]
- {
- display: none;
- }
-}
-
[data-theme="light"] img[src$="#gh-dark-mode-only"],
[data-theme="dark"] img[src$="#gh-light-mode-only"] {
display: none;
@@ -141,19 +144,6 @@ a[docid="docs"] > svg {
align-items: center;
}
-@media screen and (max-width: 480px) {
- a.navbar__item.navbar__link[docid="docs"] {
- display: none !important;
- }
-}
-
-@media screen and (max-width: 480px) {
- a.navbar__item.navbar__link[href="https://blog.coderabbit.ai/blog"]
- {
- display: none;
- }
-}
-
/* Light mode Discord icon */
/* .header-discord-link:before {
-webkit-filter: invert(100%);
@@ -247,39 +237,59 @@ a[docid="docs"] > svg {
}
/* Light mode specific styles */
-[data-theme="light"] {
- .navbar-icon-link::before {
- opacity: 0.7;
- }
+[data-theme="light"] .navbar-icon-link::before {
+ opacity: 0.7;
+}
- .navbar-icon-link:hover::before {
- opacity: 0.9;
- }
+[data-theme="light"] .navbar-icon-link:hover::before {
+ opacity: 0.9;
+}
- .discord-link::before {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 127.14 96.36' fill='%23424242'%3E%3Cpath d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E");
- }
+[data-theme="light"] .discord-link::before {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 127.14 96.36' fill='%23424242'%3E%3Cpath d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E");
+}
- .github-link::before {
- background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23424242'%3E%3Cpath d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");
- }
+[data-theme="light"] .github-link::before {
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23424242'%3E%3Cpath d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");
}
/* Dark mode specific styles */
-[data-theme="dark"] {
- .navbar-icon-link::before {
- opacity: 0.85;
- }
+[data-theme="dark"] .navbar-icon-link::before {
+ opacity: 0.85;
+}
+
+[data-theme="dark"] .navbar-icon-link:hover::before {
+ opacity: 1;
+}
+
+[data-theme="dark"] .discord-link::before {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 127.14 96.36' fill='%23fff'%3E%3Cpath d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E");
+}
+
+[data-theme="dark"] .github-link::before {
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");
+}
+
+.center-image {
+ text-align: center;
+}
- .navbar-icon-link:hover::before {
- opacity: 1;
+@media screen and (max-width: 480px) {
+ a.navbar__item.navbar__link[href="/"] {
+ display: none;
}
+}
- .discord-link::before {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 127.14 96.36' fill='%23fff'%3E%3Cpath d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E");
+@media screen and (max-width: 480px) {
+ a.navbar__item.navbar__link[href*="https://docs.coderabbit.ai"]
+ {
+ display: none;
}
+}
- .github-link::before {
- background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");
+@media screen and (max-width: 480px) {
+ a.navbar__item.navbar__link[href*="https://coderabbit.ai/blog"]
+ {
+ display: none;
}
}
diff --git a/src/pages/index.module.css b/src/pages/index.module.css
index d7160c1b..1263552d 100644
--- a/src/pages/index.module.css
+++ b/src/pages/index.module.css
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
/**
* CSS files with the .module.css suffix will be treated as CSS modules
* and scoped locally.
diff --git a/src/theme/BlogPostItem/index.js b/src/theme/BlogPostItem/index.js
index 61ff84be..f40e0c5d 100644
--- a/src/theme/BlogPostItem/index.js
+++ b/src/theme/BlogPostItem/index.js
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { useBlogPost } from "@docusaurus/theme-common/internal"
import { AiDisclaimer } from "@site/src/components/AiDisclaimer"
import BlogPostItem from "@theme-original/BlogPostItem"
diff --git a/src/theme/Footer/index.js b/src/theme/Footer/index.js
index 72e042fa..5f3126a9 100644
--- a/src/theme/Footer/index.js
+++ b/src/theme/Footer/index.js
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import OriginalFooter from "@theme-original/Footer"
import React from "react"
import { CRLogoBase64 } from "./cr-logo"
@@ -43,7 +59,7 @@ function CustomFooter(props) {
Docs
Blog
@@ -55,7 +71,7 @@ function CustomFooter(props) {
Pricing
Changelog
diff --git a/static/img/about/why-cr-auth-flow-cors.png b/static/img/about/why-cr-auth-flow-cors.png
new file mode 100644
index 00000000..b06829b9
Binary files /dev/null and b/static/img/about/why-cr-auth-flow-cors.png differ
diff --git a/static/img/about/why-cr-learnings.png b/static/img/about/why-cr-learnings.png
new file mode 100644
index 00000000..01081663
Binary files /dev/null and b/static/img/about/why-cr-learnings.png differ
diff --git a/static/img/faq/add-repository.png b/static/img/faq/add-repository.png
new file mode 100644
index 00000000..e69c4a7c
Binary files /dev/null and b/static/img/faq/add-repository.png differ
diff --git a/static/img/faq/coderabbit-github-menu.png b/static/img/faq/coderabbit-github-menu.png
new file mode 100644
index 00000000..c599ca95
Binary files /dev/null and b/static/img/faq/coderabbit-github-menu.png differ
diff --git a/static/img/faq/github-app-settings.png b/static/img/faq/github-app-settings.png
new file mode 100644
index 00000000..ff120953
Binary files /dev/null and b/static/img/faq/github-app-settings.png differ
diff --git a/static/img/faq/gitlab-webhook.png b/static/img/faq/gitlab-webhook.png
new file mode 100644
index 00000000..a233f902
Binary files /dev/null and b/static/img/faq/gitlab-webhook.png differ
diff --git a/static/img/faq/seat-assignment.png b/static/img/faq/seat-assignment.png
new file mode 100644
index 00000000..073194be
Binary files /dev/null and b/static/img/faq/seat-assignment.png differ
diff --git a/static/img/faq/select-repos.png b/static/img/faq/select-repos.png
new file mode 100644
index 00000000..1c1222ff
Binary files /dev/null and b/static/img/faq/select-repos.png differ
diff --git a/static/img/finishing-touches/docstrings-pull-request.png b/static/img/finishing-touches/docstrings-pull-request.png
new file mode 100644
index 00000000..c610e468
Binary files /dev/null and b/static/img/finishing-touches/docstrings-pull-request.png differ
diff --git a/static/img/getting-started/billing-history.png b/static/img/getting-started/billing-history.png
new file mode 100644
index 00000000..8fd36af6
Binary files /dev/null and b/static/img/getting-started/billing-history.png differ
diff --git a/static/img/getting-started/change-plan.png b/static/img/getting-started/change-plan.png
new file mode 100644
index 00000000..e41f00ce
Binary files /dev/null and b/static/img/getting-started/change-plan.png differ
diff --git a/static/img/getting-started/change-seats.png b/static/img/getting-started/change-seats.png
new file mode 100644
index 00000000..cc736ac5
Binary files /dev/null and b/static/img/getting-started/change-seats.png differ
diff --git a/static/img/getting-started/check-for-new-orgs.png b/static/img/getting-started/check-for-new-orgs.png
new file mode 100644
index 00000000..d0049686
Binary files /dev/null and b/static/img/getting-started/check-for-new-orgs.png differ
diff --git a/static/img/getting-started/download-invoice.png b/static/img/getting-started/download-invoice.png
new file mode 100644
index 00000000..5451693d
Binary files /dev/null and b/static/img/getting-started/download-invoice.png differ
diff --git a/static/img/getting-started/edit-subscription.png b/static/img/getting-started/edit-subscription.png
new file mode 100644
index 00000000..065d0cc2
Binary files /dev/null and b/static/img/getting-started/edit-subscription.png differ
diff --git a/static/img/getting-started/grant-permission.png b/static/img/getting-started/grant-permission.png
new file mode 100644
index 00000000..e9654574
Binary files /dev/null and b/static/img/getting-started/grant-permission.png differ
diff --git a/static/img/getting-started/manage-subscription.png b/static/img/getting-started/manage-subscription.png
new file mode 100644
index 00000000..1234acf9
Binary files /dev/null and b/static/img/getting-started/manage-subscription.png differ
diff --git a/static/img/getting-started/permission-warning.png b/static/img/getting-started/permission-warning.png
new file mode 100644
index 00000000..6283c930
Binary files /dev/null and b/static/img/getting-started/permission-warning.png differ
diff --git a/static/img/getting-started/quickstart-comment.png b/static/img/getting-started/quickstart-comment.png
new file mode 100644
index 00000000..9813172b
Binary files /dev/null and b/static/img/getting-started/quickstart-comment.png differ
diff --git a/static/img/getting-started/subscription-page.png b/static/img/getting-started/subscription-page.png
new file mode 100644
index 00000000..8fb90f96
Binary files /dev/null and b/static/img/getting-started/subscription-page.png differ
diff --git a/static/img/getting-started/updated-permissions.png b/static/img/getting-started/updated-permissions.png
new file mode 100644
index 00000000..37ef9038
Binary files /dev/null and b/static/img/getting-started/updated-permissions.png differ
diff --git a/static/img/guides/agentic-thought-chain.png b/static/img/guides/agentic-thought-chain.png
new file mode 100644
index 00000000..1fd49a55
Binary files /dev/null and b/static/img/guides/agentic-thought-chain.png differ
diff --git a/static/img/guides/chat-example.png b/static/img/guides/chat-example.png
new file mode 100644
index 00000000..3acb40e1
Binary files /dev/null and b/static/img/guides/chat-example.png differ
diff --git a/static/img/guides/chat-learnings-use.png b/static/img/guides/chat-learnings-use.png
new file mode 100644
index 00000000..f1b3a2f1
Binary files /dev/null and b/static/img/guides/chat-learnings-use.png differ
diff --git a/static/img/guides/chat-script-execution.png b/static/img/guides/chat-script-execution.png
new file mode 100644
index 00000000..4cd29f97
Binary files /dev/null and b/static/img/guides/chat-script-execution.png differ
diff --git a/static/img/guides/create-issue-agentic.png b/static/img/guides/create-issue-agentic.png
new file mode 100644
index 00000000..a7ad04ae
Binary files /dev/null and b/static/img/guides/create-issue-agentic.png differ
diff --git a/static/img/guides/create-issue-inline.png b/static/img/guides/create-issue-inline.png
new file mode 100644
index 00000000..873df82f
Binary files /dev/null and b/static/img/guides/create-issue-inline.png differ
diff --git a/static/img/guides/example-report-1.png b/static/img/guides/example-report-1.png
new file mode 100644
index 00000000..d88931a5
Binary files /dev/null and b/static/img/guides/example-report-1.png differ
diff --git a/static/img/guides/example-report-2.png b/static/img/guides/example-report-2.png
new file mode 100644
index 00000000..98a54896
Binary files /dev/null and b/static/img/guides/example-report-2.png differ
diff --git a/static/img/guides/feature-planning.png b/static/img/guides/feature-planning.png
new file mode 100644
index 00000000..017d3e4b
Binary files /dev/null and b/static/img/guides/feature-planning.png differ
diff --git a/static/img/guides/gitlab-issue-chat.png b/static/img/guides/gitlab-issue-chat.png
new file mode 100644
index 00000000..0b6a1f69
Binary files /dev/null and b/static/img/guides/gitlab-issue-chat.png differ
diff --git a/static/img/guides/high-level-docs.png b/static/img/guides/high-level-docs.png
new file mode 100644
index 00000000..702c5dee
Binary files /dev/null and b/static/img/guides/high-level-docs.png differ
diff --git a/static/img/guides/linked-issue.png b/static/img/guides/linked-issue.png
new file mode 100644
index 00000000..ba585890
Binary files /dev/null and b/static/img/guides/linked-issue.png differ
diff --git a/static/img/guides/marketing-posts.png b/static/img/guides/marketing-posts.png
new file mode 100644
index 00000000..ce607fd4
Binary files /dev/null and b/static/img/guides/marketing-posts.png differ
diff --git a/static/img/guides/open-source-support.png b/static/img/guides/open-source-support.png
new file mode 100644
index 00000000..14c35530
Binary files /dev/null and b/static/img/guides/open-source-support.png differ
diff --git a/static/img/guides/report-params.png b/static/img/guides/report-params.png
new file mode 100644
index 00000000..abde1754
Binary files /dev/null and b/static/img/guides/report-params.png differ
diff --git a/static/img/guides/report-platforms.png b/static/img/guides/report-platforms.png
new file mode 100644
index 00000000..f762091e
Binary files /dev/null and b/static/img/guides/report-platforms.png differ
diff --git a/static/img/integrations/azure-access-token.png b/static/img/integrations/azure-access-token.png
index 9ce2b44b..2b3111b1 100644
Binary files a/static/img/integrations/azure-access-token.png and b/static/img/integrations/azure-access-token.png differ
diff --git a/static/img/integrations/bitbucket-app-password-modal.png b/static/img/integrations/bitbucket-app-password-modal.png
new file mode 100644
index 00000000..fd6c556b
Binary files /dev/null and b/static/img/integrations/bitbucket-app-password-modal.png differ
diff --git a/static/img/integrations/bitbucket-app-password-page.png b/static/img/integrations/bitbucket-app-password-page.png
new file mode 100644
index 00000000..c9e25cbe
Binary files /dev/null and b/static/img/integrations/bitbucket-app-password-page.png differ
diff --git a/static/img/integrations/bitbucket-app-password-permissions.png b/static/img/integrations/bitbucket-app-password-permissions.png
new file mode 100644
index 00000000..7e27e6af
Binary files /dev/null and b/static/img/integrations/bitbucket-app-password-permissions.png differ
diff --git a/static/img/integrations/bitbucket-webhook.png b/static/img/integrations/bitbucket-webhook.png
new file mode 100644
index 00000000..687c9b78
Binary files /dev/null and b/static/img/integrations/bitbucket-webhook.png differ
diff --git a/static/img/integrations/gitlab-repo-install.png b/static/img/integrations/gitlab-repo-install.png
new file mode 100644
index 00000000..498443ee
Binary files /dev/null and b/static/img/integrations/gitlab-repo-install.png differ
diff --git a/static/img/integrations/gitlab-webhook.png b/static/img/integrations/gitlab-webhook.png
new file mode 100644
index 00000000..e02e0bfa
Binary files /dev/null and b/static/img/integrations/gitlab-webhook.png differ
diff --git a/static/img/integrations/login-self-hosted-github.png b/static/img/integrations/login-self-hosted-github.png
index 99f511c6..35e76ed1 100644
Binary files a/static/img/integrations/login-self-hosted-github.png and b/static/img/integrations/login-self-hosted-github.png differ
diff --git a/static/img/integrations/logo.png b/static/img/integrations/logo.png
new file mode 100644
index 00000000..18eb4911
Binary files /dev/null and b/static/img/integrations/logo.png differ
diff --git a/static/img/integrations/self-hosted-github-host-url.png b/static/img/integrations/self-hosted-github-host-url.png
index b8224720..2cb6d671 100644
Binary files a/static/img/integrations/self-hosted-github-host-url.png and b/static/img/integrations/self-hosted-github-host-url.png differ
diff --git a/static/img/tools/az-devops-pipeline.png b/static/img/tools/az-devops-pipeline.png
new file mode 100644
index 00000000..b06dafab
Binary files /dev/null and b/static/img/tools/az-devops-pipeline.png differ
diff --git a/static/img/tools/circle-cicd.png b/static/img/tools/circle-cicd.png
new file mode 100644
index 00000000..9af6cf95
Binary files /dev/null and b/static/img/tools/circle-cicd.png differ
diff --git a/static/img/tools/docker-build-cicd.png b/static/img/tools/docker-build-cicd.png
new file mode 100644
index 00000000..01e6ed58
Binary files /dev/null and b/static/img/tools/docker-build-cicd.png differ
diff --git a/static/img/tools/gitlab-advanced-security.png b/static/img/tools/gitlab-advanced-security.png
new file mode 100644
index 00000000..94dc3d75
Binary files /dev/null and b/static/img/tools/gitlab-advanced-security.png differ
diff --git a/static/img/tools/gitlab-cicd.png b/static/img/tools/gitlab-cicd.png
new file mode 100644
index 00000000..0f9c029f
Binary files /dev/null and b/static/img/tools/gitlab-cicd.png differ
diff --git a/static/img/tools/java-cicd.png b/static/img/tools/java-cicd.png
new file mode 100644
index 00000000..b90ec904
Binary files /dev/null and b/static/img/tools/java-cicd.png differ
diff --git a/static/img/tools/kubernetes-cicd.png b/static/img/tools/kubernetes-cicd.png
new file mode 100644
index 00000000..3b8beb53
Binary files /dev/null and b/static/img/tools/kubernetes-cicd.png differ
diff --git a/static/img/tools/npm-cicd.png b/static/img/tools/npm-cicd.png
new file mode 100644
index 00000000..f0402362
Binary files /dev/null and b/static/img/tools/npm-cicd.png differ
diff --git a/static/img/tools/python-cicd.png b/static/img/tools/python-cicd.png
new file mode 100644
index 00000000..cab40924
Binary files /dev/null and b/static/img/tools/python-cicd.png differ
diff --git a/static/img/tools/semgrep-cicd.png b/static/img/tools/semgrep-cicd.png
new file mode 100644
index 00000000..261cfb5e
Binary files /dev/null and b/static/img/tools/semgrep-cicd.png differ
diff --git a/static/img/tools/terraform-cicd.png b/static/img/tools/terraform-cicd.png
new file mode 100644
index 00000000..ede7a0c2
Binary files /dev/null and b/static/img/tools/terraform-cicd.png differ
diff --git a/static/schema/schema.v2.json b/static/schema/schema.v2.json
index aa071eea..87103c6a 100644
--- a/static/schema/schema.v2.json
+++ b/static/schema/schema.v2.json
@@ -82,6 +82,8 @@
"zh",
"crh-UA",
"crh",
+ "cs-CZ",
+ "cs",
"nb",
"no",
"nl-NL",
@@ -91,7 +93,9 @@
"fa-IR",
"sv-SE",
"de-LU",
- "fr-FR"
+ "fr-FR",
+ "bg-BG",
+ "bg"
],
"default": "en-US",
"description": "Set the language for reviews by using the corresponding ISO language code."
@@ -136,11 +140,21 @@
"default": "@coderabbitai summary",
"description": "Placeholder in the PR/MR description that gets replaced with the high level summary."
},
+ "high_level_summary_in_walkthrough": {
+ "type": "boolean",
+ "default": false,
+ "description": "Include the high level summary in the walkthrough comment."
+ },
"auto_title_placeholder": {
"type": "string",
"default": "@coderabbitai",
"description": "Add this keyword in the PR/MR title to auto-generate the title."
},
+ "auto_title_instructions": {
+ "type": "string",
+ "default": "",
+ "description": "Auto Title Instructions | Custom instructions for auto-generating the PR/MR title."
+ },
"review_status": {
"type": "boolean",
"default": true,
@@ -151,6 +165,11 @@
"default": true,
"description": "Set the commit status to 'pending' when the review is in progress and 'success' when it is complete."
},
+ "fail_commit_status": {
+ "type": "boolean",
+ "default": false,
+ "description": "Set the commit status to 'failure' when the PR cannot be reviewed by CodeRabbit for any reason."
+ },
"collapse_walkthrough": {
"type": "boolean",
"default": false,
@@ -186,11 +205,21 @@
"default": true,
"description": "Suggest labels based on the changes in the pull request in the walkthrough."
},
+ "auto_apply_labels": {
+ "type": "boolean",
+ "default": false,
+ "description": "Automatically apply the suggested labels to the PR/MR."
+ },
"suggested_reviewers": {
"type": "boolean",
"default": true,
"description": "Suggest reviewers based on the changes in the pull request in the walkthrough."
},
+ "auto_assign_reviewers": {
+ "type": "boolean",
+ "default": false,
+ "description": "Automatically assign suggested reviewers to the pull request"
+ },
"poem": {
"type": "boolean",
"default": true,
@@ -223,7 +252,7 @@
"type": "string"
},
"default": [],
- "description": "Specify file patterns to exclude or include for a review. Accepts glob patterns. Example: !dist/**, src/**"
+ "description": "Specify file patterns to include or exclude in a review using glob patterns (e.g., !dist/**, src/**). These patterns also apply to 'git sparse-checkout', including specified patterns and ignoring excluded ones (starting with '!') when cloning the repository."
},
"path_instructions": {
"type": "array",
@@ -236,7 +265,7 @@
},
"instructions": {
"type": "string",
- "maxLength": 3000,
+ "maxLength": 20000,
"description": "Provides specific additional guidelines for code review based on file paths."
}
},
@@ -251,6 +280,11 @@
"default": true,
"description": "Abort the in-progress review if the pull request is closed or merged."
},
+ "disable_cache": {
+ "type": "boolean",
+ "default": false,
+ "description": "Disable caching of code and dependencies. This will force CodeRabbit to download the code and dependencies fresh from the repository each time."
+ },
"auto_review": {
"type": "object",
"properties": {
@@ -297,6 +331,39 @@
"additionalProperties": false,
"default": {}
},
+ "finishing_touches": {
+ "type": "object",
+ "properties": {
+ "docstrings": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Docstrings | Allow CodeRabbit to generate docstrings for PRs/MRs."
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Docstrings | Options for generating Docstrings for your PRs/MRs."
+ },
+ "unit_tests": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Unit Tests | Allow CodeRabbit to generate unit tests for PRs/MRs."
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Unit Tests | Options for generating unit tests for your PRs/MRs."
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
+ },
"tools": {
"type": "object",
"properties": {
@@ -308,6 +375,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "List of rules directories."
},
"util_dirs": {
@@ -315,6 +383,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "List of utils directories."
},
"essential_rules": {
@@ -332,7 +401,8 @@
}
},
"additionalProperties": false,
- "description": "Enable ast-grep | ast-grep is a code analysis tool that helps you to find patterns in your codebase using abstract syntax trees patterns. | v0.30.1"
+ "default": {},
+ "description": "Enable ast-grep | ast-grep is a code analysis tool that helps you to find patterns in your codebase using abstract syntax trees patterns. | v0.38.1"
},
"shellcheck": {
"type": "object",
@@ -340,12 +410,12 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable ShellCheck | ShellCheck is a static analysis tool that finds bugs in your shell. | Enable shellcheck integration. | v0.10.0"
+ "description": "Enable ShellCheck | ShellCheck is a static analysis tool that finds bugs in your shell. | Enable ShellCheck integration. | v0.10.0"
}
},
"additionalProperties": false,
"default": {},
- "description": "Shellcheck is a static analysis tool that finds bugs in your shell scripts."
+ "description": "ShellCheck is a static analysis tool that finds bugs in your shell scripts."
},
"ruff": {
"type": "object",
@@ -353,7 +423,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Ruff | Ruff is a Python linter and code formatter. | Enable ruff integration. | v0.8.0"
+ "description": "Enable Ruff | Ruff is a Python linter and code formatter. | Enable Ruff integration. | v0.11.9"
}
},
"additionalProperties": false,
@@ -366,12 +436,12 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Markdownlint | Markdownlint is a static analysis tool for Node.js with a library of rules to enforce standards and consistency for Markdown files. | Enable markdownlint integration. | v0.35.0"
+ "description": "Enable markdownlint | markdownlint-cli2 is a static analysis tool to enforce standards and consistency for Markdown files. | Enable markdownlint integration. | v0.17.2"
}
},
"additionalProperties": false,
"default": {},
- "description": "Markdownlint is a static analysis tool to enforce standards and consistency for Markdown files."
+ "description": "markdownlint-cli2 is a static analysis tool to enforce standards and consistency for Markdown files."
},
"github-checks": {
"type": "object",
@@ -383,7 +453,7 @@
},
"timeout_ms": {
"type": "number",
- "maximum": 300000,
+ "maximum": 900000,
"minimum": 0,
"default": 90000,
"description": "Time in milliseconds to wait for all GitHub Checks to conclude."
@@ -406,6 +476,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "IDs of rules to be enabled. The rule won't run unless 'level' is set to a level that activates the rule."
},
"disabled_rules": {
@@ -413,6 +484,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "IDs of rules to be disabled. Note: EN_UNPAIRED_BRACKETS, and EN_UNPAIRED_QUOTES are always disabled."
},
"enabled_categories": {
@@ -420,6 +492,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "IDs of categories to be enabled."
},
"disabled_categories": {
@@ -427,6 +500,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "IDs of categories to be disabled. Note: TYPOS, TYPOGRAPHY, and CASING are always disabled."
},
"enabled_only": {
@@ -477,7 +551,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable SwiftLint | SwiftLint is a Swift linter. | Enable SwiftLint integration. | v0.57.1"
+ "description": "Enable SwiftLint | SwiftLint is a Swift linter. | Enable SwiftLint integration. | v0.57.0"
},
"config_file": {
"type": "string",
@@ -494,7 +568,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable PHPStan | PHPStan requires [config file](https://phpstan.org/config-reference#config-file) in your repository root. Please ensure that this file contains the `paths:` parameter. | v2.0.2"
+ "description": "Enable PHPStan | PHPStan requires [config file](https://phpstan.org/config-reference#config-file) in your repository root. Please ensure that this file contains the `paths:` parameter. | v2.1.15"
},
"level": {
"type": "string",
@@ -526,7 +600,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable golangci-lint | golangci-lint is a fast linters runner for Go. | Enable golangci-lint integration. | v1.62.2"
+ "description": "Enable golangci-lint | golangci-lint is a fast linters runner for Go. | Enable golangci-lint integration. | v1.64.8"
},
"config_file": {
"type": "string",
@@ -543,12 +617,12 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Yamllint | yamllint is a linter for YAML files. | Enable yamllint integration. | v1.35.1"
+ "description": "Enable YAMLlint | YAMLlint is a linter for YAML files. | Enable YAMLlint integration. | v1.37.1"
}
},
"additionalProperties": false,
"default": {},
- "description": "yamllint is a linter for YAML files."
+ "description": "YAMLlint is a linter for YAML files."
},
"gitleaks": {
"type": "object",
@@ -556,7 +630,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Gitleaks | Gitleaks is a secret scanner. | Enable Gitleaks integration. | v8.21.2"
+ "description": "Enable Gitleaks | Gitleaks is a secret scanner. | Enable Gitleaks integration. | v8.26.0"
}
},
"additionalProperties": false,
@@ -569,7 +643,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Checkov | Checkov is a static code analysis tool for infrastructure-as-code files. | v3.2.312"
+ "description": "Enable Checkov | Checkov is a static code analysis tool for infrastructure-as-code files. | v3.2.334"
}
},
"additionalProperties": false,
@@ -582,11 +656,11 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Detekt | Detekt is a static code analysis tool for Kotlin files. | v1.23.7"
+ "description": "Enable detekt | detekt is a static code analysis tool for Kotlin files. | v1.23.8"
},
"config_file": {
"type": "string",
- "description": "Optional path to the Detekt configuration file relative to the repository."
+ "description": "Optional path to the detekt configuration file relative to the repository."
}
},
"additionalProperties": false,
@@ -612,7 +686,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Rubocop | RuboCop is a Ruby static code analyzer (a.k.a. linter ) and code formatter. | v1.68.0"
+ "description": "Enable RuboCop | RuboCop is a Ruby static code analyzer (a.k.a. linter ) and code formatter. | v1.75.5"
}
},
"additionalProperties": false,
@@ -625,7 +699,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Buf | Buf offers linting for Protobuf files. | v1.47.2"
+ "description": "Enable Buf | Buf offers linting for Protobuf files. | v1.54.0"
}
},
"additionalProperties": false,
@@ -638,7 +712,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Regal | Regal is a linter and language server for Rego. | v0.29.2"
+ "description": "Enable Regal | Regal is a linter and language server for Rego. | v0.33.1"
}
},
"additionalProperties": false,
@@ -651,7 +725,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Actionlint | is a static checker for GitHub Actions workflow files. | v1.7.4"
+ "description": "Enable actionlint | is a static checker for GitHub Actions workflow files. | v1.7.7"
}
},
"additionalProperties": false,
@@ -664,11 +738,11 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Pmd | PMD is an extensible multilanguage static code analyzer. Itโs mainly concerned with Java. | v7.7.0"
+ "description": "Enable PMD | PMD is an extensible multilanguage static code analyzer. Itโs mainly concerned with Java. | v7.13.0"
},
"config_file": {
"type": "string",
- "description": "Optional path to the Pmd configuration file relative to the repository."
+ "description": "Optional path to the PMD configuration file relative to the repository."
}
},
"additionalProperties": false,
@@ -681,7 +755,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Cppcheck | Cppcheck is a static code analysis tool for the C and C++ programming languages. | v2.10-2"
+ "description": "Enable Cppcheck | Cppcheck is a static code analysis tool for the C and C++ programming languages. | v2.17.1"
}
},
"additionalProperties": false,
@@ -694,7 +768,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Semgrep | Semgrep is a static analysis tool designed to scan code for security vulnerabilities and code quality issues. | Enable Semgrep integration. | v1.97.0"
+ "description": "Enable Semgrep | Semgrep is a static analysis tool designed to scan code for security vulnerabilities and code quality issues. | Enable Semgrep integration. | v1.122.0"
},
"config_file": {
"type": "string",
@@ -711,12 +785,116 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable CircleCi | CircleCi tool is a static checker for CircleCi config files. | v0.1.31151"
+ "description": "Enable CircleCI | CircleCI tool is a static checker for CircleCI config files. | v0.1.31687"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "CircleCI tool is a static checker for CircleCI config files."
+ },
+ "clippy": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Clippy | Clippy is a collection of lints to catch common mistakes and improve your Rust code. | Enable Clippy integration."
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Clippy is a collection of lints to catch common mistakes and improve your Rust code."
+ },
+ "sqlfluff": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable SQLFluff | SQLFluff is an open source, dialect-flexible and configurable SQL linter. | v3.4.0"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "SQLFluff is an open source, dialect-flexible and configurable SQL linter."
+ },
+ "prismaLint": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Prisma Schema linting | Prisma Schema linting helps maintain consistent and error-free schema files | v0.10.1"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Configuration for Prisma Schema linting to ensure schema file quality"
+ },
+ "pylint": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Pylint | Pylint is a Python static code analysis tool. | v3.3.7"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Pylint is a Python static code analysis tool."
+ },
+ "oxc": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable OXC | OXC is a JavaScript/TypeScript linter written in Rust. | v0.16.10"
}
},
"additionalProperties": false,
"default": {},
- "description": "CircleCi tool is a static checker for CircleCi config files."
+ "description": "OXC is a JavaScript/TypeScript linter written in Rust."
+ },
+ "shopifyThemeCheck": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Shopify Theme Check | A linter for Shopify themes that helps you follow Shopify theme & Liquid best practices | cli 3.77.1 | theme 3.58.2"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Configuration for Shopify Theme Check to ensure theme quality and best practices"
+ },
+ "luacheck": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Lua code linting | Luacheck helps maintain consistent and error-free Lua code | v1.2.0"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Configuration for Lua code linting to ensure code quality"
+ },
+ "brakeman": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Brakeman | Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications. | v7.0.2"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications. | v7.0.2"
}
},
"additionalProperties": false,
@@ -735,6 +913,39 @@
"type": "boolean",
"default": true,
"description": "Enable the bot to reply automatically without requiring the user to tag it."
+ },
+ "integrations": {
+ "type": "object",
+ "properties": {
+ "jira": {
+ "type": "object",
+ "properties": {
+ "usage": {
+ "type": "string",
+ "enum": ["auto", "enabled", "disabled"],
+ "default": "auto",
+ "description": "Jira | Enable the Jira integration for opening issues, etc. 'auto' disables the integration for public repositories."
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
+ },
+ "linear": {
+ "type": "object",
+ "properties": {
+ "usage": {
+ "type": "string",
+ "enum": ["auto", "enabled", "disabled"],
+ "default": "auto",
+ "description": "Linear | Enable the Linear integration for opening issues, etc. 'auto' disables the integration for public repositories."
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
}
},
"additionalProperties": false,
@@ -746,7 +957,19 @@
"opt_out": {
"type": "boolean",
"default": false,
- "description": "Opt out | Opt out of all knowledge base features."
+ "description": "Opt Out | Disable all knowledge base features that require data retention. If you opt out after opting in, all of your existing knowledge base data will be removed from the system."
+ },
+ "web_search": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Web Search | Enable the web search integration."
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
},
"learnings": {
"type": "object",
@@ -777,6 +1000,12 @@
"jira": {
"type": "object",
"properties": {
+ "usage": {
+ "type": "string",
+ "enum": ["auto", "enabled", "disabled"],
+ "default": "auto",
+ "description": "Jira | Enable the Jira knowledge base integration. 'auto' disables the integration for public repositories."
+ },
"project_keys": {
"type": "array",
"items": {
@@ -792,6 +1021,12 @@
"linear": {
"type": "object",
"properties": {
+ "usage": {
+ "type": "string",
+ "enum": ["auto", "enabled", "disabled"],
+ "default": "auto",
+ "description": "Linear | Enable the Linear knowledge base integration. 'auto' disables the integration for public repositories."
+ },
"team_keys": {
"type": "array",
"items": {
@@ -820,9 +1055,174 @@
},
"additionalProperties": false,
"default": {}
+ },
+ "code_generation": {
+ "type": "object",
+ "properties": {
+ "docstrings": {
+ "type": "object",
+ "properties": {
+ "language": {
+ "type": "string",
+ "enum": [
+ "de",
+ "de-DE",
+ "de-AT",
+ "de-CH",
+ "en",
+ "en-US",
+ "en-AU",
+ "en-GB",
+ "en-CA",
+ "en-NZ",
+ "en-ZA",
+ "es",
+ "es-AR",
+ "fr",
+ "fr-CA",
+ "fr-CH",
+ "fr-BE",
+ "nl",
+ "nl-BE",
+ "pt-AO",
+ "pt",
+ "pt-BR",
+ "pt-MZ",
+ "pt-PT",
+ "ar",
+ "ast-ES",
+ "ast",
+ "be-BY",
+ "be",
+ "br-FR",
+ "br",
+ "ca-ES",
+ "ca",
+ "ca-ES-valencia",
+ "ca-ES-balear",
+ "da-DK",
+ "da",
+ "de-DE-x-simple-language",
+ "el-GR",
+ "el",
+ "eo",
+ "fa",
+ "ga-IE",
+ "ga",
+ "gl-ES",
+ "gl",
+ "it",
+ "ja-JP",
+ "ja",
+ "km-KH",
+ "km",
+ "ko-KR",
+ "ko",
+ "pl-PL",
+ "pl",
+ "ro-RO",
+ "ro",
+ "ru-RU",
+ "ru",
+ "sk-SK",
+ "sk",
+ "sl-SI",
+ "sl",
+ "sv",
+ "ta-IN",
+ "ta",
+ "tl-PH",
+ "tl",
+ "tr",
+ "uk-UA",
+ "uk",
+ "zh-CN",
+ "zh",
+ "crh-UA",
+ "crh",
+ "cs-CZ",
+ "cs",
+ "nb",
+ "no",
+ "nl-NL",
+ "de-DE-x-simple-language-DE",
+ "es-ES",
+ "it-IT",
+ "fa-IR",
+ "sv-SE",
+ "de-LU",
+ "fr-FR",
+ "bg-BG",
+ "bg"
+ ],
+ "default": "en-US",
+ "description": "Set the language for docstrings by using the corresponding ISO language code."
+ },
+ "path_instructions": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "File path glob pattern. Example: **/*.js"
+ },
+ "instructions": {
+ "type": "string",
+ "maxLength": 20000,
+ "description": "Provides additional guidelines for docstring generation based on file paths."
+ }
+ },
+ "required": ["path", "instructions"],
+ "additionalProperties": false
+ },
+ "default": [],
+ "description": "Path Instructions | Provide additional guidelines for docstring generation based on file paths."
+ }
+ },
+ "additionalProperties": false,
+ "default": {
+ "path_instructions": []
+ },
+ "description": "Settings related to the generation of docstrings."
+ },
+ "unit_tests": {
+ "type": "object",
+ "properties": {
+ "path_instructions": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "File path glob pattern. Example: **/*.js"
+ },
+ "instructions": {
+ "type": "string",
+ "maxLength": 20000,
+ "description": "Provides additional guidelines for unit test generation based on file paths."
+ }
+ },
+ "required": ["path", "instructions"],
+ "additionalProperties": false
+ },
+ "default": [],
+ "description": "Unit Test Generation | Provide additional guidelines for unit test generation based on file paths."
+ }
+ },
+ "additionalProperties": false,
+ "default": {
+ "path_instructions": []
+ },
+ "description": "Settings related to the generation of unit tests."
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
}
},
- "additionalProperties": false
+ "additionalProperties": true
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
diff --git a/tailwind.config.js b/tailwind.config.js
index e47142da..b24582d0 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2024 CodeRabbit AI Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {