使用 gh cli 在 github 问题中创建 table

creating table in github issues using gh cli

我正在使用 bash 和 gh cli 为进入新创建问题的摘要报告创建 table。我遇到了 2 个问题:

  1. 我希望 table 看起来像降价 table,同样地:
Severity Type Issue URL

但是,特殊字符不会在问题正文中变成 table。相反,我得到了原始输入。可能是因为我用了<br>下线了? <br> 是唯一有效的方法,\n \n\r 和其他选项均无效。这是创建的问题的屏幕截图: 2. 我必须 运行 进行多次扫描,我想将每个警报严重性收集到一个组中,并在代码末尾将它们附加在一起以提高可读性。我的想法是,通过了解 SEVERITY 是什么,我会将其附加到正确的 *_alerts 变量中。我需要帮助使这些线路正常运行:

"${SEVERITY}_Alerts"="${${SEVERITY}_Alerts} | $SEVERITY | $alertType | URL |<br>"
REPORT="${REPORT}${High_Alerts}${Medium_Alerts}${Low_Alerts}${Informational_Alerts}"

为了更好的上下文,这是我到目前为止想出的:

SEVERITY="High"
High_Alerts=''
Medium_Alerts=''
Low_Alerts=''
Informational_Alerts=''
REPORT=$"###Unified zap-scan report ran at $(date) <br><br> | Severity | Type | Issue URL | <br> | ----------- | ----------- | ----------- |<br>"
for ((i = 0; i < ${#BODY[@]}; i++)); do
  line=${BODY[$i]}
  if [[ $line =~ "Alert\nAlert" ]]; then
    line=${line##*#}
    line=${line%%A*}
    SEVERITY=$line
    i=$i+1
    line=${BODY[$i]}
    alertType="${line%%\*}"
    i=$i+2
    REPORT=$"${REPORT} | $SEVERITY | ${alertType} | URL |<br>"
    #"${SEVERITY}_Alerts"="${${SEVERITY}_Alerts} | $SEVERITY | $alertType | URL |<br>"
  elif [[ $line =~ "\nAlert" ]]; then
    i=$i+1
    line=${BODY[$i]}
    alertType="${line%%\*}"
    i=$i+2
    REPORT=$"${REPORT} | $SEVERITY | ${alertType} | URL |<br>"
    #"${SEVERITY}_Alerts"="${${SEVERITY}_Alerts} | $SEVERITY | $alertType | URL |<br>"
  fi
done
#REPORT="${REPORT}${High_Alerts}${Medium_Alerts}${Low_Alerts}${Informational_Alerts}"

p.s.

创建问题的命令完美无缺,错误的是问题正文的输入。

  1. 对于table的问题,我相应地把任何<br>改成了$'\r\n'
  2. 当使用 GH-CLI 收集信息时,它会返回为 JSON,因此,您需要使用 jq 来查询和获取值本身。同样,该值将带有双引号,因此我使用了这样的替换运算符:
  URL=${URL%\"} #remove last double quote
  URL=${URL#\"} #remove first double quote
  1. 正如@Socowi 在评论中提到的,解决数组问题的最好方法是关联数组。这是一个非常好的 blog post 对我有帮助

p.s.

那些双引号破坏了我试图创建的符号链接,所以最好小心它们