208 lines
8.6 KiB
Rust
208 lines
8.6 KiB
Rust
/* This file is part of issue-bot.
|
|
*
|
|
* issue-bot is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* issue-bot is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with issue-bot. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
use super::*;
|
|
|
|
static BASE_ISSUE_URL: &str = "{base_url}/{repo}/issues";
|
|
|
|
pub fn new_issue_failure(e: Error, conf: &Configuration) -> String {
|
|
format!("Hello,
|
|
|
|
Unfortunately we were not able to create your issue. The reason was: `{}`. Please contact the repository's owners for assistance.
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>", e, local_part = &conf.local_part, domain = &conf.domain, bot_name = &conf.bot_name)
|
|
}
|
|
|
|
pub fn new_issue_success(
|
|
title: String,
|
|
password: Password,
|
|
issue_id: i64,
|
|
conf: &Configuration,
|
|
) -> String {
|
|
format!("Hello,
|
|
|
|
You have successfully submitted an issue titled \"{title}\". Your issue can be found at
|
|
|
|
{url}/{issue_id}
|
|
|
|
You will receive replies from other users. To unsubscribe from the conversation, send an email to {local_part}+{password}+unsubscribe@{domain}.
|
|
|
|
To reply to other users or post new comments, send your text to {local_part}+{password}+reply@{domain}.
|
|
|
|
To close the issue, send an email to {local_part}+{password}+close@{domain}.
|
|
|
|
Please keep this email in order to be able to keep in touch with your issue.
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>", title = title, password = password, issue_id = issue_id, url = BASE_ISSUE_URL.replace("{base_url}", &conf.base_url).replace("{repo}", &conf.repo), local_part = &conf.local_part, domain = &conf.domain, bot_name = &conf.bot_name)
|
|
}
|
|
|
|
pub fn new_reply_failure(e: Error, conf: &Configuration) -> String {
|
|
format!("Hello,
|
|
|
|
Unfortunately we were not able to post your reply. The reason was: `{}`. Please contact the repository's owners for assistance.
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>", e, local_part = &conf.local_part, domain = &conf.domain, bot_name = &conf.bot_name)
|
|
}
|
|
|
|
pub fn new_reply_success(
|
|
title: String,
|
|
password: Password,
|
|
issue_id: i64,
|
|
is_subscribed: bool,
|
|
conf: &Configuration,
|
|
) -> String {
|
|
if is_subscribed {
|
|
format!("Hello,
|
|
|
|
Your reply to issue \"{title}\" has been successfully posted. You can view the discussion here:
|
|
|
|
{url}/{issue_id}
|
|
|
|
You will receive replies from other users. To unsubscribe from the conversation, send an email to {local_part}+{password}+unsubscribe@{domain}.
|
|
|
|
To reply to other users or post new comments, send your text to {local_part}+{password}+reply@{domain}.
|
|
|
|
To close the issue, send an email to {local_part}+{password}+close@{domain}.
|
|
|
|
Please keep this email in order to be able to keep in touch with your issue.
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>", title = title, password = password, issue_id = issue_id, url = BASE_ISSUE_URL.replace("{base_url}", &conf.base_url).replace("{repo}", &conf.repo), local_part = &conf.local_part, domain = &conf.domain, bot_name = &conf.bot_name)
|
|
} else {
|
|
format!("Hello,
|
|
|
|
Your reply to issue \"{title}\" has been successfully posted. You can view the discussion here:
|
|
|
|
{url}/{issue_id}
|
|
|
|
You will not receive replies from other users. To subscribe to the conversation, send an email to {local_part}+{password}+subscribe@{domain}.
|
|
|
|
To reply to other users or post new comments, send your text to {local_part}+{password}+reply@{domain}.
|
|
|
|
To close the issue, send an email to {local_part}+{password}+close@{domain}.
|
|
|
|
Please keep this email in order to be able to keep in touch with your issue.
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>", title = title, password = password, issue_id = issue_id, url = BASE_ISSUE_URL.replace("{base_url}", &conf.base_url).replace("{repo}", &conf.repo), local_part = &conf.local_part, domain = &conf.domain, bot_name = &conf.bot_name)
|
|
}
|
|
}
|
|
|
|
pub fn close_success(title: String, issue_id: i64, conf: &Configuration) -> String {
|
|
format!(
|
|
"Hello,
|
|
|
|
Your issue \"{title}\" has been successfully closed. You can view the discussion here:
|
|
|
|
{url}/{issue_id}
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>",
|
|
title = title,
|
|
issue_id = issue_id,
|
|
url = BASE_ISSUE_URL
|
|
.replace("{base_url}", &conf.base_url)
|
|
.replace("{repo}", &conf.repo),
|
|
local_part = &conf.local_part,
|
|
domain = &conf.domain,
|
|
bot_name = &conf.bot_name,
|
|
)
|
|
}
|
|
|
|
pub fn close_failure(e: Error, conf: &Configuration) -> String {
|
|
format!("Hello,
|
|
|
|
Unfortunately we were not able to close this issue. The reason was: `{}`. Please contact the repository's owners for assistance.
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>", e, local_part = &conf.local_part, domain = &conf.domain, bot_name = &conf.bot_name)
|
|
}
|
|
|
|
pub fn invalid_request(conf: &Configuration) -> String {
|
|
format!(
|
|
"Hello,
|
|
|
|
Your request was not correct. Here are the valid requests you can ask from this bot:
|
|
|
|
- post a new issue eponymously: send an e-mail with the issue title as the subject and the issue body as the email body to {local_part}@{domain}. On success a password will be given that allows you to reply, close the issue, and also change your subscription to the discussion.
|
|
- post a new issue anonymously: send an email as above to the address {local_part}+anonymous@{domain}. {bot_name} will replace your name with 'Anonymous'
|
|
|
|
If p is the given password, you may perform actions on your issue as follows:
|
|
|
|
- reply: {local_part}+p+reply@{domain}. Subject value can be anything.
|
|
- close issue: {local_part}+p+close@{domain} email content can be anything
|
|
- change subscription: {local_part}+p+unsubscribe@{domain} and {local_part}+p+subscribe@{domain}
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>",
|
|
local_part = &conf.local_part,
|
|
domain = &conf.domain,
|
|
bot_name = &conf.bot_name,
|
|
)
|
|
}
|
|
|
|
pub fn change_subscription_success(
|
|
title: String,
|
|
password: Password,
|
|
issue_id: i64,
|
|
is_subscribed: bool,
|
|
conf: &Configuration,
|
|
) -> String {
|
|
format!("Hello,
|
|
|
|
Your subscription change to issue \"{title}\" has been successfully performed. You can view the discussion here:
|
|
|
|
{url}/{issue_id}
|
|
|
|
You will {not}receive replies from other users. To {un}subscribe to the conversation, send an email to {local_part}+{password}+{un}subscribe@{domain}.
|
|
|
|
To reply to other users or post new comments, send your text to {local_part}+{password}+reply@{domain}.
|
|
|
|
To close the issue, send an email to {local_part}+{password}+close@{domain}.
|
|
|
|
Please keep this email in order to be able to keep in touch with your issue.
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>", title = title, password = password, issue_id = issue_id, url = BASE_ISSUE_URL.replace("{base_url}", &conf.base_url).replace("{repo}", &conf.repo), local_part = &conf.local_part, domain = &conf.domain, bot_name = &conf.bot_name, not = if is_subscribed { "" }else {"not "}, un = if is_subscribed { "un" } else { "" } )
|
|
}
|
|
|
|
pub fn change_subscription_failure(is_subscribed: bool, conf: &Configuration) -> String {
|
|
format!(
|
|
"Hello,
|
|
|
|
Your subscription change was unsuccessful. You are already {un}subscribed.
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>",
|
|
local_part = &conf.local_part,
|
|
domain = &conf.domain,
|
|
bot_name = &conf.bot_name,
|
|
un = if is_subscribed { "un" } else { "" }
|
|
)
|
|
}
|
|
|
|
pub fn reply_update(issue: &Issue, conf: &Configuration, comments: Vec<String>) -> String {
|
|
assert!(!comments.is_empty());
|
|
format!(
|
|
"Hello,
|
|
|
|
There have been new replies in issue `{title}`. You are receiving this notice because you are subscribed to the discussion. To unsubscribe, send an email to {local_part}+{password}+unsubscribe@{domain}
|
|
|
|
{comments}
|
|
|
|
This is an automated email from {bot_name} <{local_part}+help@{domain}>",
|
|
local_part = &conf.local_part,
|
|
domain = &conf.domain,
|
|
bot_name = &conf.bot_name,
|
|
password = &issue.password.to_string(),
|
|
title = &issue.title,
|
|
comments = comments.join("\n\n-------------------------------------------------------------------------\n\n")
|
|
)
|
|
}
|