JIRA Development Cookbook

Develop and customize plugins, program workflows, work on custom fields, master JQL functions, and more - to effectively customize, manage, and extend JIRA with this book and ebook

JIRA Development Cookbook

Cookbook
Jobin Kuruvilla

Develop and customize plugins, program workflows, work on custom fields, master JQL functions, and more - to effectively customize, manage, and extend JIRA with this book and ebook
$35.99
$59.99
RRP $35.99
RRP $59.99
eBook
Print + eBook
$12.99 p/month

Get Access

Get Unlimited Access to every Packt eBook and Video course

Enjoy full and instant access to over 3000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

Book Details

ISBN 139781849681803
Paperback476 pages

About This Book

  • Extend and Customize JIRA--Work with custom fields, workflows, Reports & Gadgets, JQL functions, plugins, and more
  • Customize the look and feel of your JIRA User Interface by adding new tabs, web items and sections, drop down menus, and more
  • Master JQL - JIRA Query Language that enables advanced searching capabilities through which users can search for issues in their JIRA instance and then exploit all the capabilities of issue navigator
  • Part of Packt's Cookbook series: Each recipe is a carefully organized sequence of instructions to complete the task as efficiently as possible

 

Who This Book Is For

If you are a JIRA developer or project manager who wants to fully exploit the exciting capabilities of JIRA, then this is the perfect book for you.

Table of Contents

Chapter 1: Plugin Development Process
Introduction
Setting up the development environment
Creating a skeleton plugin
Deploying a plugin
Making changes and re-deploying a plugin
Testing and debugging
Chapter 2: Understanding Plugin Framework
Introduction
Converting plugins from v1 to v2
Adding resources into plugins
Adding web resources into plugins
Building JIRA from source
Adding new webwork actions to JIRA
Extending a webwork action in JIRA
Chapter 3: Working with Custom Fields
Introduction
Writing a simple custom field
Custom field searchers
Dealing with custom fields on an issue
Programming custom field options
Overriding validation of custom fields
Customizing the change log value
Migrating from one custom field type to another
Making custom fields sortable
Displaying custom fields on subtask columns
User and date fields from 4.1.x
Adding custom fields to notification mails
Adding help text for a custom field
Removing the 'none' option from a select field
Making the custom field project importable
Changing the size of a text area custom field
Chapter 4: Programming Workflows
Introduction
Writing a workflow condition
Writing a workflow validator
Writing a workflow post function
Editing an active workflow
Making an issue editable/non-editable based on workflow status
Including/excluding resolutions for specific transitions
Permissions based on workflow status
Internationalization in workflow transitions
Obtaining available workflow actions programmatically
Programmatically progressing on workflows
Obtaining workflow history from the database
Re-ordering workflow actions in JIRA
Creating common transitions in workflows
Jelly escalation
Chapter 5: Gadgets and Reporting in JIRA
Introduction
Writing a JIRA report
Reports in Excel format
Data validation in JIRA reports
Restricting access to reports
Object configurable parameters for reports
Creating a pie chart in JIRA
Writing JIRA 4 gadgets
Invoking REST services from gadgets
Configuring user preferences in gadgets
Accessing gadgets outside of JIRA
Chapter 6: The Power of JIRA Searching
Introduction
Writing a JQL function
Sanitizing JQL functions
Adding a search request view
Smart querying using quick search
Searching in plugins
Parsing a JQL query in plugins
Linking directly to search queries
Index and de-index programmatically
Managing filters programmatically
Subscribing to a filter
Chapter 7: Programming Issues
Introduction
Creating an issue from a plugin
Creating subtasks on an issue
Updating an issue
Deleting an issue
Adding new issue operations
Conditions on issue operations
Working with attachments
Time tracking and worklog management
Working with comments on issues
Programming Change Logs
Programming issue links
Validations on issue linking
Discarding fields while cloning
JavaScript tricks on issue fields
Chapter 8: Customizing the UI
Introduction
Changing the basic look and feel
Adding new web sections in the UI
Adding new web items in the UI
Adding conditions for web fragments
Creating new velocity context for web fragments
Adding a new drop-down menu on the top navigation bar
Dynamic creation of web items
Adding new tabs in the View Issue screen
Adding new tabs in the Browse Project screen
Creating Project Tab Panel using fragments
Adding new tabs in the Browse Version screen
Adding new tabs in the Browse Component screen
Extending a webwork action to add UI elements
Displaying dynamic notifications/warnings on issues
Re-ordering Issue Operations in the View Issue page
Re-ordering fields in the View Issue page
Chapter 9: Remote Access to JIRA
Introduction
Creating a SOAP client
Creating an issue via SOAP
Working with custom fields and SOAP
Attachments and SOAP
Worklogs and time tracking via SOAP
Commenting on an issue via SOAP
User and group management via SOAP
Progressing an issue in workflow using SOAP
Managing versions via SOAP
Administration methods in SOAP API
Deploy a SOAP service in JIRA
Deploy a XML-RPC service within JIRA
Writing a Java XML-RPC client
Expose services and data entities as REST APIs
Writing Java client for REST API
Chapter 10: Dealing with a Database
Introduction
Extending JIRA DB with custom schema
Accessing DB entities from plugins
Persisting plugin information in JIRA DB
Using active objects to store data
Accessing JIRA configuration properties
Getting database connection for JDBC calls
Migrating a custom field from one type to another
Retrieving issue information from a Database
Retrieving custom field details from a database
Retrieving permissions on issues from a database
Retrieving workflow details from a database
Updating issue status in a database
Retrieving users and groups from a database
Dealing with Change history in a database
Chapter 11: Useful Recipes
Introduction
Writing a service in JIRA
Adding configurable parameters to a service
Writing scheduled tasks in JIRA
Writing listeners in JIRA
Customizing e-mail content
Redirecting to different page in webwork actions
Adding custom behavior for user details
Deploying a servlet in JIRA
Adding shared parameters to Servlet Context
Writing a Servlet Context Listener
Using filters to intercept queries in JIRA
Adding and importing components in JIRA
Adding new module types to JIRA
Enabling access logs in JIRA
Enabling SQL logging in JIRA
Overriding JIRA's default components in plugins
Creating issues and comments from e-mail
Internationalization in webwork plugins
Sharing common libraries across v2 plugins
Operations using direct HTML links

