{"id":22281514,"url":"https://github.com/jenkinsci/jira-ext-plugin","last_synced_at":"2025-07-28T20:30:58.455Z","repository":{"id":3331009,"uuid":"49096168","full_name":"jenkinsci/jira-ext-plugin","owner":"jenkinsci","description":"Update JIRA tickets in an extensible way: both what to update and how to update are exposed as Extension Points","archived":false,"fork":false,"pushed_at":"2024-08-08T14:51:50.000Z","size":205,"stargazers_count":18,"open_issues_count":7,"forks_count":23,"subscribers_count":96,"default_branch":"master","last_synced_at":"2025-04-05T03:23:43.826Z","etag":null,"topics":["adopt-this-plugin"],"latest_commit_sha":null,"homepage":"https://plugins.jenkins.io/jira-ext/","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jenkinsci.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG-OLD.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-05T22:17:49.000Z","updated_at":"2025-04-04T04:17:42.000Z","dependencies_parsed_at":"2024-01-03T15:46:20.592Z","dependency_job_id":"64239223-c72b-42d9-aee5-ba98bc6ace83","html_url":"https://github.com/jenkinsci/jira-ext-plugin","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/jenkinsci/jira-ext-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fjira-ext-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fjira-ext-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fjira-ext-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fjira-ext-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenkinsci","download_url":"https://codeload.github.com/jenkinsci/jira-ext-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fjira-ext-plugin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267580457,"owners_count":24110844,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adopt-this-plugin"],"created_at":"2024-12-03T16:18:51.026Z","updated_at":"2025-07-28T20:30:58.139Z","avatar_url":"https://github.com/jenkinsci.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `jira-ext-plugin`\n\n[![Build Status](https://ci.jenkins.io/job/Plugins/job/jira-ext-plugin/job/master/lastBuild/badge/icon)](https://ci.jenkins.io/job/Plugins/job/jira-ext-plugin/job/master/lastBuild/)\n\n* [Issue Tracking][issues]\n\nA plugin for Jenkins CI to update JIRA tickets in an extensible way: both what to update and how to update are exposed as `ExtensionPoint`s.\n\nOut of the box, you may discover issues by:\n\n* The issue key as the first word of the commit message\n* The issue key as the first word of the upstream commit message\n* Manually specifying an issue\n* Looking for it being mentioned somewhere in the commit message\n\nTo all of these JIRA issues, you may:\n\n* Add a comment\n* Update a field\n* Add a label\n* Transition a ticket (`Start Work`, `Resolve`, etc..)\n\nExample UI:\n\n![jira-ext-1](https://cloud.githubusercontent.com/assets/731899/12099841/5d1671e8-b2e8-11e5-9c6d-d28073ad7c15.png)\n\n# Comparison to jira-plugin\n\nThe jira-ext plugin is meant to be extensible in ways that the jira-plugin is not. Both Jenkins and JIRA are used as part of an organizations workflow, and as such are highly customizable. The jira-ext plugin continues this philosophy by making the actions (and when to perform those actions) also customizable for your organization.\n\nIn terms of specific features:\n\njira-ext plugin:\n\n1. Specify issues manually\n2. Specify issues from upstream commits\n3. Transitions issues\n4. Add label to issues\n5. Update custom fields\n6. Customize comments on issues\n\njira-plugin:\n\n1. Perform release notes\n2. (Deprecated) support for SOAP\n3. Specify issues from JQL\n4. Automatically link back to jenkins builds (backpointers)\n5. Link JIRA issues in the Jenkins UI\n\n\n# Extending the plugin\n\nThe jira-ext plugin is built with extension in mind. Both how to discover issues and what action to take are customizable. They are implemented as ExtensionPoint, meaning your plugin (or a custom plugin) can contribute its own ticket discovery strategies or operations based on logic specific to your installation or environment. \n\nFor example, a code review build could provide a link to the code review server in the JIRA issue as a custom field, or as a comment.\n\nOr another example, a production release build could update tickets based on differences between tags, to keep track of what was deployed last.\n\nIf you want to add an operation which should be part of any JIRA install, please open a pull request.\n\n## Add a custom `Discover Issues By` option\n\nYou may update what tickets to update using an `IssueStrategyExtension` and `IssueStrategyExtensionDescriptor`. \nSee `SingleTicketStrategy` for an example.\n\n## Add a custom JIRA operation\nYou may add your own operations using a `JiraOperationExtension` and `JiraOperationExtensionDescriptor`. See `AddComment` for an example.\n\n## The jira-ext plugin can be configured via job-dsl plugin:\n\n```groovy\njob {\n  //...\n  steps {\n    //...\n    updateJiraExt {\n        issueStrategy {\n            singleIssue('JENKINS-101')\n            // - or -\n            firstWordOfCommit()\n            // - or -\n            firstWordOfUpstreamCommit()\n            // - or -\n            mentionedInCommit()\n        }\n     \n        jiraOperations {\n            transition('Deploy to Test');\n            addComment('You went through a Jenkins build!', true)\n            addLabel('Cool stuff')\n            updateField('customField_123', 'Hello World')\n        }\n    }\n    //...\n  }\n}\n\n```\n\n# Authors\nDan Alvizu \u003calvizu@gmail.com\u003e\n\n# License\nLicensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the\nLicense. You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an\n“AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific\n language governing permissions and limitations under the License.\n \n[issues]: https://issues.jenkins.io/browse/JENKINS-71940?jql=project%20%3D%20JENKINS%20AND%20status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Reopened)%20AND%20component%20%3D%20%27jira-ext-plugin%27\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fjira-ext-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenkinsci%2Fjira-ext-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fjira-ext-plugin/lists"}