我已经使用了Bugzilla多年,我最喜欢的功能之一是“请求系统”(http://www.bugzilla.org/features/#rs),也称为“标志”。该问题可以标记(?)给用户;然后,用户可以接受请求(+)或拒绝它( - )。
我正在重新评估我们的问题跟踪工具,除了Bugzilla之外我似乎找不到任何具有此功能的内容。
所以我想知道:
您的建议表示赞赏(仅供参考:我目前倾向于YouTrack)。
Alex V.询问有关Bugzilla请求系统功能的更多详细信息。这是一个例子:
可以在管理界面中创建任意标志列表。在编辑问题时,它们会列在一行中,这是一个示例:
接下来,有人可以设置标志并要求跟进。屏幕截图显示我(dcherk)为john@doe.com设置DJiNNInput标志:
请注意,可以多次请求相同的标志(未显示)。
稍后,john @ doe.com可能会以某种方式对该标志采取行动,并将该请求标记为已接受:
或者,john @ doe.com可能无法接受该请求。在那种情况下,他会否认:
毋庸置疑,所有这些更改都会在问题历史记录中进行跟踪,并且可以进行搜索和报告。
答案 0 :(得分:0)
在YouTrack中没有这样的功能。但是,您可以做的是,您可以为用户设置问题,就像用户是否自行完成一样。然后,他们会收到有关该通知的通知,并可以将问题留在明星上,或将其删除。 不确切知道这些标志在Bugzilla中是如何工作的,所以它可能不是该功能的完全替代品。如果你详细说明了所需的行为,我会告诉你如何(如果可能的话)完全模仿它。
答案 1 :(得分:0)
供参考:
这就是我们最终在YouTrack中所做的事情:
创建了两个user[*]
字段:
用户始终可以手动设置这些字段,但我们还添加了以下工作流程规则以加快速度:
规则1,将更改与两个字段相关联:
rule Input Requested
when Input Requested.changed {
if (Input Requested.isEmpty) {
Input Requesting.clear;
} else {
Input Requesting.add(loggedInUser);
}
}
规则2,已关闭的问题不再需要输入:
rule Clear Input Requests When Issue Becomes Closed
when State.becomes({Closed}) {
Input Requested.clear;
Input Requesting.clear;
}
规则3,@ mentioning设置字段;回复清除字段:
rule Input Requested via @mention
when comments.added.isNotEmpty {
var separators = " `!#%^&*()=[]{}:;'\"\\|,<>/?\n\r\t";
var mentionedUsers = "";
var myComment = comments.added.first;
var originalText = myComment.text;
var text = " " + originalText.lowerCase + " ";
var username = "";
var user = loggedInUser;
var index = -1;
index = text.indexOf("@", opts);
while (index != -1) {
index = index + 1;
username = "";
var nextSymbol = text.substring(index, index + 1);
while (!separators.contains(nextSymbol, opts)) {
username = username + nextSymbol;
index = index + 1;
nextSymbol = text.substring(index, index + 1);
}
if (username.endsWith(".", opts)) {
username = username.substringOfLength(username.length - 1, opts);
}
debug("Extracted @username: |" + username + "|");
if (username.isNotEmpty) {
user = project.getUser(username);
if (user != null && !mentionedUsers.contains("@" + user.login + ",", ignoreCase) && (user.isInGroup(permittedGroup.name) || permittedGroup == null || user == reporter) && (myComment.permittedGroup == null || user.isInGroup(myComment.permittedGroup.name))) {
if (Input Requesting.contains(user)) {
Input Requested.remove(loggedInUser);
if (Input Requested.isEmpty) {
Input Requesting.clear;
}
} else {
Input Requested.add(user);
Input Requesting.add(loggedInUser);
}
mentionedUsers = mentionedUsers + "@" + user.login + ",";
}
}
text = text.substringRelative("@" + username, pos: after);
index = text.indexOf("@", opts);
}
}
希望在此过程中帮助任何人。