diff --git a/docs/docs/installation/gitea.md b/docs/docs/installation/gitea.md new file mode 100644 index 00000000..476497f7 --- /dev/null +++ b/docs/docs/installation/gitea.md @@ -0,0 +1,46 @@ +## Run a Gitea webhook server + +1. In Gitea create a new user and give it "Reporter" role ("Developer" if using Pro version of the agent) for the intended group or project. + +2. For the user from step 1. generate a `personal_access_token` with `api` access. + +3. Generate a random secret for your app, and save it for later (`webhook_secret`). For example, you can use: + +```bash +WEBHOOK_SECRET=$(python -c "import secrets; print(secrets.token_hex(10))") +``` + +4. Clone this repository: + +```bash +git clone https://github.com/qodo-ai/pr-agent.git +``` + +5. Prepare variables and secrets. Skip this step if you plan on setting these as environment variables when running the agent: +1. In the configuration file/variables: + - Set `config.git_provider` to "gitea" + +2. In the secrets file/variables: + - Set your AI model key in the respective section + - In the [Gitea] section, set `personal_access_token` (with token from step 2) and `webhook_secret` (with secret from step 3) + +6. Build a Docker image for the app and optionally push it to a Docker repository. We'll use Dockerhub as an example: + +```bash +docker build -f /docker/Dockerfile -t pr-agent:gitea_app --target gitea_app . +docker push codiumai/pr-agent:gitea_webhook # Push to your Docker repository +``` + +7. Set the environmental variables, the method depends on your docker runtime. Skip this step if you included your secrets/configuration directly in the Docker image. + +```bash +CONFIG__GIT_PROVIDER=gitea +GITEA__PERSONAL_ACCESS_TOKEN= +GITEA__WEBHOOK_SECRET= +GITEA__URL=https://gitea.com # Or self host +OPENAI__KEY= +``` + +8. Create a webhook in your Gitea project. Set the URL to `http[s]:///api/v1/gitea_webhooks`, the secret token to the generated secret from step 3, and enable the triggers `push`, `comments` and `merge request events`. + +9. Test your installation by opening a merge request or commenting on a merge request using one of PR Agent's commands. diff --git a/docs/docs/installation/index.md b/docs/docs/installation/index.md index 9831078d..cc593deb 100644 --- a/docs/docs/installation/index.md +++ b/docs/docs/installation/index.md @@ -9,6 +9,7 @@ There are several ways to use self-hosted PR-Agent: - [GitLab integration](./gitlab.md) - [BitBucket integration](./bitbucket.md) - [Azure DevOps integration](./azure.md) +- [Gitea integration](./gitea.md) ## Qodo Merge 💎 diff --git a/docs/docs/installation/locally.md b/docs/docs/installation/locally.md index cd981f96..9ceb077b 100644 --- a/docs/docs/installation/locally.md +++ b/docs/docs/installation/locally.md @@ -1,7 +1,7 @@ To run PR-Agent locally, you first need to acquire two keys: 1. An OpenAI key from [here](https://platform.openai.com/api-keys){:target="_blank"}, with access to GPT-4 and o4-mini (or a key for other [language models](https://qodo-merge-docs.qodo.ai/usage-guide/changing_a_model/), if you prefer). -2. A personal access token from your Git platform (GitHub, GitLab, BitBucket) with repo scope. GitHub token, for example, can be issued from [here](https://github.com/settings/tokens){:target="_blank"} +2. A personal access token from your Git platform (GitHub, GitLab, BitBucket,Gitea) with repo scope. GitHub token, for example, can be issued from [here](https://github.com/settings/tokens){:target="_blank"} ## Using Docker image @@ -40,6 +40,19 @@ To invoke a tool (for example `review`), you can run PR-Agent directly from the docker run --rm -it -e CONFIG.GIT_PROVIDER=bitbucket -e OPENAI.KEY=$OPENAI_API_KEY -e BITBUCKET.BEARER_TOKEN=$BITBUCKET_BEARER_TOKEN codiumai/pr-agent:latest --pr_url= review ``` +- For Gitea: + + ```bash + docker run --rm -it -e OPENAI.KEY= -e CONFIG.GIT_PROVIDER=gitea -e GITEA.PERSONAL_ACCESS_TOKEN= codiumai/pr-agent:latest --pr_url review + ``` + + If you have a dedicated Gitea instance, you need to specify the custom url as variable: + + ```bash + -e GITEA.URL= + ``` + + For other git providers, update `CONFIG.GIT_PROVIDER` accordingly and check the [`pr_agent/settings/.secrets_template.toml`](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/.secrets_template.toml) file for environment variables expected names and values. ### Utilizing environment variables diff --git a/docs/docs/installation/pr_agent.md b/docs/docs/installation/pr_agent.md index 1982b7a1..9a0e3f29 100644 --- a/docs/docs/installation/pr_agent.md +++ b/docs/docs/installation/pr_agent.md @@ -47,3 +47,11 @@ Configure PR-Agent with Azure DevOps as: - Local Azure DevOps webhook [View Azure DevOps Integration Guide →](https://qodo-merge-docs.qodo.ai/installation/azure/) + +## 🔷 Gitea Integration + +Deploy PR-Agent on Gitea as: + +- Local Gitea webhook server + +[View Gitea Integration Guide →](https://qodo-merge-docs.qodo.ai/installation/gitea/) diff --git a/docs/docs/usage-guide/automations_and_usage.md b/docs/docs/usage-guide/automations_and_usage.md index 9c3e29fd..0a634e77 100644 --- a/docs/docs/usage-guide/automations_and_usage.md +++ b/docs/docs/usage-guide/automations_and_usage.md @@ -30,7 +30,7 @@ verbosity_level=2 This is useful for debugging or experimenting with different tools. 3. **git provider**: The [git_provider](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L5) field in a configuration file determines the GIT provider that will be used by Qodo Merge. Currently, the following providers are supported: -`github` **(default)**, `gitlab`, `bitbucket`, `azure`, `codecommit`, `local`, and `gerrit`. +`github` **(default)**, `gitlab`, `bitbucket`, `azure`, `codecommit`, `local`,`gitea`, and `gerrit`. ### CLI Health Check @@ -312,3 +312,16 @@ pr_commands = [ "/improve", ] ``` + +### Gitea Webhook + +After setting up a Gitea webhook, to control which commands will run automatically when a new MR is opened, you can set the `pr_commands` parameter in the configuration file, similar to the GitHub App: + +```toml +[gitea] +pr_commands = [ + "/describe", + "/review", + "/improve", +] +``` diff --git a/docs/docs/usage-guide/index.md b/docs/docs/usage-guide/index.md index dba5a569..79df0be6 100644 --- a/docs/docs/usage-guide/index.md +++ b/docs/docs/usage-guide/index.md @@ -12,6 +12,7 @@ It includes information on how to adjust Qodo Merge configurations, define which - [GitHub App](./automations_and_usage.md#github-app) - [GitHub Action](./automations_and_usage.md#github-action) - [GitLab Webhook](./automations_and_usage.md#gitlab-webhook) + - [Gitea Webhook](./automations_and_usage.md#gitea-webhook) - [BitBucket App](./automations_and_usage.md#bitbucket-app) - [Azure DevOps Provider](./automations_and_usage.md#azure-devops-provider) - [Managing Mail Notifications](./mail_notifications.md) diff --git a/docs/docs/usage-guide/introduction.md b/docs/docs/usage-guide/introduction.md index 11e56b32..74838c1c 100644 --- a/docs/docs/usage-guide/introduction.md +++ b/docs/docs/usage-guide/introduction.md @@ -7,5 +7,5 @@ After [installation](https://qodo-merge-docs.qodo.ai/installation/), there are t Specifically, CLI commands can be issued by invoking a pre-built [docker image](https://qodo-merge-docs.qodo.ai/installation/locally/#using-docker-image), or by invoking a [locally cloned repo](https://qodo-merge-docs.qodo.ai/installation/locally/#run-from-source). -For online usage, you will need to setup either a [GitHub App](https://qodo-merge-docs.qodo.ai/installation/github/#run-as-a-github-app) or a [GitHub Action](https://qodo-merge-docs.qodo.ai/installation/github/#run-as-a-github-action) (GitHub), a [GitLab webhook](https://qodo-merge-docs.qodo.ai/installation/gitlab/#run-a-gitlab-webhook-server) (GitLab), or a [BitBucket App](https://qodo-merge-docs.qodo.ai/installation/bitbucket/#run-using-codiumai-hosted-bitbucket-app) (BitBucket). +For online usage, you will need to setup either a [GitHub App](https://qodo-merge-docs.qodo.ai/installation/github/#run-as-a-github-app) or a [GitHub Action](https://qodo-merge-docs.qodo.ai/installation/github/#run-as-a-github-action) (GitHub), a [GitLab webhook](https://qodo-merge-docs.qodo.ai/installation/gitlab/#run-a-gitlab-webhook-server) (GitLab), or a [BitBucket App](https://qodo-merge-docs.qodo.ai/installation/bitbucket/#run-using-codiumai-hosted-bitbucket-app) (BitBucket) or a [Gitea webhook](https://qodo-merge-docs.qodo.ai/installation/gitea/#run-a-gitea-webhook-server) (Gitea). These platforms also enable to run Qodo Merge specific tools automatically when a new PR is opened, or on each push to a branch.