class AutoSprinter:
    def __init__(self):
        self.__server = os.getenv("SERVER")
        self.__username = os.getenv("JIRA_USER")
        self.__password = os.getenv("JIRA_PASS")
        self._options = None
        self._auth = None
        self._jira = None
        self._board_id = os.getenv("JIRA_BOARD_ID")
        self._sprints = []
        self.init_jira()

    def init_jira(self):
        if not self.__server:
            self.__server = raw_input("Enter JIRA server url: \n")
        if not self.__username or not self.__password:
            self.__username = raw_input("Enter JIRA username: "******"server": self.__server}
        self._auth = (self.__username, self.__password)
        self._jira = JIRA(self._options, basic_auth=self._auth)
        if not self._board_id:
            pprint.pprint(self._jira.boards())
            self._board_id = raw_input("Enter Board Id: ")

    def _create_sprint(self):
        current_date = datetime.datetime.now()
        end_date = (current_date + datetime.timedelta(days=7))
        new_sprint_name = current_date.strftime("%d %B, %Y")
        start_date = current_date.strftime("%d/%b/%y %I:%M %p")
        end_date = end_date.strftime("%d/%b/%y %I:%M %p")
        return self._jira.create_sprint(new_sprint_name,
                                        self._board_id,
                                        startDate=start_date,
                                        endDate=end_date)

    def sprints_update(self):
        self._sprints = self._jira.sprints(self._board_id)
        for sprint in self._sprints:
            if sprint.state == 'ACTIVE':
                future_sprint = self._create_sprint()
예제 #2
0
파일: jira-cli.py 프로젝트: nuada/jira-cli
    return unicodedata.normalize('NFKD', u).encode('ascii', 'ignore')


if __name__ == '__main__':
    config = json.load(open('config.json'))
    options = dict(server=config['server'])
    auth = dict(access_token=config['access_token'],
                access_token_secret=config['access_token_secret'],
                consumer_key=config['consumer_key'],
                key_cert=read('private_key.pem'))

    if len(sys.argv) == 1:
        print(USAGE)
        exit(1)

    jira = JIRA(options=options, oauth=auth)
    if sys.argv[1] == 'boards':
        for board in jira.boards():
            print('{:<5} {}'.format(board.id, board.name))
    elif sys.argv[1] == 'sprints':
        board_id = int(sys.argv[2])
        for sprint in jira.sprints(board_id, extended=True):
            dates = ''
            if sprint.state != 'future':
                dates = '{:%Y-%m-%d/%H:%M} -> {:%Y-%m-%d/%H:%M}'.format(parse(sprint.startDate),
                                                                        parse(sprint.endDate))
            print('{} {:36} {}'.format(sprint.state, dates, sprint.name))
            for issue in jira.search_issues('Sprint={} ORDER BY key'.format(sprint.id)):
                print('   * {:6} {:11} {}'.format(issue.key, issue.fields.status, normalize(issue.fields.summary)))
            print('')
예제 #3
0
# issues = jira.search_issues('assignee='+username)
# print(issues)

ticketName = str(input("Enter the ticket name: "))
issue = jira.issue(ticketName)

while executionFlag:

    command = str(
        input(
            "Enter option for following task: \n 1. Get a story into current sprint \n 2. Move Story \n 3. Update Story Points \n 4. Read Story's Description & comments \n 5. Add work log to ticket \n 6. Assign Ticket To Me \n 7. Create sub-task of this ticket \n"
        ))

    if command == "1":
        boards = jira.boards()
        # print('boards ', boards)
        sprints = jira.sprints(board_id)
        # for sprint in sprints:
        #     print('%s: %s ' % (sprint.id, sprint.name))
        sprintId = int(sprints[-1].id)
        issueId = str(issue.id)
        issueIdList = list()
        issueIdList.append(issueId)
        # print(issue.id)
        # print("issue key ", issueIdList)
        jira.assign_issue(issue.id, username)
        jira.add_issues_to_sprint(sprintId, issueIdList)
        storyPoints = int(input("Enter story points: "))
        issue.update(fields={'customfield_10021':
                             storyPoints})  # --> Story Points