我已经多次看到这个问题,但没有足够的答案。
我们正在尝试将所有 JIRA 数据转储到我们的数据仓库/BI 系统中。或者至少,有趣的部分。
您可以做的一件事是直接使用现场持续时间跟踪状态时间、周期时间、提前期。这通过 JIRA 的直接 SQL 数据库非常容易。表changeItem 和changeGroup。
当然,REST JSON API 对数据库的性能影响较小。
但是......在获取所有问题更改历史记录的其余 API 中似乎没有等效项。是的,您可以通过 API 调用直接获取一个问题的变更日志。如果您有 10 万个问题,您是否希望进行 10 万次 API 调用,遍历问题 ID?听起来很疯狂。
是否可以通过搜索 API 以某种方式扩展更改日志,该 API 会收集所有问题数据?我没见过。我在这里寻求的可能吗?还是我们必须坚持 SQL 路线?
我认为您问的问题与以前几乎相同:如何获取(通过 GET)所有 JIRA 问题?我去搜索节点吗?,但在获取变更日志数据方面也很有趣。
是的,您必须再次批量操作,多次请求 JIRA API。这是一个小 bash 脚本,它可以帮助您做到这一点:
#!/usr/bin/env bash
LDAP_USERNAME='<username>'
LDAP_PASSWORD='<password>'
JIRA_URL='https://jira.example.com/rest/api/2/search?'
JQL_QUERY='project=FOOBAR'
START_AT=0
MAX_RESULTS=50
TOTAL=$(curl --silent -u "${LDAP_USERNAME}:${LDAP_PASSWORD}" -X GET -H "Content-Type: application/json" "${JIRA_URL}maxResults=0&jql=${JQL_QUERY}" | jq '.total')
echo "Query would export ${TOTAL} issues."
while [ ${START_AT} -lt ${TOTAL} ]; do
echo "Exporting from ${START_AT} to $((START_AT + MAX_RESULTS))"
curl --silent -u "${LDAP_USERNAME}:${LDAP_PASSWORD}" -X GET -H "Content-Type: application/json" "${JIRA_URL}maxResults=${MAX_RESULTS}&startAt=${START_AT}&jql=${JQL_QUERY}& expand=changelog" | jq -c '.issues[]' >> issues.json
START_AT=$((START_AT + MAX_RESULTS))
done
请注意expand参数,该参数还将所有更改日志也放入 json 转储。或者,您可以使用issue dumper python 解决方案:实现回调以将数据存储到 db,您就完成了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句