jira 利用api批量操作,删除项目等

jira 是有api的

如果想做一些自动化的东西,就可以利用jira的api. jira有一款插件 Jira Command Line Interface (CLI), 在这个功能做得很完善了.

部署方式:

  1. 安装服务端, 在jira服务器上添加这个插件, 激活插件.
  2. 安装cli客户端,各种windows,linux,mac版本都有. docker的也有.
  3. 分配一个账号, 分配一个管理员账号,我试过用初始哪个管理员有报错,另外创建一个普通管理员就可以.
  4. 就可以用命令行操作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,不是一行一行来读,是按空格来分。(如果一整行没有空格,就会正常显示。

你可能感兴趣的:(jira 利用api批量操作,删除项目等)