def run_args(cls, config, args): jira_client = jira_util.get_jira(**config.jira.auth) tag_map = config.gerrit_jira.tag_map integrations.close_issues_with_merged_resolutions( jira_client, args.repo_path, tag_map, branch='master', max_commits=args.max_commits)
def run_args(cls, config, args): jira_client = jira_util.get_jira(**config.jira.auth) gerrit_client = gerrit_util.get_gerrit(**config.gerrit.rest) session_factory = orm.init_sql(config.db_url) nominal_flow = config.jira.nominal_flow tag_map = config.gerrit_jira.tag_map integrations.update_issues_from_review(gerrit_client, jira_client, session_factory(), args.project, args.start_time, args.end_time, args.dry_run, nominal_flow, tag_map)
def run_args(cls, config, args): import jira jira_client = jira_util.get_jira(**config.jira.auth) releases = git_util.get_releases(args.repo_path, config) pairs = zip(releases[0:-1], releases[1:]) if args.url: wrapper = textwrap.TextWrapper(width=80, initial_indent=' ' * 4, subsequent_indent=' ' * 4) else: wrapper = textwrap.TextWrapper(width=80, initial_indent='', subsequent_indent=' ' * 11) for from_tag, to_tag in pairs: if args.release is not None and to_tag != args.release: continue print_header('{} -> {}'.format(from_tag, to_tag)) sys.stdout.write('\n') issues = git_util.get_issues_closed_in_series( args.repo_path, from_tag, to_tag, config.gerrit_jira.tag_map) summaries = git_util.get_release_notes(args.repo_path, from_tag, to_tag) for issue in issues: try: issue_obj = jira_client.issue(issue, 'summary') except jira.JIRAError: sys.stdout.write('{}: N/A\n'.format(issue)) continue if args.url: sys.stdout.write('{}/browse/{}\n'.format( config.jira.auth['url'], issue)) sys.stdout.write(wrapper.fill(issue_obj.fields.summary)) sys.stdout.write('\n') else: text = wrapper.fill('{}: {}'.format( issue, issue_obj.fields.summary)) sys.stdout.write(text) sys.stdout.write('\n') if issues and summaries: sys.stdout.write('\n') for summary in summaries: sys.stdout.write(summary) sys.stdout.write('\n')
def run_args(cls, config, args): jira_client = jira_util.get_jira(**config.jira.auth) gerrit_client = gerrit_util.get_gerrit(**config.gerrit.rest) session_factory = orm.init_sql(config.db_url) nominal_flow = config.jira.nominal_flow tag_map = config.gerrit_jira.tag_map sql = session_factory() end_time = datetime.datetime.utcnow() # If the database contains nothing, then default to 1 week ago start_time = end_time - datetime.timedelta(weeks=1) query = (sql.query(orm.PollHistory).filter_by(status=0).order_by( orm.PollHistory.rid.desc()).slice(0, 1)) for record in query: start_time = record.period_end print('\n\nPolling gerrit at {} UTC\n{}'.format(end_time, '-' * 60)) record = orm.PollHistory(period_start=start_time, period_end=end_time, status=-1) try: integrations.update_issues_from_review( gerrit_client, jira_client, sql, args.project, start_time.strftime(GERRIT_TIME_FMT), end_time.strftime(GERRIT_TIME_FMT), args.dry_run, nominal_flow, tag_map) record.status = 0 except: raise finally: if not args.dry_run: sql.add(record) sql.commit()
def run_args(cls, config, args): import jira jira_client = jira_util.get_jira(**config.jira.auth) releases = git_util.get_releases(args.repo_path, config) pairs = zip(releases[0:-1], releases[1:]) for from_tag, to_tag in pairs: if args.release is not None and to_tag != args.release: continue print_header('{} -> {}'.format(from_tag, to_tag)) issues = git_util.get_issues_closed_in_series( args.repo_path, from_tag, to_tag, config.gerrit_jira.tag_map) for issue in issues: try: issue_obj = jira_client.issue( issue, config.jira.fixed_release_field) issue_obj.update( fields={config.jira.fixed_release_field: to_tag}) sys.stdout.write(' {}: {}\n'.format(issue, to_tag)) except jira.JIRAError: sys.stdout.write( ' {}: failed (non-existant?)\n'.format(issue)) continue
def run_args(cls, config, args): jira_client = jira_util.get_jira(**config.jira.auth) for issue_key in args.issue_keys: issue = jira_client.issue(issue_key) jira_util.add_mentions_to_watchers(jira_client, issue)