Example #1
0
def add_worklog(tce):
    def log():
        started = toggl_strptime(tce.entry['start'])
        return jira.add_worklog(
            tce.ticket,
            timeSpentSeconds=tce.entry['duration'],
            comment=tce.comment,
            started=started,
        )

    try:
        worklog = log()
    except JIRAError as e:
        ticket = jira.issue(tce.ticket)

        status_id = ticket.fields.status.id
        if status_id != COMPLETE:
            print bcolors.fail('Invalid status %s' % status_id)
            raise

        reclose_transition = get_transition_id(status_id)

        jira.transition_issue(ticket, reopen_transition(ticket))
        worklog = log()
        jira.transition_issue(ticket, reclose_transition(ticket))
    return worklog
Example #2
0
File: ji.py Project: pnw/jiggl
def add_worklog(tce):
    def log():
        started = toggl_strptime(tce.entry['start'])
        return jira.add_worklog(
            tce.ticket,
            timeSpentSeconds=tce.entry['duration'],
            comment=tce.comment,
            started=started,
        )

    try:
        worklog = log()
    except JIRAError as e:
        ticket = jira.issue(tce.ticket)

        status_id = ticket.fields.status.id
        if status_id != COMPLETE:
            print bcolors.fail('Invalid status %s' % status_id)
            raise

        reclose_transition = get_transition_id(status_id)

        jira.transition_issue(ticket, reopen_transition(ticket))
        worklog = log()
        jira.transition_issue(ticket, reclose_transition(ticket))
    return worklog
Example #3
0
def ensure_open_ticket(ticket_id):
    """
    Allows us to reopen a ticket once, and log against it a bunch of times.
    :param ticket_id:
    :return:
    """
    # TODO: This gives race conditions if someone updates a ticket while we are logging time.
    ticket = jira.issue(ticket_id)
    status_id = ticket.fields.status.id

    if status_id == COMPLETE:
        reclose_transition = get_transition_id(status_id)
        jira.transition_issue(ticket, reopen_transition(ticket))
        print bcolors.warning('Reopening ticket')
        try:
            yield
        finally:
            print bcolors.warning('Reclosing ticket')
            jira.transition_issue(ticket, reclose_transition(ticket))
    else:
        # ticket is in a mutable state on jira, so we can just log away
        yield
Example #4
0
File: ji.py Project: pnw/jiggl
def ensure_open_ticket(ticket_id):
    """
    Allows us to reopen a ticket once, and log against it a bunch of times.
    :param ticket_id:
    :return:
    """
    # TODO: This gives race conditions if someone updates a ticket while we are logging time.
    ticket = jira.issue(ticket_id)
    status_id = ticket.fields.status.id

    if status_id == COMPLETE:
        reclose_transition = get_transition_id(status_id)
        jira.transition_issue(ticket, reopen_transition(ticket))
        print bcolors.warning('Reopening ticket')
        try:
            yield
        finally:
            print bcolors.warning('Reclosing ticket')
            jira.transition_issue(ticket, reclose_transition(ticket))
    else:
        # ticket is in a mutable state on jira, so we can just log away
        yield