コード例 #1
0
ファイル: __main__.py プロジェクト: jdecew/flow_tools
 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)
コード例 #2
0
ファイル: __main__.py プロジェクト: jdecew/flow_tools
    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)
コード例 #3
0
ファイル: __main__.py プロジェクト: jdecew/flow_tools
    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')
コード例 #4
0
ファイル: __main__.py プロジェクト: jdecew/flow_tools
    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()
コード例 #5
0
ファイル: __main__.py プロジェクト: jdecew/flow_tools
    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
コード例 #6
0
ファイル: __main__.py プロジェクト: jdecew/flow_tools
    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)