teamanalysis/bin/jira-summary

57 lines
1.8 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env python
import datetime
import logging
import pprint
import requests
import teamanalysis.config
import teamanalysis.jira
import teamanalysis.time
LOGGER = logging.getLogger('jira-summary')
def _get_without_epic(created):
without_epic = [issue for issue in created['issues'] if issue['fields']['customfield_10008'] is None]
return without_epic
def _get_without_estimate(created):
def _has_estimate(issue):
return any([issue['fields']['aggregatetimeestimate'],
issue['fields']['aggregatetimeoriginalestimate']])
without_estimate = [issue for issue in created['issues'] if not _has_estimate(issue)]
return without_estimate
def _show_summary(session, timepoint):
start, end = teamanalysis.time.get_checkpoint(timepoint)
created = teamanalysis.jira.issues_created_between(session, start, end)
without_epic = _get_without_epic(created)
without_estimate = _get_without_estimate(created)
resolved = teamanalysis.jira.issues_resolved_between(session, start, end)
print("\t".join([
start.date().isoformat(),
end.date().isoformat(),
str(created['total']),
str(resolved['total']),
str(len(without_estimate)),
str(len(without_epic)),
]))
def main():
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
2015-07-31 09:24:09 -07:00
logging.getLogger('requests').setLevel(logging.WARN)
config = teamanalysis.config.get()
timepoint = datetime.datetime(2015, 8, 1, 0, 0, 1)
session = teamanalysis.jira.create_session(**config['jira'])
print("Start Date\tEnd Date\tCreated\tCompl\tNo est\tNo epic")
now = datetime.datetime.utcnow()
while timepoint < now + datetime.timedelta(days=7):
_show_summary(session, timepoint)
timepoint = timepoint + datetime.timedelta(days=7)
if __name__ == '__main__':
main()