What You Will Learn

  • Create and deploy your own JIRA plugins
  • Deal with Custom Fields on an Issue and program Custom Field Options
  • Program and customize Workflows to transform JIRA into a user-friendly system
  • Create reports that show statistics for particular people, projects, versions, or other fields within issues
  • Simplify reporting by writing your own JIRA Gadgets, which can be added into a user's dashboard
  • Create, edit, and delete Issues
  • Master Database handling in JIRA --retrieve Issue information from Database, extend the database, retrieve Custom Field details from the database, access database entities from plugins, and more
  • Communicate with JIRA via the REST, SOAP or XML/RPC interfaces

In Detail

JIRA provides issue tracking and project tracking for software development teams to improve code quality and the speed of development.

This book is your one-stop resource to master JIRA extension and customization. You will learn how to create your own JIRA plugins, customize the look and feel of your JIRA UI, work with Workflows, Issues, Custom Fields, and much more.

The book starts with recipes on simplifying the Plugin development process followed by a complete chapter dedicated to the Plugin Framework to master Plugins in JIRA.

Then we will move on to writing custom field plugins to create new field types or custom searchers. We then learn how to program and customize Workflows to transform JIRA into a user-friendly system.

Reporting support in an application like JIRA is inevitable! With so much data spanning across different projects, issues, etc and a lot of project planning done on it, we will cover how to work on reports and gadgets to get customized data according to our needs.

We will then look at customizing the various searching aspects of JIRA such as JQL, searching in plugins, managing filters, and so on.

Then the book steers towards programming Issues, i.e. creating/editing/deleting issues, creating new issue operations, managing the various other operations available on issues via the JIRA APIs etc.

In the latter half of the book, you will learn how to customize JIRA by adding new tabs, menus, and web items, communicate with JIRA via the REST, SOAP or XML/RPC interfaces, and work with the JIRA database.

The book ends with a chapter on useful and general JIRA recipes.

Authors

Table of Contents

