From 4756ac6fd6f7bc504a1ff3b6b01474755c98f84a Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 13:43:05 -0500 Subject: [PATCH 01/14] add reporting guide --- docs/guides/scheduled-reports.md | 120 +++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 docs/guides/scheduled-reports.md diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md new file mode 100644 index 00000000..a5781665 --- /dev/null +++ b/docs/guides/scheduled-reports.md @@ -0,0 +1,120 @@ +--- +title: Scheduled Reports +sidebar_label: Scheduled Reports +description: Learn how to set up automated recurring reports with CodeRabbit Pro +sidebar_position: 7 +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +CodeRabbit Pro offers automated recurring reports that provide insights into your GitHub organization's activities. These reports can be customized and delivered through various channels to help teams stay informed about development progress. + +## Setting Up a Recurring Report + +1. Navigate to **Recurring Reports** in the CodeRabbit dashboard +2. Click **Create New Report** +3. Configure the following settings: + +### Schedule Configuration + +- **Frequency**: Choose between weekly, monthly, or custom intervals +- **Days**: Select specific days of the week or month +- **Time**: Set the time for report generation in your timezone + +:::note +Reports summarize events between scheduled intervals. For example, a Monday report will include activities from Friday through Monday. +::: + +### Report Parameters + +- **Repositories**: Select specific repositories to monitor +- **Labels**: Filter by specific GitHub labels +- **Users**: Filter by specific GitHub users +- **Teams**: Narrow focus to specific teams within your organization + +### Report Templates + +CodeRabbit offers several built-in templates: + +1. **Daily Standup Report**: A concise summary of pull requests and activities +2. **Sprint/Release Notes**: Detailed summaries combining related changes +3. **Custom Templates**: Create your own format using prompts + +Example custom prompt: + +``` +Please provide a summary of: +- All pull request activities +- Related issues and comments +- Code review discussions +- Quality gate status + +Do not include: +- Bot conversations +- Sequence diagrams +``` + +### Communication Channels + +Configure where your reports will be delivered: + +#### Email + +- Enter individual email addresses +- Use distribution lists for team-wide delivery + +#### Slack/Discord + +1. Connect your workspace through OAuth +2. Select target channels +3. CodeRabbit bot will be installed automatically + +#### Microsoft Teams + +1. Create a webhook in your Teams channel +2. Add the webhook URL to CodeRabbit +3. Select target channels + +:::tip +Create separate reports if you need to send to multiple channels with different formats +::: + +## Managing Reports + +### Preview Reports + +Test your configuration using the **Preview Report** button to generate a sample report instantly. + +### Grouping Options + +Organize report content by: + +- Repository +- Labels +- Teams + +This helps keep information organized for larger organizations or teams. + +## Best Practices + +1. **Scheduling** + - Align report timing with your team's workflow + - Consider timezone differences for distributed teams + +2. **Content** + - Keep prompts focused on actionable information + - Use grouping to improve readability + - Exclude unnecessary details that may create noise + +3. **Distribution** + - Use channels your team actively monitors + - Consider creating separate reports for different audiences (e.g., management vs. development team) + +## Related Resources + +- [On-demand Reports](./ondemand-reports.md) +- [API Documentation](https://api.coderabbit.ai/api/swagger/) From 4933c77eddedd63f76637a8c74c0bc30371a9366 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 3 Jan 2025 18:43:51 +0000 Subject: [PATCH 02/14] =?UTF-8?q?=F0=9F=8E=A8=20pnpm=20run=20lint:fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [dependabot skip] --- docs/guides/scheduled-reports.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md index a5781665..7fa0da7d 100644 --- a/docs/guides/scheduled-reports.md +++ b/docs/guides/scheduled-reports.md @@ -102,10 +102,12 @@ This helps keep information organized for larger organizations or teams. ## Best Practices 1. **Scheduling** + - Align report timing with your team's workflow - Consider timezone differences for distributed teams 2. **Content** + - Keep prompts focused on actionable information - Use grouping to improve readability - Exclude unnecessary details that may create noise From f8d748c943584f7402611fca1552f40645ad66ea Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 13:55:33 -0500 Subject: [PATCH 03/14] adding images and updates --- docs/guides/scheduled-reports.md | 13 +++++++++---- static/img/guides/report-params.png | Bin 0 -> 85151 bytes static/img/guides/report-platforms.png | Bin 0 -> 58977 bytes 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 static/img/guides/report-params.png create mode 100644 static/img/guides/report-platforms.png diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md index 7fa0da7d..069ba54f 100644 --- a/docs/guides/scheduled-reports.md +++ b/docs/guides/scheduled-reports.md @@ -15,12 +15,14 @@ CodeRabbit Pro offers automated recurring reports that provide insights into you ## Setting Up a Recurring Report -1. Navigate to **Recurring Reports** in the CodeRabbit dashboard -2. Click **Create New Report** +1. Navigate to **Recurring Reports** in the [CodeRabbit dashboard](https://app.coderabbit.ai/reports/recurring) +2. Click **Create Report** 3. Configure the following settings: ### Schedule Configuration +![Schedule Configuration](/img/guides/report-params.png) + - **Frequency**: Choose between weekly, monthly, or custom intervals - **Days**: Select specific days of the week or month - **Time**: Set the time for report generation in your timezone @@ -41,8 +43,9 @@ Reports summarize events between scheduled intervals. For example, a Monday repo CodeRabbit offers several built-in templates: 1. **Daily Standup Report**: A concise summary of pull requests and activities -2. **Sprint/Release Notes**: Detailed summaries combining related changes -3. **Custom Templates**: Create your own format using prompts +2. **Sprint Report**: A structured overview of sprint goals, completed tasks, in-progress work, and blockers +3. **Release Notes**: A high-level changelog with summary and significant changes +4. **Custom Templates**: Create your own format using prompts Example custom prompt: @@ -62,6 +65,8 @@ Do not include: Configure where your reports will be delivered: +![Report Delivery Platforms](/img/guides/report-platforms.png) + #### Email - Enter individual email addresses diff --git a/static/img/guides/report-params.png b/static/img/guides/report-params.png new file mode 100644 index 0000000000000000000000000000000000000000..abde1754b37c64827b7d0699d1f3f4646b9f0fd4 GIT binary patch literal 85151 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̳NUKml6b$lV0TRUBk^KjOO#F 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

