AGit Setup
In Gitea 1.13
, support for AGit was added. AGit enables users to create pull requests directly, even without write permissions of the repository, eliminating the need to fork it. This helps reduce the number of duplicated repositories and minimizes unnecessary disk usage.
note
Git version 2.29 or higher is required on the server side for this to work.
Creating PRs with AGit
AGit allows to create PRs while pushing code to the remote repo. This can be done by pushing to the branch followed by a specific refspec (a location identifier known to git). The following example illustrates this:
git push origin HEAD:refs/for/main
The command has the following structure:
HEAD
: The target branchrefs/<for|draft|for-review>/<branch>
: The target PR typefor
: Create a normal PR with<branch>
as the target branchdraft
/for-review
: Currently ignored silently
<branch>/<session>
: The target branch to open the PR-o <topic|title|description>
: Options for the PRtitle
: The PR titletopic
: The branch name the PR should be opened fordescription
: The PR descriptionforce-push=true
: Specifies whether to force-update the target branch.- Note: omitting the value and using just
-o force-push
will not work.
- Note: omitting the value and using just
Here's another advanced example for creating a new PR targeting main
with topic
, title
, and description
:
git push origin HEAD:refs/for/main -o topic="Topic of my PR" -o title="Title of the PR" -o description="# The PR Description\nThis can be **any** markdown content.\n- [x] Ok"