Chapter 1: Plugin Development Process
Introduction
Setting up the development environment
Creating a skeleton plugin
Deploying a plugin
Making changes and re-deploying a plugin
Testing and debugging
Chapter 2: Understanding Plugin Framework
Introduction
Converting plugins from v1 to v2
Adding resources into plugins
Adding web resources into plugins
Building JIRA from source
Adding new webwork actions to JIRA
Extending a webwork action in JIRA
Chapter 3: Working with Custom Fields
Introduction
Writing a simple custom field
Custom field searchers
Dealing with custom fields on an issue
Programming custom field options
Overriding validation of custom fields
Customizing the change log value
Migrating from one custom field type to another
Making custom fields sortable
Displaying custom fields on subtask columns
User and date fields from 4.1.x
Adding custom fields to notification mails
Adding help text for a custom field
Removing the 'none' option from a select field
Making the custom field project importable
Changing the size of a text area custom field
Chapter 4: Programming Workflows
Introduction
Writing a workflow condition
Writing a workflow validator
Writing a workflow post function
Editing an active workflow
Making an issue editable/non-editable based on workflow status
Including/excluding resolutions for specific transitions
Permissions based on workflow status
Internationalization in workflow transitions
Obtaining available workflow actions programmatically
Programmatically progressing on workflows
Obtaining workflow history from the database
Re-ordering workflow actions in JIRA
Creating common transitions in workflows
Jelly escalation
Chapter 5: Gadgets and Reporting in JIRA
Introduction
Writing a JIRA report
Reports in Excel format
Data validation in JIRA reports
Restricting access to reports
Object configurable parameters for reports
Creating a pie chart in JIRA
Writing JIRA 4 gadgets
Invoking REST services from gadgets
Configuring user preferences in gadgets
Accessing gadgets outside of JIRA
Chapter 6: The Power of JIRA Searching
Introduction
Writing a JQL function
Sanitizing JQL functions
Adding a search request view
Smart querying using quick search
Searching in plugins
Parsing a JQL query in plugins
Linking directly to search queries
Index and de-index programmatically
Managing filters programmatically
Subscribing to a filter
Chapter 7: Programming Issues
Introduction
Creating an issue from a plugin
Creating subtasks on an issue
Updating an issue
Deleting an issue
Adding new issue operations
Conditions on issue operations
Working with attachments
Time tracking and worklog management
Working with comments on issues
Programming Change Logs
Programming issue links
Validations on issue linking
Discarding fields while cloning
JavaScript tricks on issue fields
Chapter 8: Customizing the UI
Introduction
Changing the basic look and feel
Adding new web sections in the UI
Adding new web items in the UI
Adding conditions for web fragments
Creating new velocity context for web fragments
Adding a new drop-down menu on the top navigation bar
Dynamic creation of web items
Adding new tabs in the View Issue screen
Adding new tabs in the Browse Project screen
Creating Project Tab Panel using fragments
Adding new tabs in the Browse Version screen
Adding new tabs in the Browse Component screen
Extending a webwork action to add UI elements
Displaying dynamic notifications/warnings on issues
Re-ordering Issue Operations in the View Issue page
Re-ordering fields in the View Issue page
Chapter 9: Remote Access to JIRA
Introduction
Creating a SOAP client
Creating an issue via SOAP
Working with custom fields and SOAP
Attachments and SOAP
Worklogs and time tracking via SOAP
Commenting on an issue via SOAP
User and group management via SOAP
Progressing an issue in workflow using SOAP
Managing versions via SOAP
Administration methods in SOAP API
Deploy a SOAP service in JIRA
Deploy a XML-RPC service within JIRA
Writing a Java XML-RPC client
Expose services and data entities as REST APIs
Writing Java client for REST API
Chapter 10: Dealing with a Database
Introduction
Extending JIRA DB with custom schema
Accessing DB entities from plugins
Persisting plugin information in JIRA DB
Using active objects to store data
Accessing JIRA configuration properties
Getting database connection for JDBC calls
Migrating a custom field from one type to another
Retrieving issue information from a Database
Retrieving custom field details from a database
Retrieving permissions on issues from a database
Retrieving workflow details from a database
Updating issue status in a database
Retrieving users and groups from a database
Dealing with Change history in a database
Chapter 11: Useful Recipes
Introduction
Writing a service in JIRA
Adding configurable parameters to a service
Writing scheduled tasks in JIRA
Writing listeners in JIRA
Customizing e-mail content
Redirecting to different page in webwork actions
Adding custom behavior for user details
Deploying a servlet in JIRA
Adding shared parameters to Servlet Context
Writing a Servlet Context Listener
Using filters to intercept queries in JIRA
Adding and importing components in JIRA
Adding new module types to JIRA
Enabling access logs in JIRA
Enabling SQL logging in JIRA
Overriding JIRA's default components in plugins
Creating issues and comments from e-mail
Internationalization in webwork plugins
Sharing common libraries across v2 plugins
Operations using direct HTML links

Book Details

ISBN 139781849681803
Paperback476 pages
Read More