def main(): """The main function.""" # Get runtime args cli_args = parse_runtime_args() # Parse config file with open(cli_args.config, "r") as config_file: config_dict = yaml.safe_load(config_file) # Initialize Colorama init() # Create Jira client objects for source and destination servers source_jira = Jira( server=config_dict["source-jira"]["url"], basic_auth=( config_dict["source-jira"]["auth"]["username"], config_dict["source-jira"]["auth"]["password"], ), ) destination_jira = Jira( server=config_dict["destination-jira"]["url"], basic_auth=( config_dict["destination-jira"]["auth"]["username"], config_dict["destination-jira"]["auth"]["password"], ), ) # Migrate for project in config_dict["projects-to-migrate"]: print(Style.BRIGHT + "Migrating {}".format(project) + Style.RESET_ALL) # Get tickets try: tickets = get_project_tickets(source_jira, project) except JiraError as e: print(Style.BRIGHT + "Jira call failed! Here's the error:" + Style.RESET_ALL) print(e) sys.exit(1) # Push tickets print(Style.BRIGHT + "Pushing tickets to destination" + Style.RESET_ALL) for ticket in tqdm(tickets): try: push_ticket(destination_jira, ticket) except JiraError as e: print(Style.BRIGHT + "Jira call failed! Here's the error:" + Style.RESET_ALL) print(e) sys.exit(1)
def run_app(): if len(sys.argv) != 3: raise Exception('illegal arguments') start = sys.argv[1] end = sys.argv[2] logging.info(f"started for dates: {start} - {end}") clockify = Clokify() jira = Jira() entries = clockify.list_time_entries(start, end) logging.info(f"downloaded: {entries}") entries_by_date = merge_entries_by_date(entries) entries_by_date = merge_entries(entries, entries_by_date) for d in entries_by_date: date = d.date entries = d.entries for e in entries: issue = e.get_issue() description = e.get_description() logging.info(f"processing {date} - {issue} - {description}, {e.hours}:{e.minutes}") result = jira.add_entry(issue, e.get_time_in_seconds(), date, description) if result: for id in e.ids: clockify.mark_as_processed(id, issue, description, e.ids[id])
def make_conn(self, svr, user, pasw): '''Connects to Jira via basic authentication. Returns: object: The Jira connection. ''' return Jira({'server': svr}, basic_auth=(user, pasw))
def lambda_handler(event, context): github = GitHub(event) fix_version = github.get_fix_version() ticket_numbers = github.get_ticket_numbers() assignee = get_assignee(github) for ticket in ticket_numbers: jira = Jira(ticket) jira.update_status(assignee=assignee, fix_version=fix_version) move_ticket(jira, github) return ""
def get_data(self): jira = Jira(self.jira_api_url) jql = "project=%s and status in (%s) " + \ "and assignee!=null" jql = jql % (self.jira_project_key, self.jira_statuses) if self.jira_resolutions: jql += " resolutions in (%s)" % self.jira_resolutions fields = 'summary,description,assignee,created' raw_issues = jira.find_all(jql, fields, limit=int(config.general__ticket_limit)) data = [] for issue in raw_issues: fields = issue['fields'] document = Document(fields['summary'], fields['description'], fields['assignee']['name']) data.append(document) return data
def __init__(self, url, username, password): self.jira = Jira(url, username, password)
) driver.maximize_window() os.system('cls') # Obtém as datas automaticamente # Informa as datas manualmente: print('Dia (DD/MM): ') dia = str(input()) data = str('2020-' + str(dia)[3:5] + '-' + str(dia)[0:2]) p = Ponto(driver, str(dia)) p.abrirPagina() hrsTotal = p.calcularHorasTrabalhadas() if (p.validaPeriodo()): driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't') # Tempo para alocar no Ticket JS-1 (Minutos em outras atividades) print('Minutos em JS-1 (Shared): ') tempoJS1 = int(input()) # Tempo para alocar no Ticket JS-117 (Minutos em reuniões) print('Minutos em JS-117 (Reunioes): ') tempoJS117 = int(input()) # abre a aba do jira j = Jira(driver, str(data), p.obterPrimeiraEntrada(), hrsTotal, tempoJS1, tempoJS117) j.abrirPagina() j.alocarHorasHoje() else: print('Não foi encontrado o período desejado no Meu RH')