我已多次看过这个问题,但没有足够的答案。
我们正在尝试将所有JIRA数据转储到我们的数据仓库/ BI系统中。或者至少是有趣的部分。
您可以做的一件事是直接跟踪字段持续时间跟踪状态时间,周期时间,提前期。通过JIRA的直接SQL数据库,这非常简单。表changeItem和changeGroup。
当然,REST JSON API对数据库的性能影响较小。
然而......在获取所有问题更改历史记录的其余API中似乎没有相应的内容。是的,您可以通过API调用直接获取一个问题的更改日志。如果您有100k问题,您是否希望进行100k API调用,迭代问题ID?听起来很疯狂。
是否有可能通过搜索API扩展更改日志,从而收集所有问题数据?我还没有看到它。我在这里寻求的是可能的吗?或者我们是否必须坚持SQL路线?
答案 0 :(得分:3)
我认为你问的问题几乎与以前一样:How can I fetch (via GET) all JIRA issues? Do I go to the Search node?,但另外有趣的是获取更改日志数据。
是的,您必须再次批量执行此操作,多次请求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解决方案:实施回调将数据存储到数据库并完成。
答案 1 :(得分:0)