IMPROVEKIT
Script Ruby for Jira
Â
Stand-alone version for Jira server and Jira Cloud
Â
You can BUY this product here…
Â
Basically this version has the same features as the plugin for Jira Server (see below) but allows to run it as a Ruby script
Installation
Unzip the file
Install last version of Ruby in your system . Example on MacOs:
brew install ruby-install
ruby-install --latest
brew install ruby-3.2.1
brew install ruby@3.1
echo 'export PATH="/usr/local/opt/ruby@3.1/bin:$PATH"' >> ~/.profile
ruby -v
Install jira-ruby gem
cd jira-ruby-master
sudo gem install nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
bundle install
sudo gem install jira-ruby
Â
See options
ruby rql2.rb --help
Usage: rql.rb options
-j JQL Jira jql code to retrieve issues - REQUIRED
-f fields field list for jql
-x expand expand list (all,project,issuetype,users,components,versions,comment,issuelinks,worklog,attachment,subtasks,customs)
-q rql Improvekit ruby query language (rql) code to process jql result
-F include extra (calculated) fields
-n integer number of fields to generate for collection values fields (defaults apply)
-N integer max number of rows to query
-s fileName name of rql script file
-d dirName full path name of scripts (by default current dir)
-h host Jira host name
-u user Jira user name
-p passw Jira user password
-c clear caches
-T trial (for testing)
-v verbose
--help
Ruby Query Language commands:
select :all :fieldI, ... lambdaI | :field1 | lambda1 => :alias1, ... , fieldN | lambdaN => aliasN
where field | lambda or where field | lambda => value
Examples: where :createdYesterday or where :created => Date.yesterday or where lambda { |r| r.before? :created, Date.today }
sort_by | order_by :field1, ... , fieldN [descending = false]
group_by :field1 => :alias1, ... , fieldN => aliasN | lambdaN => :aliasN
Example: data.group_by :project => :prj, lambda { |group| group.size} => :count
where_ranked field, rankedByField, number
Example: data.where_ranked :type, :items, 5
omit_all | omit field
distinct field
values_of field
result set protocol:
join set [fields = nil]. Example: activities.join group, [:project, :period, :type]. result.join set, indexed_on set
indexed_on field. Example: index = data.indexed_on: [:project, lambda {:row | row quarterly}, :type ]
exists? another_set
num field statistics: sum, average, accum_sum, accum_average, max, min, median, mode, variance, standard_deviation
buckets, centiles, quartiles, ranks
row protocol:
join row, in field, values, accum_sum field, scalar
is_null? field, is_nothing? field, is_zero? num_field, is_today? date_field
equal_to? field, after? field,value, before? field, value, between field,value
Run
Result are answered in json format
Â
Jira Server plugin Version
This plugin allows you to obtain information from the Jira through queries written in a specific domain language called (RQL). The language is based on Ruby, with semantics similar to the well-known SQL to facilitate learning. The plugin is used as one more service available within your Jira server, from your own scripts and / or applications.
Â
Support
If you need support on the plugin, please send an email to improvekit@gmail.com and your order will receive a response and solution. Improvekit is formed by specialists in systems with more than 20 years of experience in software engineering and in Jira's employment every day and develops its applications following a mature methodology to provide its clients with the highest quality and service
Features
Integrated with JQL
Domain Specific Language (RQL)
Caching of queries
Control over the fields and expansion of objects (such as projects, components, versions, comments)
Control over collection fields, selected in individual columns by value (you can indicate up to how many columns)
Limit the number of records returned
Supports custom fields
Supports script files
Â
Services
Base Url
jira-server-url/plugins/servlet/rql
Format
REST/json
Method
POST
Check License
Â
Commands
Send as request parameters
Â
Parameter | Argument | Description |
---|---|---|
clear | Â | Reset the plugin and clear caches. The clear command does not need to have established the session with login |
expand | list of objects/attributes to expand | Answer additional expanded object attributes. Available expands includes:
|
extras | Â | Also answer a set of predefined calculated fields and expands:
|
fields | field names list | Also retrieve these fields from Jira. For all fields, specify *all |
filename | script_file_name | The filename that contains RQL query code |
jql | jql code | Main query to obtain data from Jira. Allways given, except for clear and verbose commands. Query results are cached (see also clear command) |
login | Â | Set credentials with Jira (use cookies) |
number_of_fields | number | For collection fields, max number of columns to answer with each value (defaults apply) |
rows_limit | number | Max number of rows to retrieve with JQL |
rql | rql code | Optional. This domain specific language query is processed over the data obtained with jql. See below for a language sintax and available commands |
scripts_dir | full-path-to-my-scripts-on-server | By default, jira-home/scripts/rql. See also filename |
verbose | Â | Record process steps and information in Jira log (including Jira available field names) |
Â
Ruby Query Language commands
Â
The JQL result data is available in a ResultSet class variable called data. Ruby syntax apply.
select :all | :field, ... lambdaI | :field1 | lambda1 => :alias1, ... , fieldN | lambdaN => aliasN
where field | lambda or where field | lambda => value
Examples:
sort_by | order_by :field1, ... , fieldN [descending = false]
group_by :field1 => :alias1, ... , fieldN => aliasN | lambdaN => :aliasN
where_ranked field, rankedByField, number
omit_all | omit field
distinct field
values_of field
Result Set Protocol
join set [fields = nil].
indexed_on field.
exists? another_set
Available numeric field statistic functions
sum, average, accum_sum, accum_average, max, min, median, mode, variance, standard_deviation, buckets, centiles, quartiles, ranks
Row protocol
join row
in field, values
accum_sum field
scalar
is_null? field
is_nothing? field
is_zero? num_field
is_today? date_field
equal_to? field
after? field, value
before? field, value
between field,value
Â
Examples
Below are a series of service requests to the plugin using the command line (curl)
clear
The value of the clear parameter could be any value, if the clear parameter is provided the plugin is assumed as yes
clear verbosed
login
query mixing JQL and RQL
selected collection fields
where (you cloud use closures, see next example)
selected, extra and expanded fields
closures (lambda)
group_by, ranks and transpose
script file using an index
rql_example.rb:
Â
Â
Privacy Policy
Data security and privacy policy
Â
End User License Agreement
EULA
Support
If you need support on the plugin, please send an email to improvekit@gmail.com and your order will receive a response and solution. Improvekit is formed by specialists in systems with more than 20 years of experience in software engineering and in Jira's employment every day and develops its applications following a mature methodology to provide its clients with the highest quality and services.
Contact improvekit@gmail.com