コード例 #1
0
ファイル: services.py プロジェクト: sjlehtin/git-lab
class ReferService(object):
    u"""マージリクエスト参照サービス"""

    def __init__(self):
        from git_lab.apis.mergerequest.repositories import MergeRequestRepository

        self.repo = MergeRequestRepository()

    def show_merge_request(self, req_id):
        u"""指定IDのマージリクエストを表示します

        @param req_id : マージリクエストのID
        @type  req_id : int
        """
        assert isinstance(req_id, int)

        mr = self.repo.get_request(req_id)
        if mr is not None:
            merge_request = u"""
[ {state} ] #{iid} {title}
--------------------------------------------------------------------------------
merge request id  : {id}

author            : {author}
assignee          : {assignee}
opened at         : {opened_at}

upvotes/downbotes : +{up} / -{down}

[ merge to ] : {target} <----- [ merge from ] {source}
--------------------------------------------------------------------------------""".format(
                state=mr.get_state(),
                iid=mr.get_iid(),
                title=mr.get_title(),
                id=mr.get_id(),
                author=mr.get_author().get_name(),
                assignee=mr.get_assignee().get_name(),
                opened_at=mr.get_author().get_created_at(),
                up=mr.get_upvotes(),
                down=mr.get_downvotes(),
                target=mr.get_target_branch(),
                source=mr.get_source_branch(),
            )

            print merge_request

            notes = self.repo.get_notes(req_id)
            for note in notes:
                n = u"""
    {author} posted at {posted_at}
    ----------------------------------------------------------------------------
    {body}""".format(
                    author=note.get_author().get_name(), posted_at=note.get_created_at(), body=note.get_body()
                )

                print n

    def list_merge_request(self, page, count):
        u"""指定条件でマージリクエストの一覧を取得して表示します

        @param page : 表示するページ番号
        @type  page : int

        @param page : ページあたりに表示する件数
        @type  page : int
        """
        assert isinstance(page, int)
        assert isinstance(count, int)

        mrs = self.repo.get_requests(page, count)
        if len(mrs) != 0:
            header = u"""
 id       mid      state    author     title
+--------+--------+--------+----------+----------------------------------------+"""
            print header

        for mr in mrs:

            m = u" #{id: <7} #{mid: <7} {state: ^8} {author: ^10} {title: <40}".format(
                id=mr.get_iid(),
                mid=mr.get_id(),
                state=mr.get_state(),
                author=mr.get_author().get_name(),
                title=mr.get_title(),
            )

            print m
コード例 #2
0
class ReferService(object):
    u"""マージリクエスト参照サービス"""

    def __init__(self):
        from git_lab.apis.mergerequest.repositories import MergeRequestRepository
        self.repo = MergeRequestRepository()

    def show_merge_request(self, req_id):
        u"""指定IDのマージリクエストを表示します

        @param req_id : マージリクエストのID
        @type  req_id : int
        """
        assert isinstance(req_id, int)

        mr = self.repo.get_request(req_id)
        if mr is not None:
            merge_request = u"""
[ {state} ] #{iid} {title}
--------------------------------------------------------------------------------
merge request id  : {id}

author            : {author}
assignee          : {assignee}
opened at         : {opened_at}

upvotes/downbotes : +{up} / -{down}

[ merge to ] : {target} <----- [ merge from ] {source}
--------------------------------------------------------------------------------""".format(
                state=mr.get_state(),
                iid=mr.get_iid(),
                title=mr.get_title(),
                id=mr.get_id(),
                author=mr.get_author().get_name(),
                assignee=mr.get_assignee().get_name(),
                opened_at=mr.get_author().get_created_at(),
                up=mr.get_upvotes(),
                down=mr.get_downvotes(),
                target=mr.get_target_branch(),
                source=mr.get_source_branch(),
            )

            print merge_request

            notes = self.repo.get_notes(req_id)
            for note in notes:
                n = u"""
    {author} posted at {posted_at}
    ----------------------------------------------------------------------------
    {body}""".format(
                    author=note.get_author().get_name(),
                    posted_at=note.get_created_at(),
                    body=note.get_body()
                )

                print n

    def list_merge_request(self, page, count):
        u"""指定条件でマージリクエストの一覧を取得して表示します

        @param page : 表示するページ番号
        @type  page : int

        @param page : ページあたりに表示する件数
        @type  page : int
        """
        assert isinstance(page, int)
        assert isinstance(count, int)

        mrs = self.repo.get_requests(page, count)
        if len(mrs) != 0:
            header = u"""
 id       mid      state    author     title
+--------+--------+--------+----------+----------------------------------------+"""
            print header

        for mr in mrs:

            m = u" #{id: <7} #{mid: <7} {state: ^8} {author: ^10} {title: <40}".format(
                id=mr.get_iid(),
                mid=mr.get_id(),
                state=mr.get_state(),
                author=mr.get_author().get_name(),
                title=mr.get_title(),
            )

            print m