--- title: Code Reviews description: This document outlines our comprehensive code review process at Formbricks. We maintain high quality, consistency, and best practices within our codebase through this structured approach. icon: eyes --- ## Initial Checks via GitHub Workflows When a Pull Request (PR) is opened, our automated GitHub workflows perform several critical checks: > **Note:** At Formbricks, all feature changes must be submitted through Pull Requests - direct pushes to protected branches are not allowed. - **PR Title Validation**: Ensures clear, descriptive titles following our conventions - **Build Verification**: Confirms that the build process completes successfully - **Test Suite**: Runs all automated tests to catch potential regressions - **Translation Check**: Identifies any missing translation keys - **Linting**: Enforces our coding standards and style guidelines These checks must pass before proceeding to manual review. ## Reviewer Assignment Once all automated checks pass successfully: - A team member with relevant expertise is assigned as the reviewer - The reviewer is notified automatically through GitHub - Priority is given based on PR urgency and complexity ## Functional Testing and UI Review The assigned reviewer performs thorough testing: ### Functionality Testing - Verifies that new features work as specified - Tests edge cases and error scenarios - Ensures proper error handling - Checks integration with existing features ### UI Review (if applicable) - Validates visual consistency - Checks responsive behavior - Ensures accessibility standards - Reviews user interaction flows ## Feedback Process If improvements are needed: - Reviewers add inline comments on GitHub - Feedback is specific and actionable - Code suggestions are provided when helpful - Comments follow our constructive feedback guidelines ## In-depth Code Review Our code review process utilizes both human expertise and AI assistance: ### Manual Review - Code structure and organization - Design patterns and best practices - Performance considerations - Security implications - Documentation completeness ### AI-Assisted Review We leverage advanced AI tools for additional insights: - **Code Rabbit**: Automated code analysis and suggestions - **Sonarqube**: Code quality metrics and potential issues ## Resolution and Merge Final steps before merging: - All review comments must be addressed - Required changes are implemented - At least one reviewer approval is required - All conversations must be resolved - CI/CD pipeline passes again - PR is merged into the target branch ## Best Practices - Keep PRs focused and reasonably sized - Respond to review comments promptly - Use the "Request Changes" feature when necessary - Mark conversations as resolved when addressed - Use approve/request changes workflow appropriately ## Conclusion Our code review process combines automated checks, manual review, and AI assistance to ensure high-quality code contributions. This multi-layered approach helps maintain code quality while promoting knowledge sharing within the team. Remember: Code reviews are not just about finding issues—they're opportunities for learning and improving our codebase together.