tsp%M}jUa9JBeYzdiUy;3i6lp}+ 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 Date: Fri, 3 Jan 2025 14:02:41 -0500 Subject: [PATCH 04/14] add page on advanced custom reporting --- docs/guides/custom-reports.md | 337 ++++++++++++++++++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 docs/guides/custom-reports.md diff --git a/docs/guides/custom-reports.md b/docs/guides/custom-reports.md new file mode 100644 index 00000000..5dcfb4a3 --- /dev/null +++ b/docs/guides/custom-reports.md @@ -0,0 +1,337 @@ +--- +title: Custom Reports +sidebar_label: Custom Reports +description: Learn how to create custom reports with CodeRabbit Pro's flexible reporting system +sidebar_position: 8 +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +CodeRabbit Pro allows you to create custom reports tailored to your specific needs using a flexible prompt-based system. This guide will help you understand how to create effective custom reports. + +## Understanding Custom Reports + +Custom reports allow you to: + +- Define exactly what information you want to see +- Specify the format and structure of the report +- Set custom filtering and grouping rules +- Generate reports in different languages + +## Creating Custom Report Templates + +### Basic Structure + +A custom report template consists of instructions that tell CodeRabbit what information to include and how to present it. Here's a basic example: + +``` +Please provide a summary of: +- All merged pull requests +- Critical bug fixes +- Code review discussions + +Group by: +- Repository +- Team + +Format using: +- Bullet points for changes +- Tables for statistics +``` + +### Available Data Points + +Your custom reports can access the following PR information that you can reference in your prompts: + +#### Pull Request Status + +- `Merged`: boolean (true/false) - Whether the PR has been merged +- `Draft`: boolean (true/false) - Whether the PR is in draft state +- `State`: string ("open"/"closed") - Current state of the PR +- `Mergeable`: boolean (true/false) - Whether the PR can be merged +- `Is stale`: boolean - Whether PR has been inactive for over 168 hours + +#### Basic Information + +- `Pull request number`: number - The PR's identifier +- `Title`: string - PR title +- `URL`: string - Link to the PR +- `Author name`: string - PR creator's username +- `Created at`: datetime - When the PR was created +- `Last activity`: datetime - Most recent activity timestamp +- `Closed at`: datetime (if applicable) - When the PR was closed + +#### Additional Context + +- `Labels`: array of strings - All labels applied to the PR +- `Reviewers`: array of strings - Assigned reviewers' usernames +- `Description`: markdown - Full PR description +- `Summary`: string - AI-generated summary of changes +- `Comments`: array of objects + - `username`: string - Comment author + - `body`: markdown - Comment content + +Here's an example prompt that uses these data points: + +``` +Generate a summary with the following format for each PR: + +## [PR Title](URL) +**Status**: {Use these symbols based on state} +- ๐Ÿ”€ if Merged is true +- ๐Ÿ“ if Draft is true +- ๐Ÿ’ฌ if State is "open" +- ๐Ÿ”’ if State is "closed" and not merged +Add โš ๏ธ if Is stale is true + +**Author**: {Author name} +**Created**: {Created at} +**Labels**: {Labels joined by commas} +**Reviewers**: {Reviewers joined by commas} + +### Summary +{Summary limited to 50 words} + +### Recent Activity +{List last 3 comments with username and content} +``` + +### Formatting Options + +CodeRabbit supports markdown formatting in custom reports. You can use: + +- Headers (`#`, `##`, `###`) +- Lists (bullet points and numbered) +- Tables +- Code blocks +- Bold and italic text +- Links + +### Language Support + +You can generate reports in multiple languages by specifying the ISO language code in your template. For example: + +``` +Language: fr +Please provide a summary of: +- All pull request activities +- Code review discussions +``` + +## Advanced Features + +### Filtering + +Include specific filtering instructions in your template: + +``` +Include only: +- PRs with "critical" or "bug" labels +- Changes to production code +- Reviews from senior developers + +Exclude: +- Automated commits +- Documentation changes +- Dependencies updates +``` + +### Custom Grouping + +Organize information using custom grouping rules: + +``` +Group by: +1. Priority (High/Medium/Low) +2. Component (Frontend/Backend/Infrastructure) +3. Team (Team A/Team B) + +Within each group, sort by: +- Activity date (newest first) +- Impact level +``` + +### Time-Based Analysis + +Add temporal analysis to your reports: + +``` +Provide: +- Week-over-week comparison +- Trend analysis for the past month +- Velocity metrics +- Time to merge statistics +``` + +## Best Practices + +1. **Be Specific** + - Clearly define what should be included/excluded + - Use precise language to avoid ambiguity + - Specify exact metrics you want to track + +2. **Structure Matters** + - Start with high-level summaries + - Use consistent grouping patterns + - Include clear section breaks + +3. **Keep it Relevant** + - Focus on actionable information + - Avoid redundant data points + - Consider your audience's needs + +4. **Optimize Readability** + - Use appropriate formatting + - Include visual breaks + - Maintain consistent styling + +## Example Templates + +### Executive Summary Template + +``` +Provide a high-level overview: +1. Key metrics: + - Total PRs merged + - Average review time + - Code quality scores +2. Notable achievements +3. Blocking issues +4. Resource allocation + +Format: +- Use tables for metrics +- Bullet points for achievements +- Clear headers for sections +``` + +### Technical Deep Dive Template + +``` +Generate a detailed technical report: +1. Code changes: + - Architecture updates + - API modifications + - Database changes +2. Testing coverage +3. Performance impacts +4. Security considerations + +Include: +- Links to significant PRs +- Code snippets for major changes +- Technical debt analysis +``` + +### Advanced Formatting + +Heres a more advanced example of a custom report template: + +``` +Generate a report of all pull requests in the following format: + +- As the first paragraph, start with "๐ŸŸฃ" if merged, "โšซ" if draft, "๐ŸŸข" if open, "๐Ÿ”ด" if closed + - On the same line, add the PR title in bold (and only the title; don't put anything else in bold after that) + - On the same line, add the PR browser link (do not use an api link) + - On the same line, add the last activity date in the format "Day Month Year, Hour:Minute AM/PM (Timezone)" in italic (don't put anything else in italic after that and make sure it's not bold) +- Make a new bullet-point list of high-level changes in the PR + - Start each change with a gitmoji followed by a very terse one-liner to mention at a high level what the change does and to what part of the application it applies to + - Do not start with verbose non-speak such as "The pull request enhances" or "This PR introduces". Keep it terse and straight to the point. Start change descriptions with a verb + - Do not end with justifications or reasons for the changes such as "... enhancing type safety". Stick to the facts, do not make up the outcome of a change + - Limit to the 4 most relevant changes + - Examples: "โœจ Add a rotating tagline on the home page", "๐Ÿ”ง Add func-style to ESLint", "๐Ÿ“ Add download badge to `README.md`", "โœ… Add unit tests for comment trees", "๐Ÿ‘ท Create a pipeline to publish to npmjs.org", "๐Ÿ› Fix comment submission in posts", "๐Ÿ“„ License under AGPL-3.0-or-later", "๐Ÿ“ฑ Change post view for mobile", "๐Ÿ’„ Make sidebar links blue", "๐Ÿฉน Fix unfollow button", "๐Ÿ”’๏ธ Limit login cookies to a specific subdomain", "๐Ÿฅ… Handle errors when commenting in a post", "๐Ÿ™ˆ Stop ignoring `.env` and start ignoring `.env.local` and `.env.*.local`", "โฌ†๏ธ Update lemmy-js-client to v0.19.4", "๐Ÿท๏ธ Define interfaces for pull request events", "๐Ÿ” Add environment variables for Bitbucket Server", "๐Ÿšš Rename exported client instances in test files", "๐Ÿท๏ธ Add type alias `EventKey` and its type guard `isEventKey`", "๐Ÿ—๏ธ Aggregate exports for pull request events in an index file" +- Start the next paragraph with "Blockers:" in bold + - Summarize any issues preventing the PR from progressing + - Some examples: "Waiting for merge", "Waiting for review", "Failing CI/CD", "Needs more tests", "Needs rebase", "@username is waiting for a response", etc. + - If the PR is stale, note it here +- Do not add a "Report" heading +- Make sure there is one empty line between each paragraph + +These are the available emojis and the type of change they represent. Do not using any other emoji. Make sure the change corresponds to the gitmoji. + + +๐ŸŽจ: Improve structure / format of the code. +โšก๏ธ: Improve performance. +๐Ÿ”ฅ: Remove code or files. +๐Ÿ›: Fix a bug. +๐Ÿš‘๏ธ: Critical hotfix. +โœจ: Introduce new features. +๐Ÿ“: Add or update documentation. +๐Ÿš€: Deploy stuff. +๐Ÿ’„: Add or update the UI and style files. +๐ŸŽ‰: Begin a project. +โœ…: Add, update, or pass tests. +๐Ÿ”’๏ธ: Fix security or privacy issues. +๐Ÿ”: Add or update secrets. +๐Ÿ”–: Release / Version tags. +๐Ÿšจ: Fix compiler / linter warnings. +๐Ÿšง: Work in progress. +๐Ÿ’š: Fix CI Build. +โฌ‡๏ธ: Downgrade dependencies. +โฌ†๏ธ: Upgrade dependencies. +๐Ÿ“Œ: Pin dependencies to specific versions. +๐Ÿ‘ท: Add or update CI build system. +๐Ÿ“ˆ: Add or update analytics or track code. +โ™ป๏ธ: Refactor code. +โž•: Add a dependency. +โž–: Remove a dependency. +๐Ÿ”ง: Add or update configuration files. +๐Ÿ”จ: Add or update development scripts. +๐ŸŒ: Internationalization and localization. +โœ๏ธ: Fix typos. +๐Ÿ’ฉ: Write bad code that needs to be improved. +โช๏ธ: Revert changes. +๐Ÿ”€: Merge branches. +๐Ÿ“ฆ๏ธ: Add or update compiled files or packages. +๐Ÿ‘ฝ๏ธ: Update code due to external API changes. +๐Ÿšš: Move or rename resources (e.g.: files, paths, routes). +๐Ÿ“„: Add or update license. +๐Ÿ’ฅ: Introduce breaking changes. +๐Ÿฑ: Add or update assets. +โ™ฟ๏ธ: Improve accessibility. +๐Ÿ’ก: Add or update comments in source code. +๐Ÿป: Write code drunkenly. +๐Ÿ’ฌ: Add or update text and literals. +๐Ÿ—ƒ๏ธ: Perform database related changes. +๐Ÿ”Š: Add or update logs. +๐Ÿ”‡: Remove logs. +๐Ÿ‘ฅ: Add or update contributor(s). +๐Ÿšธ: Improve user experience / usability. +๐Ÿ—๏ธ: Make architectural changes. +๐Ÿ“ฑ: Work on responsive design. +๐Ÿคก: Mock things. +๐Ÿฅš: Add or update an easter egg. +๐Ÿ™ˆ: Add or update a .gitignore file. +๐Ÿ“ธ: Add or update snapshots. +โš—๏ธ: Perform experiments. +๐Ÿ”๏ธ: Improve SEO. +๐Ÿท๏ธ: Add or update types. +๐ŸŒฑ: Add or update seed files. +๐Ÿšฉ: Add, update, or remove feature flags. +๐Ÿฅ…: Catch errors. +๐Ÿ’ซ: Add or update animations and transitions. +๐Ÿ—‘๏ธ: Deprecate code that needs to be cleaned up. +๐Ÿ›‚: Work on code related to authorization, roles and permissions. +๐Ÿฉน: Simple fix for a non-critical issue. +๐Ÿง: Data exploration/inspection. +โšฐ๏ธ: Remove dead code. +๐Ÿงช: Add a failing test. +๐Ÿ‘”: Add or update business logic. +๐Ÿฉบ: Add or update healthcheck. +๐Ÿงฑ: Infrastructure related changes. +๐Ÿง‘โ€๐Ÿ’ป: Improve developer experience. +๐Ÿ’ธ: Add sponsorships or money related infrastructure. +๐Ÿงต: Add or update code related to multithreading or concurrency. +๐Ÿฆบ: Add or update code related to validation. + +``` + +## Related Resources + +- [Scheduled Reports](./scheduled-reports.md) +- [On-demand Reports](./ondemand-reports.md) +- [API Documentation](https://api.coderabbit.ai/api/swagger/) From 119fb4b344f0710ed5227f97ef278efabc94b1bb Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 14:08:14 -0500 Subject: [PATCH 05/14] correct details --- docs/guides/scheduled-reports.md | 99 +++++++++++++++++++++++++++++--- 1 file changed, 92 insertions(+), 7 deletions(-) diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md index 069ba54f..58435840 100644 --- a/docs/guides/scheduled-reports.md +++ b/docs/guides/scheduled-reports.md @@ -23,20 +23,71 @@ CodeRabbit Pro offers automated recurring reports that provide insights into you ![Schedule Configuration](/img/guides/report-params.png) -- **Frequency**: Choose between weekly, monthly, or custom intervals -- **Days**: Select specific days of the week or month -- **Time**: Set the time for report generation in your timezone +The schedule configuration allows you to set precise timing for your reports: -:::note -Reports summarize events between scheduled intervals. For example, a Monday report will include activities from Friday through Monday. +#### Frequency Options + +- **Days of Week** + - Select any combination of days (Sun-Sat) + - Set frequency (every 1-3 weeks) + - Ideal for weekly team syncs or sprint reviews + +- **Days of Month** + - Select specific dates (1-31) + - Special date handling: + - 31st: Runs on the last day of every month + - 30th: Skips February + - 29th: Only runs in February during leap years + +#### Time Settings + +- Set specific time for report generation +- Choose from comprehensive timezone list (e.g., America/New_York) +- Reports run at the specified time in the selected timezone + +:::tip Timezone Consideration +Choose a time that works for all team members, especially for distributed teams across different time zones. ::: ### Report Parameters +Reports can be filtered using multiple parameters: + - **Repositories**: Select specific repositories to monitor -- **Labels**: Filter by specific GitHub labels +- **Labels**: Filter by GitHub labels with operators: + - IN: Match any selected label + - ALL: Match all selected labels - **Users**: Filter by specific GitHub users -- **Teams**: Narrow focus to specific teams within your organization +- **Teams**: Filter by organization teams + - Note: Team filtering is not available for GitLab repositories + +:::note Parameter Configuration +Each parameter can be: + +- Added or removed as needed +- Combined with other parameters for precise filtering +- Modified using different operators +::: + +### Report Content + +Reports include comprehensive PR information: + +- PR metadata: + - Title and description + - Creation and last activity dates + - Status (merged, mergeable, draft) + - State (open, closed, merged) +- Collaboration details: + - Labels and reviewers + - Comments and discussions + - Team associations +- Repository context +- Author information + +:::info Stale PR Detection +PRs are marked as stale after 168 hours (7 days) of inactivity. This helps identify potential workflow bottlenecks. +::: ### Report Templates @@ -104,6 +155,40 @@ Organize report content by: This helps keep information organized for larger organizations or teams. +### Report Lifecycle Management + +Control your reports through their entire lifecycle: + +#### Editing Reports + +- Make your desired changes to any configuration settings +- Click the **Save** button to apply your changes +- Changes take effect from the next scheduled run + +:::tip +Remember to click **Save** when you're done making changes. Your modifications will be discarded if you navigate away without saving. +::: + +#### Disabling Reports + +- Toggle the **Active** switch to temporarily pause a report +- Disabled reports: + - Maintain their configuration + - Skip scheduled runs + - Can be re-enabled at any time + - Show "Disabled" status in the dashboard + +#### Deleting Reports + +- Click the **Delete** button (trash icon) next to the report +- Confirm deletion in the modal +- Note: This action is permanent and cannot be undone +- All report history and configuration will be removed + +:::warning +Deleting a report will immediately stop all scheduled runs and remove access to historical reports. Consider disabling instead of deleting if you might need the report again. +::: + ## Best Practices 1. **Scheduling** From dcaaea96d2f8e53fd2ce61e02754eff9fcabaeeb Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 14:09:03 -0500 Subject: [PATCH 06/14] last few edits --- docs/guides/scheduled-reports.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md index 58435840..1131dba2 100644 --- a/docs/guides/scheduled-reports.md +++ b/docs/guides/scheduled-reports.md @@ -96,7 +96,7 @@ CodeRabbit offers several built-in templates: 1. **Daily Standup Report**: A concise summary of pull requests and activities 2. **Sprint Report**: A structured overview of sprint goals, completed tasks, in-progress work, and blockers 3. **Release Notes**: A high-level changelog with summary and significant changes -4. **Custom Templates**: Create your own format using prompts +4. **[Custom Templates](./custom-reports.md)**: Create your own format using prompts Example custom prompt: @@ -136,7 +136,7 @@ Configure where your reports will be delivered: 3. Select target channels :::tip -Create separate reports if you need to send to multiple channels with different formats +Create separate reports if you need to send to multiple channels with different formats. Learn more about [custom report formats](./custom-reports.md). ::: ## Managing Reports @@ -208,5 +208,6 @@ Deleting a report will immediately stop all scheduled runs and remove access to ## Related Resources +- [Custom Reports](./custom-reports.md) - [On-demand Reports](./ondemand-reports.md) - [API Documentation](https://api.coderabbit.ai/api/swagger/) From 63920773578530dbed7b0c7141580358c17f5d01 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 14:09:39 -0500 Subject: [PATCH 07/14] pnpm run lint:fix --- docs/guides/custom-reports.md | 3 +++ docs/guides/scheduled-reports.md | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/guides/custom-reports.md b/docs/guides/custom-reports.md index 5dcfb4a3..70c0f73e 100644 --- a/docs/guides/custom-reports.md +++ b/docs/guides/custom-reports.md @@ -170,16 +170,19 @@ Provide: ## Best Practices 1. **Be Specific** + - Clearly define what should be included/excluded - Use precise language to avoid ambiguity - Specify exact metrics you want to track 2. **Structure Matters** + - Start with high-level summaries - Use consistent grouping patterns - Include clear section breaks 3. **Keep it Relevant** + - Focus on actionable information - Avoid redundant data points - Consider your audience's needs diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md index 1131dba2..5f79d604 100644 --- a/docs/guides/scheduled-reports.md +++ b/docs/guides/scheduled-reports.md @@ -28,6 +28,7 @@ The schedule configuration allows you to set precise timing for your reports: #### Frequency Options - **Days of Week** + - Select any combination of days (Sun-Sat) - Set frequency (every 1-3 weeks) - Ideal for weekly team syncs or sprint reviews @@ -67,7 +68,7 @@ Each parameter can be: - Added or removed as needed - Combined with other parameters for precise filtering - Modified using different operators -::: + ::: ### Report Content From 3602c0564239db546c801b790a003ccc7402c94f Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 14:14:52 -0500 Subject: [PATCH 08/14] adding group details --- docs/guides/scheduled-reports.md | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md index 5f79d604..1fbff74a 100644 --- a/docs/guides/scheduled-reports.md +++ b/docs/guides/scheduled-reports.md @@ -148,13 +148,34 @@ Test your configuration using the **Preview Report** button to generate a sample ### Grouping Options -Organize report content by: +Reports can be organized hierarchically using groups and subgroups: -- Repository -- Labels -- Teams +#### Primary Grouping -This helps keep information organized for larger organizations or teams. +Select from these options to organize your main report structure: + +- **None**: No grouping, flat list of items +- **Repository**: Group by source repository +- **Label**: Group by PR labels +- **Team**: Group by team ownership +- **User**: Group by PR author + +#### Subgrouping + +After selecting a primary group, you can add a secondary level of organization: + +- Choose any remaining grouping option for further categorization +- Subgroups create a nested hierarchy within primary groups +- Select "None" to use only primary grouping + +:::tip +Choose grouping options that match your team's workflow. For example: + +- Use Repository โ†’ Team for large multi-team organizations +- Use User โ†’ Label to track individual contributions by type +- Use Team โ†’ Repository to monitor team activity across repos + +::: ### Report Lifecycle Management From f6d829a144add281173719bb6230a0bdd6cf9b85 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 14:24:01 -0500 Subject: [PATCH 09/14] adding notes and fix position --- docs/guides/custom-reports.md | 2 +- docs/guides/ondemand-reports.md | 14 +++++++++++++- docs/guides/scheduled-reports.md | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/guides/custom-reports.md b/docs/guides/custom-reports.md index 70c0f73e..de168c7b 100644 --- a/docs/guides/custom-reports.md +++ b/docs/guides/custom-reports.md @@ -2,7 +2,7 @@ title: Custom Reports sidebar_label: Custom Reports description: Learn how to create custom reports with CodeRabbit Pro's flexible reporting system -sidebar_position: 8 +sidebar_position: 7 --- ```mdx-code-block diff --git a/docs/guides/ondemand-reports.md b/docs/guides/ondemand-reports.md index ae9bed7c..bad251f7 100644 --- a/docs/guides/ondemand-reports.md +++ b/docs/guides/ondemand-reports.md @@ -2,7 +2,7 @@ title: On-demand Reports sidebar_label: On-demand Reports description: CodeRabbit offers a way to generate on-demand reports using a simple API request -sidebar_position: 6 +sidebar_position: 8 --- ```mdx-code-block @@ -12,6 +12,18 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; ``` +## Overview + +CodeRabbit's reporting feature helps you track and analyze pull request activity across your repositories. There are two ways to generate reports: + +1. **[Scheduled Reports](./scheduled-reports.md)** - Set up automated recurring reports that are delivered on a schedule to your preferred channels (email, Slack, MS Teams). This is the recommended way to keep your team informed about development progress. + +2. **On-demand Reports** (this guide) - Generate reports programmatically through our API when you need them. This is useful for integration with your own tools and workflows. + +If you're new to CodeRabbit's reporting features, we recommend starting with [Scheduled Reports](./scheduled-reports.md) to understand the available options and capabilities. + +## API Access + CodeRabbit offers a way to generate on-demand reports using the [CodeRabbit API](https://api.coderabbit.ai/api/swagger/). You will need an API Key to access the CodeRabbit API and generate an on-demand report. diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md index 1fbff74a..a5287f48 100644 --- a/docs/guides/scheduled-reports.md +++ b/docs/guides/scheduled-reports.md @@ -2,7 +2,7 @@ title: Scheduled Reports sidebar_label: Scheduled Reports description: Learn how to set up automated recurring reports with CodeRabbit Pro -sidebar_position: 7 +sidebar_position: 6 --- ```mdx-code-block From f617103ae38726d50e468d796324eea78121dbcb Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 14:30:21 -0500 Subject: [PATCH 10/14] add docstrings command to commands --- docs/guides/commands.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/guides/commands.md b/docs/guides/commands.md index 8b8965a8..78142454 100644 --- a/docs/guides/commands.md +++ b/docs/guides/commands.md @@ -21,3 +21,4 @@ The following commands are available (invoked as PR comments): - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. +- `@coderabbitai generate docstrings` to generate docstrings for functions in the PR. Learn more about [docstrings generation](/finishing-touches/docstrings). From 9842f98dbe4045e38c5e23c3b64e9909706b99fd Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 14:43:33 -0500 Subject: [PATCH 11/14] add notes on different languages --- docs/guides/custom-reports.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/guides/custom-reports.md b/docs/guides/custom-reports.md index de168c7b..86cb1b68 100644 --- a/docs/guides/custom-reports.md +++ b/docs/guides/custom-reports.md @@ -43,6 +43,28 @@ Format using: - Tables for statistics ``` +### Example for different languages + +Japanese: + +``` +ใƒฌใƒใƒผใƒˆใ‚’่‹ฑ่ชžใงใฏใชใๆ—ฅๆœฌ่ชžใง้€ไฟกใ—ใฆใใ ใ•ใ„ใ€‚ + +ไปฅไธ‹ใฎ่ฆ็ด„ใ‚’ๆไพ›ใ—ใฆใใ ใ•ใ„๏ผš +- ใ™ในใฆใฎใƒ—ใƒซใƒชใ‚ฏใ‚จใ‚นใƒˆๆดปๅ‹• +- ใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผใฎ่ญฐ่ซ– +``` + +French: + +``` +Veuillez envoyer le rapport en franรงais et non en anglais. + +Veuillez fournir un rรฉsumรฉ de : +- Toutes les activitรฉs de demandes de fusion +- Discussions sur la rรฉvision de code +``` + ### Available Data Points Your custom reports can access the following PR information that you can reference in your prompts: From 28ee6b5856d1fed5ab27278b009a1fa467aaab9d Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 14:45:35 -0500 Subject: [PATCH 12/14] add note on languages --- docs/guides/scheduled-reports.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md index a5287f48..5ec06f0a 100644 --- a/docs/guides/scheduled-reports.md +++ b/docs/guides/scheduled-reports.md @@ -94,10 +94,10 @@ PRs are marked as stale after 168 hours (7 days) of inactivity. This helps ident CodeRabbit offers several built-in templates: -1. **Daily Standup Report**: A concise summary of pull requests and activities -2. **Sprint Report**: A structured overview of sprint goals, completed tasks, in-progress work, and blockers -3. **Release Notes**: A high-level changelog with summary and significant changes -4. **[Custom Templates](./custom-reports.md)**: Create your own format using prompts +1. **Daily Standup Report**: A concise summary of pull requests and activities. +2. **Sprint Report**: A structured overview of sprint goals, completed tasks, in-progress work, and blockers. +3. **Release Notes**: A high-level changelog with summary and significant changes. +4. **[Custom Templates](./custom-reports.md)**: Create your own format using prompts. Has support for multiple languages. Example custom prompt: From 2eb8adfa91b36257797aab32c474aef80fccafea Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 14:54:44 -0500 Subject: [PATCH 13/14] fix lint --- docs/guides/scheduled-reports.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md index 5ec06f0a..f65e8991 100644 --- a/docs/guides/scheduled-reports.md +++ b/docs/guides/scheduled-reports.md @@ -101,7 +101,7 @@ CodeRabbit offers several built-in templates: Example custom prompt: -``` +```text Please provide a summary of: - All pull request activities - Related issues and comments From efc5c2720831a88c574f3b00dcab08d1eab63f46 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 3 Jan 2025 15:29:26 -0500 Subject: [PATCH 14/14] fix fenced off code --- docs/guides/custom-reports.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/guides/custom-reports.md b/docs/guides/custom-reports.md index 86cb1b68..1325c12c 100644 --- a/docs/guides/custom-reports.md +++ b/docs/guides/custom-reports.md @@ -28,7 +28,7 @@ Custom reports allow you to: A custom report template consists of instructions that tell CodeRabbit what information to include and how to present it. Here's a basic example: -``` +```text Please provide a summary of: - All merged pull requests - Critical bug fixes @@ -47,7 +47,7 @@ Format using: Japanese: -``` +```text ใƒฌใƒใƒผใƒˆใ‚’่‹ฑ่ชžใงใฏใชใๆ—ฅๆœฌ่ชžใง้€ไฟกใ—ใฆใใ ใ•ใ„ใ€‚ ไปฅไธ‹ใฎ่ฆ็ด„ใ‚’ๆไพ›ใ—ใฆใใ ใ•ใ„๏ผš @@ -57,7 +57,7 @@ Japanese: French: -``` +```text Veuillez envoyer le rapport en franรงais et non en anglais. Veuillez fournir un rรฉsumรฉ de : @@ -99,7 +99,7 @@ Your custom reports can access the following PR information that you can referen Here's an example prompt that uses these data points: -``` +```text Generate a summary with the following format for each PR: ## [PR Title](URL) @@ -137,7 +137,7 @@ CodeRabbit supports markdown formatting in custom reports. You can use: You can generate reports in multiple languages by specifying the ISO language code in your template. For example: -``` +```text Language: fr Please provide a summary of: - All pull request activities @@ -150,7 +150,7 @@ Please provide a summary of: Include specific filtering instructions in your template: -``` +```text Include only: - PRs with "critical" or "bug" labels - Changes to production code @@ -166,7 +166,7 @@ Exclude: Organize information using custom grouping rules: -``` +```text Group by: 1. Priority (High/Medium/Low) 2. Component (Frontend/Backend/Infrastructure) @@ -181,7 +181,7 @@ Within each group, sort by: Add temporal analysis to your reports: -``` +```text Provide: - Week-over-week comparison - Trend analysis for the past month @@ -218,7 +218,7 @@ Provide: ### Executive Summary Template -``` +```text Provide a high-level overview: 1. Key metrics: - Total PRs merged @@ -236,7 +236,7 @@ Format: ### Technical Deep Dive Template -``` +```text Generate a detailed technical report: 1. Code changes: - Architecture updates @@ -256,7 +256,7 @@ Include: Heres a more advanced example of a custom report template: -``` +```text Generate a report of all pull requests in the following format: - As the first paragraph, start with "๐ŸŸฃ" if merged, "โšซ" if draft, "๐ŸŸข" if open, "๐Ÿ”ด" if closed