This documentation is for a Forgejo version which is not yet released.
To read the documentation for the released version of Forgejo, navigate to the latest version.
Merge Message Templates
File Names
Possible file names for PR (Pull Request) default merge message templates:
.forgejo/default_merge_message/MERGE_TEMPLATE.md.forgejo/default_merge_message/REBASE_TEMPLATE.md.forgejo/default_merge_message/REBASE-MERGE_TEMPLATE.md.forgejo/default_merge_message/SQUASH_TEMPLATE.md.forgejo/default_merge_message/MANUALLY-MERGED_TEMPLATE.md.forgejo/default_merge_message/REBASE-UPDATE-ONLY_TEMPLATE.md
Note: .gitea as the root directory is also recognized and kept only for compatibility reasons.
If Forgejo cannot find the file in the repository, it will search the CustomPath for a folder named default_merge_message which may contain site-wide templates.
Title/Body separation
The first line of the template creates the title, the rest makes the body of the message. Without a template, the default texts are:
- Title :
Merge pull request '[PR title]' ([PR reference]) from [head branch] into [base branch]. - Body :
Reviewed-on: [PR url].
You can customize the title and body of the default message following these rules:
- To replace each of those sections the first line of the template is used to replace the title and other lines the body.
- For the title, leading and trailing whitespace is trimmed
- For the body, trailing whitespace is trimmed from the last line
- If only the title is meant to be changed a single-line template can be used.
- To keep the default title but change the default body the template needs to start with a newline
\ncharacter. - To remove the default title (make it empty) any white-space character can be inserted in the first line of the template, as white spaces are trimmed.
Examples
Replace the default title and keep the default body:
Merge Title
Replace the default title and make the default body empty:
Merge Title\n
Keep the default title and replace the default body:
\n
Merge Body
The space in the first line makes the default title empty and replace the default body:
\n
Merge body
Variables
You can use the following variables enclosed in ${} inside these templates, which follow os.Expand syntax:
- BaseRepoOwnerName: Base repository owner name of this pull request
- BaseRepoName: Base repository name of this pull request
- BaseBranch: Base repository target branch name of this pull request
- HeadRepoOwnerName: Head repository owner name of this pull request
- HeadRepoName: Head repository name of this pull request
- HeadBranch: Head repository branch name of this pull request
- PullRequestTitle: Pull request’s title
- PullRequestDescription: Pull request’s description
- PullRequestPosterName: Pull request’s poster name
- PullRequestIndex: Pull request’s index number
- PullRequestReference: Pull request’s reference character with index number, i.e., #1, !2
- ClosingIssues: A string containing all issues that will be closed by this pull request, i.e.,
close #1, close #2 - ReviewedOn: A string containing
Reviewed-on: <link>with the link to the pull request - ReviewedBy: Lines containing
Reviewed-by: <username> <<email>>with the names and emails of the reviewers
Rebase
When rebasing without a merge commit, REBASE_TEMPLATE.md modifies the message of the last commit. The following additional variables are available in this template:
- CommitTitle: Commit’s title
- CommitBody: Commit’s body text