2
1
0

課題作成画面にウォッチャーを表示できないでしょうか。

または作成された課題について条件でウォッチャーを登録をする手はないでしょうか。

    Commentコメントを追加...

    2 回答

    1.  
      2
      1
      0

      基本的には

      Add watchers in the Issue creation screen - JIRA Knowledge Base - Atlassian Documentation

      のナレッジベースの通り以下アドオンを使いましょう。

      Watcher Custom Field for Jira (警告) 無償


        Commentコメントを追加...
      1.  
        2
        1
        0

        関連するKBが用意されています、アドオンを導入することで実現することはできます。

        Add watchers in the Issue creation screen - JIRA Knowledge Base - Atlassian Documentation

        Script Runnerを推奨するわけではないですが、すでに導入済みのようですので...

        トランジション: Create Issue の post-functionで以下のようなスクリプトを参考に実装することで、実現できるかもしれません。

        https://justinit.wordpress.com/2010/12/17/jira-add-watchers-at-issue-creation/

        https://answers.atlassian.com/questions/95087/how-do-i-add-a-specific-user-as-a-watcher-using-script-runner


        前に試したScriptがあったので、ご参考までに...

        import java.util.List;
        import com.atlassian.jira.issue.Issue;
        
        com.atlassian.jira.issue.CustomFieldManager customFieldManager = com.atlassian.jira.component.ComponentAccessor.getCustomFieldManager();
        com.atlassian.jira.issue.IssueManager issueManager = com.atlassian.jira.component.ComponentAccessor.getIssueManager();
        com.atlassian.jira.security.groups.GroupManager groupManager = com.atlassian.jira.component.ComponentAccessor.getGroupManager();
        com.atlassian.jira.user.util.UserManager userManager = com.atlassian.jira.component.ComponentAccessor.getUserManager();
        com.atlassian.jira.issue.watchers.WatcherManager watcherManager = com.atlassian.jira.component.ComponentAccessor.getWatcherManager();
        
        /* グループ一括登録 */
        Collection<com.atlassian.crowd.embedded.api.User> usersInGroup = groupManager.getUsersInGroup("<グループ名>");
        
        for (com.atlassian.crowd.embedded.api.User user : usersInGroup) {
        	watcherManager.startWatching(user, issueObject);
        }
        
        /* ユーザー個別登録 */
        watcherManager.startWatching(userManager.getUserByKey("<ユーザ名>"), issueObject);

         

        グループ一括登録が、グループに所属するユーザーをwatcherに追加するイメージ。
        ユーザー個別登録はそのままです...

         

        試してないですけど、グループピッカーやユーザーピッカーなど特定のカスタムフィールドを用意しておくのもありかもしれません?

        List<com.atlassian.crowd.embedded.api.Group group> groups = issueObject.getCustomFieldValue(customFieldManager.getCustomFieldObject("customfield_XXXX"));
        1. RYOITO

          ありがとうございます。 なるほど、Create Issueトランザクションにもスクリプトを仕込めたんですね。

        2. Shuzaburo Doba

          私も試していたところ、Create トランジション以外に設定したことが原因なのか、
          以下の ウォッチャーが削除できない という不具合に直面しました。

          DB を見てみたところ、ユーザーがウォッチャーに登録された情報はあるものの、
          課題自体のウォッチャーの人数が増えておらず不整合がおきていたように感じました。

          以下のように課題のウォッチャーの人数を追加することでうまく動作している気がします。

          import com.atlassian.jira.component.ComponentAccessor
          def watcherManager = ComponentAccessor.getWatcherManager()
          def userManager = ComponentAccessor.getUserManager()
          watcherManager.startWatching(userManager.getUserObject("testuser"), issue)
          issue.setWatches(issue.getWatches() + 1)  // ウォッチャーに追加する人数分足す
        3. Kengo Ohsaki

          Shuzaburo Doba-san,

          なんとそんな不具合があるとは…

          スクリプトは不具合に遭遇することもあるので危険ですね。

          素直に Watcher Custom Field for Jira  のアドオンを使うのがいいですね。

        Commentコメントを追加...