Java Redmine Rest API
Java Create Redmine IssueWhat(何事)有一个需求,通过Java创建Redmine任务,未来应用到自动创建缺陷任务或者一键导入研发任务等工作,增强团队效率;Why(何解)了解RedmineRedmine支持Java调用吗?是的,支持!Redmine Rest API提供了一套规则允许外部脚本调用。Redmine Rest APIRedmine API ...
文章目录
Java Redmine Rest API
What(何事)
有一个需求,通过Java创建Redmine任务。
Why(何解)
了解Redmine
-
Redmine支持Java调用吗?
是的,支持!Redmine Rest API提供了一套规则允许外部脚本调用。
Redmine Rest API
Redmine API JAVA 范例
Redmine API JAVA MAVEN
Redmine REST API 帮助文档 -
Redmine配置
从范例中可以看出,我们需要一个RedmineapiAccessKey
参数,作为请求参数来调用API,实现脚本创建任务,这个apiAccessKey
怎么获得的呢- apiAccessKey的获得
如上图所示,登陆Redmine平台,点击‘我的账号’
,在显示界面中,点击图片中箭头所指显示
,我们所需要的apiAccessKey就会显示出来。
- apiAccessKey的获得
-
Redmine打开Rest API功能
上面说来如何配置,现在说如何让Redmine支持被脚本调用,默认是不开放的,操作如下:
如上图所示,登陆Redmine平台,点击‘管理 -> 配置 -> API’
,在所显示界面中将启动REST web service 与 启动JSONP支持
勾选,并保存
,即可。
编写Java脚本
- 通过maven构建所需jar
<!-- 略 -->
<dependencies>
<!-- https://mvnrepository.com/artifact/com.taskadapter/redmine-java-api -->
<dependency>
<groupId>com.taskadapter</groupId>
<artifactId>redmine-java-api</artifactId>
<version>3.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
<!-- 略 -->
- 编辑脚本
public class TaskManager {
private static Object issues;
public static void main(String[] args) throws Exception {
//redmine本地地址
String uri = "http://********:******";
//redmine apiAccessKey
String apiAccessKey = "**************";
//目标项目
String projectKey = "first_pro";
// any
Integer queryId = null;
RedmineManager mgr = RedmineManagerFactory.createWithApiKey(uri, apiAccessKey);
//获取问题管理对象
IssueManager issueManager = mgr.getIssueManager();
//获取所有问题
List<Issue> issues = issueManager.getIssues(projectKey, queryId);
//迭代输出问题
for (Issue issue : issues) {
System.out.println(issue.getDescription());
System.out.println(issue.toString());
}
//设置跟踪 1:问题;2:功能
Tracker tracker = TrackerFactory.create(2);
for(int i=1; i<100; i++) {
Issue issueToCreate = IssueFactory.create(1, "some subject");
issueToCreate.setStatusId(5);
issueToCreate.setTracker(tracker);
issueManager.createIssue(issueToCreate);
}
//通过ID获取问题(这里获取ID=11的问题)
Issue issue = issueManager.getIssueById(11);
System.out.println(issue.getDescription());
}
}
JAVA API 中所需参数获取方式
Redmine Status
[http://redmine_home/issue_statuses.xml]
由此获取我们可用的状态码
详见:Rest_IssueStatuses
Redmine Trackers
[http://redmine_home/trackers.xml]
由此获取我们可用跟踪
详见:Rest_Trackers
Redmine Users
[http://redmine_home/users.xml]
由此获取我们可用用户列表
注:如果我们要添加用户作为跟踪者或者任务发布者,必须将其加入到项目中!!!
详见:Rest_Users
测试
Redmine版本
Redmine 3.4.6.stable
结语
至此,JAVA脚本创建Redmine任务即完成来,应项目需求来使用。
更多推荐
所有评论(0)