knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "README-" )
sprintr is a minimal R wrapper of the Jira and Jira Software REST APIs. Convenience functions with object parsing are available for retrieving sprint and velocity information. Bring the power of #rstats to your sprint reporting!
devtools::install_github("davidski/sprintr")
Set the base url to your Jira API endpoint via the JIRA_API_URL environment
variable (typically via .Renviron
).
| variable | purpose | |----------|---------| | JIRA_API_URL | endpoint of the Jira API (ex. https://yourdomain.atlassian.net) |
For Atlassian cloud installations, obtain a token via
id.atlassian.net and set the JIRA_API_KEY
and
JIRA_USER
environment variables.
| variable | purpose | |----------|---------| | JIRA_API_KEY | API token obtained via id.atlassian.net | | JIRA_USER | username (ex. youraccount@example.com) |
My available versions of Jira Server do not support the same API as Jira Cloud. While sprintr aims for the lowest common denominator, there may be unexpected differences when operating on a Jira Server endpoint. Bug reports and PRs are very welcome!
To authenticate to Jira Server, you can use either use basic authentication or OAuth1.0 authentication. Basic authentication, while simpler, is not recommended and is provided only for local testing. Basic authentication will send your credentials unencrypted (apart from any HTTPS in use) across the network.
| variable | purpose | |----------|---------| | JIRA_USER | username (ex. youraccount@example.com) | | JIRA_API_KEY | password |
Jira's server edition uses signed OAuth 1.0 authentication. You, or your Jira
server administrator, will need to create an OAuth endpoint. This endpoint
should specify a return url of http://localhost:1410
. As part of the setup
process, your administrator will generate an OAuth consumer secret (short text string), a
shared secret (short text string), and a private key (a long PEM-formatted key).
The private key should be stored in a secure location on your installation of
sprintr. Configure the following environment variables:
| variable | purpose | |----------|---------| | JIRA_USER | OAuth Consumer Secret | | JIRA_API_KEY | OAuth Shared Secret | | JIRA_OAUTH_SSL_KEY | full path to a PEM encoded private key |
Full docs are coming...
library(tidyverse) library(sprintr) # find the Story Point field identifier for your environment find_story_point_mapping() # find the ID of the board of interest get_boards() %>% head(1) %>% pull(id) -> my_board # pull up details on a board get_board_details(board_id = my_board) # identify the sprint of interest get_all_sprints(board_id = my_board) %>% arrange(desc(endDate)) %>% head(1) %>% pull(id) -> my_sprint # get a sprint report sprint_report <- get_sprint_report(sprint_id = my_sprint) # the report has quite a bit of info, for raw story point totals sprint_report$points_sum # pull up details on a specific issue get_issue(issue_key = "XXX-1234") # or see all the fields on that issue get_issue("XXX-1234", full_response = TRUE) # find all the epics associated with a board get_epics(board_id = my_board) # the main personal motivation of this package sprint_report_detail <- get_sprint_report_detail(board_id = my_board, sprint_id = my_sprint) # do ggplot stuff!
See the Atlassian Jira Cloud and Jira Software Cloud documentation for more information.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
The MIT License applies.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.