| # Gemini Project Profile: gerrit |
| |
| This document provides a summary of the development environment for the gerrit project. |
| |
| ## Overview |
| |
| Gerrit is a web-based code review tool, which integrates with Git and allows developers to review, approve, and merge code changes. |
| |
| - **Primary Language (Backend)**: Java |
| - **Primary Language (Frontend)**: TypeScript (in `polygerrit-ui`) |
| - **Build Tool**: Bazel |
| - **Package Manager**: `yarn` (for frontend dependencies) |
| |
| ## Sub-projects |
| |
| This repository contains multiple sub-projects. For more detailed information, please refer to the `GEMINI.md` file within each sub-project directory. |
| |
| - **`polygerrit-ui`**: The frontend web application. See `polygerrit-ui/GEMINI.md` for details on the frontend development environment. |
| |
| ## Backend (Java) |
| |
| The core backend logic is written in Java and is located in the `java/` directory. The main package is `com.google.gerrit`. Key sub-packages include: |
| - `acceptance`: Acceptance tests |
| - `server`: Core server logic, including servlets, REST API endpoints, and change processing. |
| - `git`: Git-related operations and management. |
| - `sshd`: SSH server implementation for Git operations and administration. |
| - `index`: Indexing and search functionality. |
| - `auth`: Authentication and authorization logic. |
| |
| ## Testing (Java) |
| |
| Java tests are located in the `javatests/` directory, mirroring the structure of the `java/` directory. Key sub-packages include: |
| - `acceptance`: Acceptance tests |
| - `integration`: Integration tests |
| - `server`: Tests for the core server logic. |
| - `git`: Tests for Git-related operations. |
| |
| ## Documentation |
| |
| The `Documentation/` directory contains a wealth of information about Gerrit, including: |
| - **User Guide**: `user-*.txt` files explain how to use Gerrit. |
| - **Administrator Guide**: `config-*.txt` and `install-*.txt` files provide information for administrators. |
| - **Developer Guide**: `dev-*.txt` files contain information for developers working on Gerrit itself. |
| - **REST API**: `rest-api-*.txt` files document the REST API endpoints. |
| - **Commands**: `cmd-*.txt` files document the available command-line tools. |