"--config-file", dest="configfile", default='bamboo.cfg', help="read config from FILE", metavar="FILE") parser.add_option("-p", "--programmers", dest="programmers", help='txt with programmers logins') options, args = parser.parse_args() if len(args) < 1: parser.print_usage() sys.exit(-1) jira = Tasks(configfile=options.configfile) f = open(options.programmers, 'r') programmers = map(str.strip, f.readlines()) f.close() counts = {} m = 0 for p in programmers: query = ("project='%s'" " AND status WAS developed BY '%s'" " AND createdDate > '-180d'") % (args[0], p) cnt = len(jira.jira.search_issues(query, maxResults=200)) if cnt > 0: counts[p] = cnt m = max(m, cnt) for k in sorted(counts.keys()): print "%s: %0.2f (%d)" % (k, counts[k] / float(m), counts[k])
# На вход получает файл collected-tasks.txt # Дампит в JSON следующие файлы # merge-plan.json: словарь {Stable -> {Version -> [task-list]}} # integration-tasks.json: словарь {Version -> int-task-key} import sys import os import json from pprint import pprint from bamboo.tasks import Tasks from bamboo.helpers import get_stable, cerr project_key = os.environ['BUILD_KEY'].split('-')[0] print "Project key:", project_key jira = Tasks(configfile='/data/bamboo.cfg') with open('collected-tasks.txt', 'r') as f: all_stables = dict() version_int_tasks = dict() for line in f.readlines(): task_key = line.strip() versions = jira.get_versions(task_key) stables = {v: get_stable(v) for v in versions} if len(set(stables.values()))!=len(versions): cerr('Incorrect versions and stables for %s' % task_key) cerr('Versions: %s' % ', '.join('%s: %s' % (k, v) for k, v in stables.items())) sys.exit(-1) for v, s in stables.items(): all_stables.setdefault(s, {}) all_stables[s].setdefault(v, []) all_stables[s][v].append(task_key)
# coding: utf-8 # # скрипт, переводящий задачи на интеграцию в статус Integrating и на # пользователя, из-под которого осуществляется сборка # # На входе integration-tasks.json # import json from bamboo.tasks import Tasks from bamboo.helpers import cerr jira = Tasks(configfile='/data/bamboo.cfg') f = open('integration-tasks.json', 'r') integration_tasks = json.load(f) f.close() for task_key in integration_tasks.values(): info = dict(jira.task_info(task_key)) if info['status'] != 'Integrating': cerr('Taking task %s' % task_key) transitions = jira.get_transitions(task_key) for trans in transitions: name = trans['to']['name'].lower().replace(' ', '-') print name if name == 'integrating': print "Transition to %s" % name jira.transition(task_key, trans['id']) elif info['assignee'] != 'bamboo': cerr('Assigning %s to me' % task_key)