Bash 如何使用gitlab api删除每个已关闭的里程碑
因为我们是一个小团队,所以我们用每周的次数来设定里程碑。例:Bash 如何使用gitlab api删除每个已关闭的里程碑,bash,gitlab,gitlab-api,Bash,Gitlab,Gitlab Api,因为我们是一个小团队,所以我们用每周的次数来设定里程碑。例:第12周 但是,当新的一年开始的时候,我们不能再创造那些里程碑了,因为它们已经存在并且已经结束了 我想删除每个已关闭的里程碑,并尝试为此目的使用 我创建了以下脚本: 请求每个已关闭的里程碑工作 #global.sh 关闭里程碑(){ curl-s-H“$private_token”\ -X得到\ “${base\u url}组/${group\u name}/里程碑?状态=关闭” } 删除_里程碑(){ #回波结果:https://gi
第12周
但是,当新的一年开始的时候,我们不能再创造那些里程碑了,因为它们已经存在并且已经结束了
我想删除每个已关闭的里程碑,并尝试为此目的使用
我创建了以下脚本:
请求每个已关闭的里程碑工作
#global.sh
关闭里程碑(){
curl-s-H“$private_token”\
-X得到\
“${base\u url}组/${group\u name}/里程碑?状态=关闭”
}
删除_里程碑(){
#回波结果:https://gitlab.entepriseName.ch/api/v4/groups/entepriseName/milestones/279
curl-H“$private_代币”\
-X删除\
“${base\u url}组/${group\u name}/里程碑/$1”
}
创建循环并删除它
#milestone-remover.sh
#!/bin/bash
#进口
来源./includes/global.sh
问题=$(完成里程碑)
对于$(jq-c.[].\id'中的里程碑id,我必须删除$milestone\u id
变量中的/r
,该变量包含以下代码milestone\u id=“${milestone\u id%[:cntrl:][]代码>
这是最后的代码
issues=$(完成里程碑)
对于里程碑_id,单位为$(jq-c.“[]..id”“'/millements/”,单位为$1"“
那里的引号是怎么回事?你看到这里突出显示的语法了吗?milestone\u id=echo
这不是你设置变量的方式。检查你的脚本。而/r
实际上是/
和r
。要有CR字符,请执行$\r'
。但我认为不应该有CR字符来自gitlab的g,那将是stranfe..我是bash脚本的初学者,sry.“'/millements/”,1美元"“
获取$milestone\u id
并在请求结束时分配它。milestone\u id=echo
我在另一次聊天中看到了这一点。`To have CR character,do$'\r'`我想删除这些字符,不知道为什么它会出现在gitlab中,可能是因为我执行循环的方式?你能帮我吗?要删除domil吗estone_id=${milestone_id%$'/r'}
或使用dox2unix
当然会使用$milestone_id
但是为什么所有的
引号到处都是?只要“${base_url}组/$group_name/milestles/$1”
-只有两个"
。你没有看到未关闭的?state=closed'
'
引用吗?你有没有用shellcheck.net检查你的脚本?Thx为了你的解释,我重构了我的代码,不再从shellcheck收到警告。但是代码仍然不工作,现在你去调试。研究如何调试bash脚本-添加集-x
并发布输出-curl调用有问题。
+ curl -H 'PRIVATE-TOKEN: xxxxx' -X DELETE $'https://gitlab.entepriseName.ch/api/v4/groups/entepriseName/milestones/293\r'
curl: (3) URL using bad/illegal format or missing URL