def migrate_issues(self, started): """ Migrates issues from SK to PUB. :param started: :return: """ today = dt.today().replace(tzinfo=started.tzinfo) days = int((today - started).days) + 1 sk_issues = self._sk_jira.search_issues( 'createdDate >= startOfDay(-%dd) and (assignee=currentUser() or worklogAuthor=currentUser())' % days, maxResults=100000) pub_issues = self._pub_helper.get_issues_by_sk_links( [sk_issue.permalink() for sk_issue in sk_issues]) exists_sk_links = [PubIssue(issue).sk_url for issue in pub_issues] new_issues = [ issue for issue in sk_issues if issue.permalink() not in exists_sk_links ] if not new_issues: click.echo('Nothing to do') return hidden_keys = config.AppConfig.read_hidden_keys() new_issues = [ issue for issue in new_issues if issue.key not in hidden_keys ] m_issues, s_issues, h_issues = io.edit_unsync_issues(new_issues) h_keys = [h_issue.key for h_issue in h_issues] config.AppConfig.write_hidden_keys(h_keys) for issue in m_issues: self.migrate(issue.key)
def do_many(self, started): """ Doing issues migration from started :param started: :return: """ today = dt.today().replace(tzinfo=started.tzinfo) days = int((today - started).days) + 1 sk_issues = self._sk_jira.search_issues( 'createdDate >= startOfDay(-%dd) and assignee=currentUser()' % days) unsync_issues = [] for sk_issue in sk_issues: pub_issues = self._pub_jira.search_issues( "'External issue ID' ~ '%s'" % sk_issue.permalink()) if pub_issues: continue unsync_issues.append(sk_issue) if not unsync_issues: click.echo('Nothing to do') return hidden_keys = config.AppConfig.read_hidden_keys() unsync_issues = [ issue for issue in unsync_issues if issue.key not in hidden_keys ] m_issues, s_issues, h_issues = io.edit_unsync_issues(unsync_issues) h_keys = [h_issue.key for h_issue in h_issues] config.AppConfig.write_hidden_keys(h_keys) for issue in m_issues: self.do(issue.key)