Type:
Improvement
Resolution:
Unresolved
Priority:
Major
Environment:
Jenkins 1.599, Ubuntu 12.04.5 LTS, local ivy-trigger plugin based on a fork of version 0.32
The ivy trigger plugin saves the resolved dependencies from each run in memory. This has the effect that when jenkins is restarted, the in-memory resolved dependency tree, stored as a <C extends XTriggerContext> instance in class AbstractTriggerByFullContext, is lost.
If a binary dependency changes in the repository after the last run of the trigger and before a jenkins restart, ivytrigger-plugin loses track of current state, and changes in dependencies can be missed. We have found this problem is worst for jobs which poll for changes infrequently. e.g. where we only want the job to build once per night, and hence only poll on that frequency.
We have modified a locally modified version of the ivytrigger plugin to write the IvyTriggerContext object to disk as a serialized java object in the job config directory on the master server. This happens each time the trigger runs. When the trigger runs, if the context is null, it is read into memory from the serialized object to reinitialise the in-memory state of the previously resolved dependency tree.
My modifications are based on a previous fork of version 0.32 which we used for local changes and is located at https://github.com/alexouzounis/ROE-ivytrigger-plugin.git
I no longer have write access to this repository and so imported its contents into my own repository at https://github.com/imacd/roe-ivytrigger-plugin.git I have made the modifications for persisting state to disk in that branch. The changes include the ability to switch the persisted state on and off on a job by job basis in the UI config panel.
Since the field AbstractTriggerByFullContext.context is private, I have employed copy-paste-modification of the class AbstractTriggerByFullContext as org.jenkinsci.plugins.ivytrigger.AbstractIvyTriggerByFullContext. I understand this is inelegant, but was preferable to the solution of using reflection to modify the state of AbstractTriggerByFullContext.context from the IvyTrigger class (which in my code extends my modified AbstractIvyTriggerByFullContext). This solution is practical and works for us locally, but I would appreciate advice on how this would best be implemented in the main trunk for ivytrigger-plugin.
There are no comments yet on this issue.
{"searchers":{"groups":[{"searchers":[{"name":"Project","id":"project","key":"issue.field.project","isShown":true,"lastViewed":1741398423805},{"name":"Summary","id":"summary","key":"issue.field.summary","isShown":true},{"name":"Type","id":"issuetype","key":"issue.field.issuetype","isShown":true,"lastViewed":1741398423806},{"name":"Status","id":"status","key":"issue.field.status","isShown":true,"lastViewed":1741398423817},{"name":"Priority","id":"priority","key":"issue.field.priority","isShown":true},{"name":"Resolution","id":"resolution","key":"issue.field.resolution","isShown":true},{"name":"Creator","id":"creator","key":"issue.field.creator","isShown":true},{"name":"Component","id":"component","key":"issue.field.components","isShown":true,"lastViewed":1741398423824},{"name":"% Limits","id":"workratio","key":"issue.field.workratio","isShown":true},{"name":"Link types","id":"issue_link_type","key":"issue.field.issuelinks","isShown":true},{"name":"Environment","id":"environment","key":"issue.field.environment","isShown":true},{"name":"Description","id":"description","key":"issue.field.description","isShown":true},{"name":"Comment","id":"comment","key":"issue.field.comment","isShown":true},{"name":"Label","id":"labels","key":"issue.field.labels","isShown":true},{"name":"Query","id":"text","key":"text","isShown":true},{"name":"Bonfire Browser","id":"customfield_10229","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"Bonfire Operating System","id":"customfield_10231","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"Bonfire Screen Resolution","id":"customfield_10244","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"Bonfire URL","id":"customfield_10237","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"Bonfire User Agent","id":"customfield_10226","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"Bonfire jQuery Version","id":"customfield_10252","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"Business Value","id":"customfield_10333","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":false},{"name":"Development","id":"customfield_10720","key":"com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary","isShown":true},{"name":"Epic Color","id":"customfield_10328","key":"com.pyxis.greenhopper.jira:gh-epic-color","isShown":false},{"name":"Epic Link","id":"customfield_10325","key":"com.pyxis.greenhopper.jira:gh-epic-link","isShown":true},{"name":"Epic Name","id":"customfield_10327","key":"com.pyxis.greenhopper.jira:gh-epic-label","isShown":true},{"name":"Epic Status","id":"customfield_10326","key":"com.pyxis.greenhopper.jira:gh-epic-status","isShown":false},{"name":"Epic/Theme","id":"customfield_10331","key":"com.atlassian.jira.plugin.system.customfieldtypes:labels","isShown":true},{"name":"Flagged","id":"customfield_10330","key":"com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes","isShown":true},{"name":"GitHub Users to Authorize as Committers","id":"customfield_10323","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":true},{"name":"Issue Tracker","id":"customfield_11320","key":"com.atlassian.jira.plugin.system.customfieldtypes:select","isShown":true},{"name":"JIRA Capture Browser","id":"customfield_10228","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Browser","id":"customfield_10230","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Document Mode","id":"customfield_10258","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Operating System","id":"customfield_10232","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Operating System","id":"customfield_10233","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Operating System","id":"customfield_10234","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Operating System","id":"customfield_10236","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Operating System","id":"customfield_10238","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Operating System","id":"customfield_10239","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Screen Resolution","id":"customfield_10245","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Screen Resolution","id":"customfield_10246","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Screen Resolution","id":"customfield_10247","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Screen Resolution","id":"customfield_10248","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Screen Resolution","id":"customfield_10249","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture Screen Resolution","id":"customfield_10250","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture URL","id":"customfield_10240","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture URL","id":"customfield_10241","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture URL","id":"customfield_10242","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture URL","id":"customfield_10243","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture User Agent","id":"customfield_10225","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture User Agent","id":"customfield_10227","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture jQuery Version","id":"customfield_10251","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture jQuery Version","id":"customfield_10253","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture jQuery Version","id":"customfield_10254","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture jQuery Version","id":"customfield_10255","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture jQuery Version","id":"customfield_10256","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"JIRA Capture jQuery Version","id":"customfield_10257","key":"com.atlassian.bonfire.plugin:bonfire-text","isShown":true},{"name":"Meeting minutes URL","id":"customfield_10020","key":"com.atlassian.jira.plugin.system.customfieldtypes:url","isShown":false},{"name":"New Repository Name","id":"customfield_10321","key":"com.atlassian.jira.plugin.system.customfieldtypes:textfield","isShown":true},{"name":"Original story points","id":"customfield_11423","key":"com.atlassian.jpo:jpo-custom-field-original-story-points","isShown":true},{"name":"Parent Link","id":"customfield_11420","key":"com.atlassian.jpo:jpo-custom-field-parent","isShown":false},{"name":"Plugin Description","id":"customfield_10322","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":true},{"name":"Raised During","id":"customfield_10220","key":"com.atlassian.bonfire.plugin:bonfire-session-cft","isShown":false},{"name":"Raised During","id":"customfield_10221","key":"com.atlassian.bonfire.plugin:bonfire-session-cft","isShown":false},{"name":"Rank","id":"customfield_10324","key":"com.pyxis.greenhopper.jira:gh-lexo-rank","isShown":true},{"name":"Released As","id":"customfield_10620","key":"com.atlassian.jira.plugin.system.customfieldtypes:textfield","isShown":true},{"name":"Repository URL","id":"customfield_10320","key":"com.atlassian.jira.plugin.system.customfieldtypes:url","isShown":true},{"name":"Similar Issues","id":"customfield_10520","key":"com.suggestimate:similar-issues-custom-field","isShown":true},{"name":"Sprint","id":"customfield_10329","key":"com.pyxis.greenhopper.jira:gh-sprint","isShown":true},{"name":"Story Points","id":"customfield_10332","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":false},{"name":"Team","id":"customfield_11424","key":"com.atlassian.teams:rm-teams-custom-field-team","isShown":true},{"name":"Test Sessions","id":"customfield_10222","key":"com.atlassian.bonfire.plugin:bonfire-multi-session-cft","isShown":false},{"name":"Test Sessions","id":"customfield_10223","key":"com.atlassian.bonfire.plugin:bonfire-multi-session-cft","isShown":false},{"name":"Test Sessions","id":"customfield_10224","key":"com.atlassian.bonfire.plugin:bonfire-multi-session-cft","isShown":false},{"name":"Testing Status","id":"customfield_10259","key":"com.atlassian.bonfire.plugin:bonfire-testing-status-cft","isShown":false},{"name":"URL","id":"customfield_10000","key":"com.atlassian.jira.plugin.system.customfieldtypes:url","isShown":true}],"type":"DETAILS","title":"Details"},{"searchers":[{"name":"Created Date","id":"created","key":"issue.field.created","isShown":true},{"name":"Updated Date","id":"updated","key":"issue.field.updated","isShown":true},{"name":"Resolution Date","id":"resolutiondate","key":"issue.field.resolution.date","isShown":true},{"name":"Target end","id":"customfield_11422","key":"com.atlassian.jpo:jpo-custom-field-baseline-end","isShown":true},{"name":"Target start","id":"customfield_11421","key":"com.atlassian.jpo:jpo-custom-field-baseline-start","isShown":true}],"type":"DATES","title":"Dates"},{"searchers":[{"name":"Assignee","id":"assignee","key":"issue.field.assignee","isShown":true,"lastViewed":1741398423817},{"name":"Reporter","id":"reporter","key":"issue.field.reporter","isShown":true}],"type":"PEOPLE","title":"People"}]},"values":{"issuetype":{"name":"Type","editHtml":"\n\n\n\n <div class=\"field-group aui-field-issuetype\" >\n <label for=\"searcher-type\">Type</label> <select class=\"select js-default-checkboxmultiselect\"\n id=\"searcher-type\"\n multiple=\"multiple\"\n name=\"type\"\n data-max-inline-results-displayed=\"100\"\n data-placeholder-text=\"Find Issue Types...\">\n <optgroup>\n \n <option class=\" \"\n id=\"type_-2\"\n title=\"All Standard Issue Types\"\n value=\"-2\">All Standard Issue Types</option>\n </optgroup>\n\n <optgroup label=\"Standard Issue Types\">\n \n <option class=\" imagebacked 10730 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=14673&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_1\"\n title=\"Bug\"\n value=\"1\">Bug</option>\n \n <option class=\" imagebacked 10730 \"\n data-icon=\"/images/icons/issuetypes/epic.png\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_10001\"\n title=\"Epic\"\n value=\"10001\">Epic</option>\n \n <option class=\" imagebacked 10730 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=14680&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_4\"\n title=\"Improvement\"\n value=\"4\">Improvement</option>\n \n <option class=\" imagebacked 10730 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=14681&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_2\"\n title=\"New Feature\"\n value=\"2\">New Feature</option>\n \n <option class=\" imagebacked 10730 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=14670&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_5\"\n title=\"Patch\"\n value=\"5\">Patch</option>\n \n <option class=\" imagebacked 10730 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=14685&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_10002\"\n title=\"Story\"\n value=\"10002\">Story</option>\n \n <option class=\" imagebacked 10730 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=14688&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_3\"\n title=\"Task\"\n value=\"3\">Task</option>\n </optgroup>\n\n <optgroup label=\"Sub-Task Issue Types\">\n </optgroup>\n </select>\n </div>\n ","validSearcher":true,"isShown":true},"component":{"name":"Component","viewHtml":" <div class=\"searcherValue\">\n \n <label class=\"fieldLabel\" for=\"fieldcomponent\">Component:</label><span id=\"fieldcomponent\" class=\"fieldValue\">\n \n ivyttrigger </span></div>\n","editHtml":"\n <div class=\"field-group aui-field-projectconstant\" >\n <label for=\"searcher-component\">Component</label> <select class=\"select js-default-checkboxmultiselectcomponent\"\n id=\"searcher-component\"\n multiple=\"multiple\"\n name=\"component\"\n data-max-inline-results-displayed=\"100\"\n aria-label=\"Search for components\">\n <optgroup data-footer-text=\"1,965 more options. Continue typing to refine further.\" label=\"\">\n <option value=\"-1\" title=\"No Component\">No Component</option>\n <option value=\"id:42crunch-security-audit-plugin\" title=\"42crunch-security-audit-plugin\">42crunch-security-audit-plugin</option>\n <option value=\"id:_unsorted\" title=\"_unsorted\">_unsorted</option>\n <option value=\"id:abap-ci-plugin\" title=\"abap-ci-plugin\">abap-ci-plugin</option>\n <option value=\"id:absint-a3-plugin\" title=\"absint-a3-plugin\">absint-a3-plugin</option>\n <option value=\"id:absint-astree-plugin\" title=\"absint-astree-plugin\">absint-astree-plugin</option>\n <option value=\"id:accelerated-build-now-plugin\" title=\"accelerated-build-now-plugin\">accelerated-build-now-plugin</option>\n <option value=\"id:acceptance-test-harness\" title=\"acceptance-test-harness\">acceptance-test-harness</option>\n <option value=\"id:accurev-plugin\" title=\"accurev-plugin\">accurev-plugin</option>\n <option value=\"id:active-choices-plugin\" title=\"active-choices-plugin\">active-choices-plugin</option>\n <option value=\"id:active-directory-plugin\" title=\"active-directory-plugin\">active-directory-plugin</option>\n <option value=\"id:acunetix-360-scan-plugin\" title=\"acunetix-360-scan-plugin\">acunetix-360-scan-plugin</option>\n <option value=\"id:acunetix-plugin\" title=\"acunetix-plugin\">acunetix-plugin</option>\n <option value=\"id:adaptive-disconnector-plugin\" title=\"adaptive-disconnector-plugin\">adaptive-disconnector-plugin</option>\n <option value=\"id:adaptiveplugin\" title=\"adaptiveplugin\">adaptiveplugin</option>\n <option value=\"id:additional-identities-plugin\" title=\"additional-identities-plugin\">additional-identities-plugin</option>\n <option value=\"id:additional-metrics-plugin\" title=\"additional-metrics-plugin\">additional-metrics-plugin</option>\n <option value=\"id:adobe-cloud-manager-plugin\" title=\"adobe-cloud-manager-plugin\">adobe-cloud-manager-plugin</option>\n <option value=\"id:adoptopenjdk-plugin\" title=\"adoptopenjdk-plugin\">adoptopenjdk-plugin</option>\n <option value=\"id:agent-loadbalance-plugin\" title=\"agent-loadbalance-plugin\">agent-loadbalance-plugin</option>\n <option value=\"id:agent-maintenance-plugin\" title=\"agent-maintenance-plugin\">agent-maintenance-plugin</option>\n <option value=\"id:agent-server-parameter-plugin\" title=\"agent-server-parameter-plugin\">agent-server-parameter-plugin</option>\n <option value=\"id:agile-cockpit-notification-plugin\" title=\"agile-cockpit-notification-plugin\">agile-cockpit-notification-plugin</option>\n <option value=\"id:alauda-devops-credentials-provider-plugin\" title=\"alauda-devops-credentials-provider-plugin\">alauda-devops-credentials-provider-plugin</option>\n <option value=\"id:alauda-devops-pipeline-plugin\" title=\"alauda-devops-pipeline-plugin\">alauda-devops-pipeline-plugin</option>\n <option value=\"id:alauda-devops-sync-plugin\" title=\"alauda-devops-sync-plugin\">alauda-devops-sync-plugin</option>\n <option value=\"id:alauda-kubernetes-support-plugin\" title=\"alauda-kubernetes-support-plugin\">alauda-kubernetes-support-plugin</option>\n <option value=\"id:alauda-pipeline-plugin\" title=\"alauda-pipeline-plugin\">alauda-pipeline-plugin</option>\n <option value=\"id:alibabacloud-edas-plugin\" title=\"alibabacloud-edas-plugin\">alibabacloud-edas-plugin</option>\n <option value=\"id:alibabacloud-pkg-deployment-plugin\" title=\"alibabacloud-pkg-deployment-plugin\">alibabacloud-pkg-deployment-plugin</option>\n <option value=\"id:aliyun-container-service-deploy-plugin\" title=\"aliyun-container-service-deploy-plugin\">aliyun-container-service-deploy-plugin</option>\n <option value=\"id:aliyun-oss-uploader-plugin\" title=\"aliyun-oss-uploader-plugin\">aliyun-oss-uploader-plugin</option>\n <option value=\"id:all-changes-plugin\" title=\"all-changes-plugin\">all-changes-plugin</option>\n <option value=\"id:allure-plugin\" title=\"allure-plugin\">allure-plugin</option>\n <option value=\"id:amazon-ecr-plugin\" title=\"amazon-ecr-plugin\">amazon-ecr-plugin</option>\n <option value=\"id:amazon-ecs-plugin\" title=\"amazon-ecs-plugin\">amazon-ecs-plugin</option>\n <option value=\"id:amqp-build-trigger-plugin\" title=\"amqp-build-trigger-plugin\">amqp-build-trigger-plugin</option>\n <option value=\"id:analysis-collector-plugin\" title=\"analysis-collector-plugin\">analysis-collector-plugin</option>\n <option value=\"id:analysis-core-plugin\" title=\"analysis-core-plugin\">analysis-core-plugin</option>\n <option value=\"id:analysis-model\" title=\"analysis-model\">analysis-model</option>\n <option value=\"id:analysis-model-api-plugin\" title=\"analysis-model-api-plugin\">analysis-model-api-plugin</option>\n <option value=\"id:anchorchain-plugin\" title=\"anchorchain-plugin\">anchorchain-plugin</option>\n <option value=\"id:anchore-container-scanner-plugin\" title=\"anchore-container-scanner-plugin\">anchore-container-scanner-plugin</option>\n <option value=\"id:android-apk-size-watcher-plugin\" title=\"android-apk-size-watcher-plugin\">android-apk-size-watcher-plugin</option>\n <option value=\"id:android-emulator-plugin\" title=\"android-emulator-plugin\">android-emulator-plugin</option>\n <option value=\"id:android-lint-plugin\" title=\"android-lint-plugin\">android-lint-plugin</option>\n <option value=\"id:android-signing-plugin\" title=\"android-signing-plugin\">android-signing-plugin</option>\n <option value=\"id:anka-build-plugin\" title=\"anka-build-plugin\">anka-build-plugin</option>\n <option value=\"id:anonymous-uptime-check-plugin\" title=\"anonymous-uptime-check-plugin\">anonymous-uptime-check-plugin</option>\n <option value=\"id:ansible-plugin\" title=\"ansible-plugin\">ansible-plugin</option>\n <option value=\"id:ansible-tower-plugin\" title=\"ansible-tower-plugin\">ansible-tower-plugin</option>\n <option value=\"id:ansicolor-plugin\" title=\"ansicolor-plugin\">ansicolor-plugin</option>\n <option value=\"id:ant-in-workspace-plugin\" title=\"ant-in-workspace-plugin\">ant-in-workspace-plugin</option>\n <option value=\"id:ant-plugin\" title=\"ant-plugin\">ant-plugin</option>\n <option value=\"id:antepediareporter-ci\" title=\"antepediareporter-ci\">antepediareporter-ci</option>\n <option value=\"id:antexec-plugin\" title=\"antexec-plugin\">antexec-plugin</option>\n <option value=\"id:antisamy-markup-formatter-plugin\" title=\"antisamy-markup-formatter-plugin\">antisamy-markup-formatter-plugin</option>\n <option value=\"id:any-buildstep-plugin\" title=\"any-buildstep-plugin\">any-buildstep-plugin</option>\n <option value=\"id:anything-goes-formatter-plugin\" title=\"anything-goes-formatter-plugin\">anything-goes-formatter-plugin</option>\n <option value=\"id:apache-httpcomponents-client-4-api-plugin\" title=\"apache-httpcomponents-client-4-api-plugin\">apache-httpcomponents-client-4-api-plugin</option>\n <option value=\"id:apica-loadtest-plugin\" title=\"apica-loadtest-plugin\">apica-loadtest-plugin</option>\n <option value=\"id:apifortress-plugin\" title=\"apifortress-plugin\">apifortress-plugin</option>\n <option value=\"id:app-detector-plugin\" title=\"app-detector-plugin\">app-detector-plugin</option>\n <option value=\"id:appaloosa-plugin\" title=\"appaloosa-plugin\">appaloosa-plugin</option>\n <option value=\"id:appcenter-plugin\" title=\"appcenter-plugin\">appcenter-plugin</option>\n <option value=\"id:appio-plugin\" title=\"appio-plugin\">appio-plugin</option>\n <option value=\"id:applatix-plugin\" title=\"applatix-plugin\">applatix-plugin</option>\n <option value=\"id:application-director-plugin\" title=\"application-director-plugin\">application-director-plugin</option>\n <option value=\"id:applitools-eyes-plugin\" title=\"applitools-eyes-plugin\">applitools-eyes-plugin</option>\n <option value=\"id:appray-plugin\" title=\"appray-plugin\">appray-plugin</option>\n <option value=\"id:apprenda-plugin\" title=\"apprenda-plugin\">apprenda-plugin</option>\n <option value=\"id:appspider-build-scanner-plugin\" title=\"appspider-build-scanner-plugin\">appspider-build-scanner-plugin</option>\n <option value=\"id:appthwack-plugin\" title=\"appthwack-plugin\">appthwack-plugin</option>\n <option value=\"id:aptly-publisher-plugin\" title=\"aptly-publisher-plugin\">aptly-publisher-plugin</option>\n <option value=\"id:aqua-security-scanner-plugin\" title=\"aqua-security-scanner-plugin\">aqua-security-scanner-plugin</option>\n <option value=\"id:aqua-serverless-plugin\" title=\"aqua-serverless-plugin\">aqua-serverless-plugin</option>\n <option value=\"id:aquarellian\" title=\"aquarellian\">aquarellian</option>\n <option value=\"id:arachni-scanner-plugin\" title=\"arachni-scanner-plugin\">arachni-scanner-plugin</option>\n <option value=\"id:archetypes\" title=\"archetypes\">archetypes</option>\n <option value=\"id:archived-artifact-url-viewer-plugin\" title=\"archived-artifact-url-viewer-plugin\">archived-artifact-url-viewer-plugin</option>\n <option value=\"id:argus-notifier-plugin\" title=\"argus-notifier-plugin\">argus-notifier-plugin</option>\n <option value=\"id:aribot-plugin\" title=\"aribot-plugin\">aribot-plugin</option>\n <option value=\"id:artifact-diff-plugin\" title=\"artifact-diff-plugin\">artifact-diff-plugin</option>\n <option value=\"id:artifact-manager-s3-plugin\" title=\"artifact-manager-s3-plugin\">artifact-manager-s3-plugin</option>\n <option value=\"id:artifact-promotion-plugin\" title=\"artifact-promotion-plugin\">artifact-promotion-plugin</option>\n <option value=\"id:artifact-version-recorder-plugin\" title=\"artifact-version-recorder-plugin\">artifact-version-recorder-plugin</option>\n <option value=\"id:artifactdeployer-plugin\" title=\"artifactdeployer-plugin\">artifactdeployer-plugin</option>\n <option value=\"id:artifactory-plugin\" title=\"artifactory-plugin\">artifactory-plugin</option>\n <option value=\"id:asakusa-satellite-plugin\" title=\"asakusa-satellite-plugin\">asakusa-satellite-plugin</option>\n <option value=\"id:ascentialtest-cmd-line-plugin\" title=\"ascentialtest-cmd-line-plugin\">ascentialtest-cmd-line-plugin</option>\n <option value=\"id:assembla-auth-plugin\" title=\"assembla-auth-plugin\">assembla-auth-plugin</option>\n <option value=\"id:assembla-jenkins\" title=\"assembla-jenkins\">assembla-jenkins</option>\n <option value=\"id:assembla-merge-request-builder-plugin\" title=\"assembla-merge-request-builder-plugin\">assembla-merge-request-builder-plugin</option>\n <option value=\"id:assembla-plugin\" title=\"assembla-plugin\">assembla-plugin</option>\n <option value=\"id:assertthat-bdd-jira-plugin\" title=\"assertthat-bdd-jira-plugin\">assertthat-bdd-jira-plugin</option>\n <option value=\"id:associated-files-plugin\" title=\"associated-files-plugin\">associated-files-plugin</option>\n <option value=\"id:async-http-client\" title=\"async-http-client\">async-http-client</option>\n <option value=\"id:async-http-client-plugin\" title=\"async-http-client-plugin\">async-http-client-plugin</option>\n <option value=\"id:async-job-plugin\" title=\"async-job-plugin\">async-job-plugin</option>\n <option value=\"id:atlassian-bitbucket-server-integration-plugin\" title=\"atlassian-bitbucket-server-integration-plugin\">atlassian-bitbucket-server-integration-plugin</option>\n </optgroup>\n </select>\n </div>\n \n","jql":"component = ivyttrigger","validSearcher":true,"isShown":true},"project":{"name":"Project","viewHtml":" <div class=\"searcherValue\">\n \n <label class=\"fieldLabel\" for=\"fieldpid\">Project:</label><span id=\"fieldpid\" class=\"fieldValue\">\n \n <a data-pid=\"10172\" data-issue-type-ids=\"\" href=\"/browse/JENKINS\" title=\"Browse Jenkins project\">Jenkins</a> </span></div>\n","editHtml":" \n <div class=\"field-group aui-field-project\" >\n <label for=\"searcher-pid\">Project</label> <select class=\"js-project-checkboxmultiselect\"\n data-placeholder-text=\"Find Projects...\"\n id=\"searcher-pid\"\n multiple=\"multiple\"\n name=\"pid\">\n <optgroup label=\"Recent Projects\">\n </optgroup>\n <optgroup label=\"All Projects\" >\n <option data-icon=\"/secure/projectavatar?pid=10172&size=small\"\n selected=\"selected\" title=\"Jenkins\"\n value=\"10172\">\n Jenkins (JENKINS)\n </option>\n \n <option data-icon=\"/secure/projectavatar?pid=10050&size=small\"\n title=\"test\"\n value=\"10050\">\n test (TEST)\n </option>\n </optgroup>\n </select>\n </div>\n \n\n","jql":"project = JENKINS","validSearcher":true,"isShown":true},"assignee":{"name":"Assignee","editHtml":"\n \n <div class=\"field-group aui-field-userlist\" >\n <label for=\"searcher-assigneeSelect\">Assignee</label> <fieldset rel=\"assignee\" class=\"hidden user-group-searcher-params\">\n </fieldset>\n <select class=\"js-usergroup-checkboxmultiselect\" multiple=\"multiple\" id=\"assignee\" name=\"assignee\" data-placeholder-text=\"Enter username or group\">\n <optgroup>\n <option class=\"headerOption\" data-icon=\"https://issues.jenkins.io/secure/useravatar?size=xsmall&avatarId=10293\" value=\"empty\" title=\"Unassigned\">Unassigned</option>\n </optgroup>\n <optgroup>\n </optgroup>\n </select>\n <input type=\"hidden\" name=\"check_prev_assignee\" value=\"true\">\n </div>\n \n","validSearcher":true,"isShown":true},"status":{"name":"Status","editHtml":"\n <div class=\"field-group aui-field-constants\" >\n <label for=\"searcher-status\">Status</label> <select class=\"select js-default-checkboxmultiselectstatuslozenge\"\n data-placeholder-text=\"Find Statuses...\"\n id=\"searcher-status\"\n multiple=\"multiple\"\n name=\"status\"\n data-max-inline-results-displayed=\"100\"\n data-footer-text=\"-92 more options. Continue typing to refine further.\" data-status-lozenge=\"true\">\n <optgroup >\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/open.png\" value=\"1\" title=\"Open\" data-simple-status=\"{"id":"1","name":"Open","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"/images/icons/statuses/open.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">Open</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/inprogress.png\" value=\"3\" title=\"In Progress\" data-simple-status=\"{"id":"3","name":"In Progress","description":"This issue is being actively worked on at the moment by the assignee.","iconUrl":"/images/icons/statuses/inprogress.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">In Progress</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/reopened.png\" value=\"4\" title=\"Reopened\" data-simple-status=\"{"id":"4","name":"Reopened","description":"This issue was once resolved, but the resolution was deemed incorrect. From here issues are either marked assigned or resolved.","iconUrl":"/images/icons/statuses/reopened.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">Reopened</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/information.png\" value=\"10005\" title=\"In Review\" data-simple-status=\"{"id":"10005","name":"In Review","description":"","iconUrl":"/images/icons/statuses/information.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">In Review</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10000\" title=\"Verified\" data-simple-status=\"{"id":"10000","name":"Verified","description":"Verified","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">Verified</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10203\" title=\"Fixed but Unreleased\" data-simple-status=\"{"id":"10203","name":"Fixed but Unreleased","description":"This change has been implemented and merged, but not yet released.","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Fixed but Unreleased</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/resolved.png\" value=\"5\" title=\"Resolved\" data-simple-status=\"{"id":"5","name":"Resolved","description":"A developer had implemented a fix and is waiting for a feedback from the reporter.","iconUrl":"/images/icons/statuses/resolved.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Resolved</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/closed.png\" value=\"6\" title=\"Closed\" data-simple-status=\"{"id":"6","name":"Closed","description":"The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.","iconUrl":"/images/icons/statuses/closed.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Closed</option>\n </optgroup>\n</select>\n </div>\n \n","validSearcher":true,"isShown":true}}}
[{"id":-1,"name":"My open issues","jql":"assignee = currentUser() AND resolution = Unresolved order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":true},{"id":-2,"name":"Reported by me","jql":"reporter = currentUser() order by created DESC","isSystem":true,"sharePermissions":[],"requiresLogin":true},{"id":-4,"name":"All issues","jql":"order by created DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-5,"name":"Open issues","jql":"resolution = Unresolved order by priority DESC,updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-9,"name":"Done issues","jql":"statusCategory = Done order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-3,"name":"Viewed recently","jql":"issuekey in issueHistory() order by lastViewed DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-6,"name":"Created recently","jql":"created >= -1w order by created DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-7,"name":"Resolved recently","jql":"resolutiondate >= -1w order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-8,"name":"Updated recently","jql":"updated >= -1w order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false}]
0.3
0