예제 #1
0
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)
예제 #2
0
파일: app.py 프로젝트: varrt/clockifyToJira
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])
예제 #3
0
파일: ncfu.py 프로젝트: e-graveyard/ncfu
    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))
예제 #4
0
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 ""
예제 #5
0
    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
예제 #6
0
	def __init__(self, url, username, password):
		self.jira = Jira(url, username, password)
예제 #7
0
)
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')