逐行搜索txt文件到变量和每个值运行CURL命令

时间:2018-03-07 09:25:15

标签: python bash jira-rest-api

我通过python过滤了没有子任务的问题:

#!/usr/bin/python
import sys
import json
sys.stdout = open('output.txt','wt')

datapath = sys.argv[1]
data = json.load(open(datapath))

for issue in data['issues']:
        if len(issue['fields']['subtasks']) == 0:
                print(issue['key'])
存储没有子任务的output.txt任务中的

(并且工作正常):

TECH-729 TECH-124

现在有不同的问题,似乎$ p变量中的值未传递给CURL(能够登录到JIRA但不能创建子任务):

 while read -r p; do
  echo $p

curl -D- -u user:pass -X POST --data "{\"fields\":{\"project\":{\"key\":\"TECH\"},\"parent\":{\"key\":\"$p\"},\"summary\":\"TestChargen#Nr\",\"description\":\"some description\",\"issuetype\":{\"name\":\"Sub-task\"},\"customfield_10107\":{\"id\":\"10400\"}}}" -H "Content-Type:application/jso#n" https://jira.companyu.com/rest/api/latest/issue/

done <output.txt

回声输出应该是

TECH-731 TECH-729(因此卷曲应该为每个输出值运行两次

但curl只是在没有创建子任务的情况下登录,当硬编码而不是$ p时,curl会针对相同的项目ID执行两次

1 个答案:

答案 0 :(得分:-1)

真的不知道为什么,但这段代码有效,谢谢大家

for project in `cat output.txt`; do
echo $project
curl -D- -u user:pass -X POST --data "{\"fields\":{\"project\":{\"key\":\"TECH\"},\"parent\":{\"key\":\"$project\"},\"summary\":\"TestChargenNr\",\"description\":\"some description\",\"issuetype\":{\"name\":\"Sub-task\"},\"customfield_10107\":{\"id\":\"10400\"}}}" -H "Content-Type:application/json" https://jira.company.com/rest/api/latest/issue/

 done