jira 是有api的
如果想做一些自动化的东西,就可以利用jira的api. jira有一款插件 Jira Command Line Interface (CLI), 在这个功能做得很完善了.
部署方式:
- 安装服务端, 在jira服务器上添加这个插件, 激活插件.
- 安装cli客户端,各种windows,linux,mac版本都有. docker的也有.
- 分配一个账号, 分配一个管理员账号,我试过用初始哪个管理员有报错,另外创建一个普通管理员就可以.
- 就可以用命令行操作jira了. 有什么命令可以参考案例 https://bobswift.atlassian.net/wiki/spaces/JCLI/pages/6684682/Examples
实操案例
比如我们可以输出所有的项目
image.png
比如我们可以批量删除所有项目
[root@sz_xxgc_docker01_13_11 ~]# cat deletejiraproject.sh
#!/bin/bash
#20200623 lifh
#批量删除jira中所有的项目
jiraUrl='http://1111.111.111.111:8080'
jiraUser='xxxxxxx'
jiraPasswd='xxxxxxx'
docker run -ti bobswiftapps/acli:latest acli.sh jira --action getProjectList --server ${jiraUrl} --user ${jiraUser} --password ${jiraPasswd} >/tmp/jiraProjectListTmp.log
awk -F, '{ print $3 }' /tmp/jiraProjectListTmp.log >/tmp/jiraProjectList.log
sed -i 's/"//g' /tmp/jiraProjectList.log
grep -Ev "^$" /tmp/jiraProjectList.log >/tmp/jiraProjectListNew.log
cat /tmp/jiraProjectListNew.log |
while read line
do
echo "now we will delete ${line}"
docker run bobswiftapps/acli:latest acli.sh jira --action deleteProject --project ${line} --server ${jiraUrl} --user ${jiraUser} --password ${jiraPasswd} || echo "${line} 执行出错"
#docker不能带t,否则命令会报错,the input device is not a TTY
echo "pass"
done
#不能用for, for有一个小bug, 注意:用for有一个小bug,不是一行一行来读,是按空格来分。(如果一整行没有空格,就会正常显示。