前言
最近部门要求大家下班前挪动jira中敏捷迭代的任务,但是团队中总有些同事忘记,然后第二天早上被通报批评,领导后面直接发话这些同事有可能成为年底的淘汰对象。我在想能否通过程序每天定时获取jira中的过期任务,然后通知到敏捷团队钉钉群中呢,这样团队成员就不会忘记了。
Jira任务获取功能
jira是一个应用广发的项目管理工具,我们公司也使用这个工具去管理需求、任务、bug等。那么通过程序如何获取jira中的任务、bug信息呢?
jira-client
依赖我这边使用了一个开源的依赖包jira-client
, maven
坐标如下:
net.rcarz
jira-client
0.5
compile
github
地址:https://github.com/bobcarroll/jira-client
JiraClient
的Bean@Configuration
@EnableConfigurationProperties({JiraAuthProperties.class, DingTalkProperties.class})
public class JiraConfig {
@Autowired
private JiraAuthProperties jiraAuthProperties;
/**
* jira client的bean
* @return
*/
@Bean
public JiraClient createJiraClient() {
BasicCredentials creds = new BasicCredentials(jiraAuthProperties.getUsername(), jiraAuthProperties.getPassword());
JiraClient jiraClient = new JiraClient(jiraAuthProperties.getUrl(), creds);
return jiraClient;
}
}
BasicCredentials
对象中传入jira账号和密码- 根据jira的地址和认证信息创建
JiraClient
/**
* 获取所有过期的任务
*
* @param endDate 截止时间
* @return
* @throws JiraException
*/
public List getAllExpireTasks(Date endDate) throws JiraException {
List allUserNames = EmployeeManager.getAllUserNames();
String endDateStr = DateUtil.format(endDate, DATE_FORMATE);
String userTasksJql = getUserExpireTasksJql(allUserNames, endDateStr);
Issue.SearchResult searchResult = jiraClient.searchIssues(userTasksJql, 100000);
return searchResult.issues;
}
/**
* 获取用户过期的查询语句
*
* @param users
* @param dueDateStr
* @return
*/
public static String getUserExpireTasksJql(List users, String dueDateStr) {
String jqlTmpl = "resolution = Unresolved and due