Run or Schedule Custom Email
This scheduled job will automatically send email notifications periodically based on a condition and email template. This is particularly useful if you want a daily summary of what has happened in Bitbucket.
You will just need to configure the interval and then provide a subject and an email template, as well as the email format (plain text or HTML) and a list of recipients.
List all public repositories
This example sends an email notification listing all the public repositories present in your Bitbucket Server instance.
The email format selected should be Plain text.
You can use the following code below in the Condition and Configuration section:
Unresolved directive in <stdin> - include::{projectdir}/bitbucket/src/test/resources/examples/docs/bitbucket/ListPublicRepos.groovy[tag=ex1]
As this is a condition the email will only be sent if there are public repositories in your Bitbucket instance.
- We find all public repositories
For each public repository we build a string containing the project key and repository slug
We use the config variable in the binding to store the content for use in the template below (see additional configuration section for details)
The condition will evaluate to true if we have any private repositories and then the email will be sent
The subject template:
List of public repositories:
The body template:
These repositories are public, you should review them:
$publicReposContent
The result should look similar to the following:
These repositories are public, you should review them:
PROJECT_1/aPublicRepo
PROJECT_5/anotherPublicRepo
Additional Configuration in Emails
You may notice the syntax for getting content in the template is a bit clunky, as the template engine does not allow you to use the import
keyword. Rather than doing this, you can pass in a config
map to the bindings for both the subject and body templates. This is done in the Mail configuration section.
A useful example of a Mail configuration section that defines config variables for all pull requests that have been merged in the last 24 hours is:
Unresolved directive in <stdin> - include::{projectdir}/bitbucket/src/test/resources/examples/docs/bitbucket/PullRequestMergedSinceYesterday.groovy[tag=ex1]
You will have to change the projectKey
and repoSlug
variable above to match your own. The email format selected should be HTML.
The subject template:
Unresolved directive in <stdin> - include::{projectdir}/bitbucket/src/test/resources/templates/AllMergedPullRequests.template[tag=subject]
The body template:
Unresolved directive in <stdin> - include::{projectdir}/bitbucket/src/test/resources/templates/AllMergedPullRequests.template[tag=body]
As a result of that configuration, an email will be sent to the selected email addresses with a content similar to the following one:
Clicking on the links will take you to that pull request in Bitbucket.