本地环境
Python 3.7.1
windows 10 x64123

一 jira 批量提交

1 脚本思路

(1) 待提交问题存储:csv (习惯用 csv ,其他如excel 理论上也可以)
(2) 使用 jira 库的方法 create_issue
(3) 已提交问题存储到另一个 csv 文件里(用于后续操作,如统一更新状态、统一删除问题)

2 脚本参考
#encoding =utf-8
import csv
from jira import JIRA

jira_server = '公司 jira 域名'
jira_username = 'your name'
jira_password = 'your password'

newjira = JIRA(jira_server, basic_auth=(jira_username, jira_password))
csvfile = open('D:/jiracsv.csv', 'r', encoding='gbk') # 打exe包使用该路径,根据需要可随时修改路径
reader = csv.DictReader(csvfile)
for row in reader:
    new_issue = newjira.create_issue(
        project=row['项目'],
        summary=row['标题'],
        description=row['描述'],
        assignee={'name': row['分配给']},
        issuetype={'name' : row['问题类型']},
        components=[{'name': row['模块']}],
        versions=[{'name': row['版本']}],
        priority={'id': row['优先级']},
        reporter={'name': row['报告人'], 'key': row['报告人']})
    print('提交完成,棒(๑•̀ㅂ•́)و✧')
 
    with open('D:/jiracsvDone.csv', 'a+', encoding='utf-8', newline='') as f:  # 打exe包使用该路径,根据需要可随时修改路径,存储已提交问题列表
        csv_write = csv.writer(f)
        data_row = [new_issue, row['标题'],row['描述'],row['项目'],row['问题类型'],row['模块'],row['分配给'],row['报告人'],row['优先级'],row['版本']]
        csv_write.writerow(data_row)12345678910111213141516171819202122232425262728

注意点:
(1) 引入三方库: jira
(2) 确认公司内 jira 域名、登陆账号、登陆密码
(3) csv 文件标题行,根据需要添加。如上包括:项目、标题、描述xxx
(4) 开始运行

二 jira 脚本打包成exe文件(使用pyinstaller)

1 本地确认已引入jira , csv
$ python3
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import csv
>>> import jira12345
2 本地安装pyinstaller

安装:

$ pip3 pyinstaller1

查看版本号:

$ pyinstaller --version
3.412

3 运行打包语句
pyinstaller createJira.py1

出现2种报错:

报错1:ModuleNotFoundError: No module named 'jira'
解决思路:先确认当前是否有 jira
$ python3
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import jira
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'jira'

确实没有jira,重新引入jira(根本原因是本地有多个python环境)
pip3 install jira


报错2:Error loading Python DLL 'D:\python37.dll'.
LoadLibrary: 找不到指定的模块。

解决:pyinstaller --clean --win-private-assemblies -F createJira.py123456789101112131415161718

最终打包语句:

pyinstaller --clean --win-private-assemblies -F createJira.py1

生成exe路径:
dist/createJira.exe

4 使用可执行文件createJira.exe

(1) 把 jiracsv.csv 和 createJira.exe 放到电脑 D盘
(写死到D盘了,要是本地没有D盘,可以修改路径重新生成个exe)
(2) 在 jiracsv.csv 中 填写bug 详细信息后保存(参考csv中第一条)
(3) 打开cmd,进入D盘,把 createJira.exe 拖进cmd里,换行运行

三 还可以做什么

1 批量更改问题状态(transition_issue)
2 批量删除问题(delete())

参考文档:
https://github.com/sec4you/jira-issues-csv
https://jira.readthedocs.io/en/master/