# Gerrit AI Review Agent for ChatGPT

Implementation of Gerrit's AI Code Review Agent API on top of OpenAI's ChatGPT.

[Install](#install-in-gerrit) this plugin and enable the Gerrit AI chat to enjoy
a side-by-side collaboration with ChatGPT on the Change screen.

## License

This script is 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.

## How to use

### Prerequisites

Gerrit v3.14 or later with the following additional plugins:

- [Groovy scripting provider](https://github.com/GerritForge/groovy-provider/)
- [GerritForge's AI Review Agent Provider](https://github.com/GerritForge/ai-review-agent-provider)

### [Install in Gerrit](#install-in-gerrit)

Copy the `ai-review-agent-chatgpt-1.0.groovy` script into your Gerrit site (`$GERRIT_SITE`)
plugins' directory.

```bash
cp ai-review-agent-chatgpt-1.0.groovy "$GERRIT_SITE/plugins/"
```