#' jira_assignee
#'
#' A function for compiling information at an assignee level
#' @param df The data-frame created by running \code{\link{jira_issues}}
#' @param date_range Set a date range to filter to. Optional.
#' @seealso \code{\link{jira_issues}} which pulls the underlying data set
#' @export
jira_assignee <- function(df,date_range=NULL) {
require(purrr)
if (is_empty(date_range)==FALSE) {
dates <- Sys.Date() - date_range
df <- df %>%
filter(created > dates | resolved > dates)
}
#calculate for all tickets
x1 <- df %>%
group_by(issue_assignee) %>%
summarize(tickets = n(),
resolved_tickets = sum(is_resolved),
priority = mean(priority_score),
avg_since_creation = mean(days_since_creation),
pct_resolved = resolved_tickets/tickets) %>%
ungroup()
#calculate average age of open tickets
x2 <- df %>%
filter(is_resolved == 0) %>%
group_by(issue_assignee) %>%
summarize(age_open_tickets = mean(days_since_creation),
priority_unresolved = mean(priority_score)) %>%
ungroup()
#calculate average resolution time
x3 <- df %>%
filter(is_resolved == 1) %>%
group_by(issue_assignee) %>%
summarize(avg_resolution_days = mean(days_to_resolve),
priority_resolved = mean(priority_score)) %>%
ungroup()
final_set <- x1 %>%
left_join(x2,by='issue_assignee') %>%
left_join(x3,by='issue_assignee') %>%
arrange(desc(tickets)) %>%
mutate_all(funs(replace(., is.na(.), 0))) %>%
mutate(priority_ratio = priority_resolved / priority_unresolved)
return(final_set)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.