【问题标题】:Bugzilla's "Request System": do other issue tracking tools have it?Bugzilla 的“请求系统”:其他问题跟踪工具有吗?
【发布时间】:2015-02-05 21:32:48
【问题描述】:

我已经使用 Bugzilla 多年,我最喜欢的功能之一是“请求系统”(http://www.bugzilla.org/features/#rs),也称为“标志”。该问题可以标记(?)给用户;然后用户可以接受请求 (+) 或拒绝 (-)。

我正在重新评估我们的问题跟踪工具,除了 Bugzilla 之外,我似乎找不到任何具有此功能的工具。

所以我想知道:

  • 是否任何其他产品提供类似的功能?
  • 如果没有,有没有办法模仿它(使用标签或自定义字段或其他东西)?

感谢您的建议(仅供参考:我目前倾向于 YouTrack)。


Alex V. 询问有关 Bugzilla 请求系统功能的更多详细信息。这是一个例子:

可以在管理界面中创建任意标志列表。编辑问题时,它们会连续列出,这是一个示例:

接下来,有人可以设置标志并要求跟进。屏幕截图显示我 (dcherk) 为 john@doe.com 设置了 DJiNNInput 标志:

请注意,可以多次请求同一个标志(未显示)。

稍后,john@doe.com 可能会以某种方式处理该标志并将请求标记为已接受:

或者,john@doe.com 可能无法接受请求。在那种情况下,他会否认:

不用说,所有这些更改都会在问题历史记录中进行跟踪,并且可以搜索和报告。

【问题讨论】:

    标签: bugzilla issue-tracking youtrack


    【解决方案1】:

    在 YouTrack 中没有这样的功能。但是,您可以做的是,您可以为用户标记问题,就好像用户自己做的一样。然后,他们将收到有关它的通知,并且可以在问题上留下星标,也可以将其删除。 不知道这些标志在 Bugzilla 中是如何工作的,因此它可能不是该功能的完全替代品。如果您详细说明所需的行为,我会告诉您如何(如果可能)完全模仿它。

    【讨论】:

    • 我已经用一个例子更新了这个问题。见上文。
    • 好的,如果我做对了所有这些,您可以通过以下方式在 YouTrack 中模仿这些标志。 (我假设您有一个标志。如果有很多,可能需要为每个标志重复这些步骤,但这取决于您的流程)。 * 将用户类型的字段添加到您的项目中。该字段将代表分配标志的用户。 * 添加一个状态类型的字段。它将包含标志的状态(初始/接受/拒绝)。 * 添加一个只允许第一个字段的用户修改第二个字段的工作流。
    • 这是个好主意。我将在我们的沙盒中尝试一下,
    【解决方案2】:

    仅供参考:

    这就是我们最终在 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); 
      } 
    }
    

    希望能在此过程中对任何人有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      相关资源
      最近更新 更多