4

私は現在、ライブで使用されている、かなりすぐに使用できるJIRAセットアップを実行しています。

これで、各バグに合計回数を表示するカスタムフィールドが必要になり、問題/バグが再度開かれました。

同様のことを行うプラグイン(https://answers.atlassian.com/questions/19665/how-to-count-based-on-status-jira)がありますが、私はそうでない解決策を探していますサードパーティのプラグインを購入する必要があります(OPSはプラグインが好きではありません)。

私はフォーラムを高低で検索しましたが、良い出発点を見つけることさえできませんでした。あなたの助けは常にありがたいです。前もって感謝します!

編集:現在のJIRAバージョン:5.2

4

3 に答える 3

3

課題が開かれた回数をカウントするためのカスタムフィールドを作成し、デフォルト値を1に設定します。次に、Behaviorsプラグインを使用して、カウントする遷移に検証スクリプトを追加します。検証スクリプトで、カスタムフィールドをインクリメントし、trueを返します。次のようになります。

FormField formComponent = getFieldById(fieldChanged)
FormField formUserField = getFieldByName("UserFieldA"
formUserField.setFormValue(Integer.valueOf(formUserField.getFormValue()) + 1)

コーディングに問題がある場合は、こちらをご覧になるか、こちらからお問い合わせください。

より簡単な方法は、 Jira Scripting Suiteを使用してポスト関数を攻撃し、 それを使用してフィールドをインクリメントすることですが、Jira5.2はまだサポートされていません。

プラグインを使用したくない場合は、ワークフローの再開遷移に接続されたWebhookを使用してURLに投稿し、URLを使用してREST APIを使用して接続し、そのフィールドをインクリメントできます。

于 2013-02-01T17:23:24.420 に答える
0

カスタムフィールドはいくつかの情報(メトリック、カウンター、その他の情報など)を保持しますが、それ自体はロジックではありません。したがって、ここでの問題は、(カスタム)フィールドをインクリメントするために、それを実行するロジックが必要になることです。したがって、次の3つのオプションがあります。

  1. あなたが話しているプラ​​グインを使用してください
  2. このためのプラグインをカスタムビルドする
  3. 問題の変更をポーリングし、「再開」を検出してカスタムフィールドの値をインクリメントする、RESTAPIを利用するカスタムビルドの外部アプリケーションを使用します。
  4. このフィールドを手動で割り当てます(実際にはオプションではありません)

したがって、最終的には、リソースを必要としないオプションはそれほど多くありません。プラグインの開発や購入です。プラグインもサポートを購入しているので、通常はプラグインを購入するのが最善です。ただし、プラグインがAtlassianによって開発されていない場合、将来のJIRAバージョンをサポートしないか、新しいJIRAバージョンのリリース直後に互換性がなくなる可能性があることに注意してください。

于 2013-01-31T10:27:46.303 に答える
0

私の解決策は、次のコードを使用して「Reopen」トランジションに後機能を追加することです(Script Runnerプラグインがインストールされて有効になっていることを前提としています。また、対応するビュー画面にカスタムフィールド「Reopencount」を追加する必要があります)。

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.ModifiedValue

def componentManager = ComponentManager.getInstance()
def customFieldManager = componentManager.getCustomFieldManager() 
def reopenCount = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'Reopen count'}
def changeHolder = new DefaultIssueChangeHolder();
def reopenCountValue = issue.getCustomFieldValue(reopenCount)
if(reopenCountValue == null) reopenCountValue = 0.0d
reopenCount.updateValue(
    null, 
    issue, 
    new ModifiedValue(
        reopenCountValue, 
        ++reopenCountValue
    ), 
    changeHolder
);
于 2017-01-31T10:16:33.573 に答える