Пример #1
0
                  "--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])
Пример #2
0
# На вход получает файл 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)
Пример #3
0
# 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)