Пример #1
0
    def check_merge(self, request):
        """ return merge guide widget """
        ticket = self.ticket
        project = self.project
        pullreq = self.pullreq
        auto_mergable = self.pullreq.is_auto_mergable()
        can_fastforward = self.pullreq.can_fastforward()
        user = request.user

        # FIXME menghan: 如果latest_commit_status不是针对最后一个commit,那么结果有误导性
        latest_commit_status = None
        commits = pullreq.commits
        for commit in commits:
            cs = CommitStatuses(pullreq.from_proj.id, commit.sha)
            latest_commit_status = cs.latest()
            if latest_commit_status:
                break

        has_perm = project.has_push_perm(user.name) if user else False
        show_merge_btn = has_perm and not pullreq.is_up_to_date()
        return st('/pull/merge_guide.html',
                  auto_mergable=auto_mergable,
                  can_fastforward=can_fastforward,
                  latest_commit_status=latest_commit_status,
                  show_merge_btn=show_merge_btn,
                  project=project,
                  pullreq=pullreq,
                  user=user,
                  ticket=ticket,
                  )
Пример #2
0
    def check_merge(self, request):
        """ return merge guide widget """
        ticket = self.ticket
        project = self.project
        pullreq = self.pullreq
        auto_mergable = self.pullreq.is_auto_mergable()
        can_fastforward = self.pullreq.can_fastforward()
        user = request.user

        # FIXME menghan: 如果latest_commit_status不是针对最后一个commit,那么结果有误导性
        latest_commit_status = None
        commits = pullreq.commits
        for commit in commits:
            cs = CommitStatuses(pullreq.from_proj.id, commit.sha)
            latest_commit_status = cs.latest()
            if latest_commit_status:
                break

        has_perm = project.has_push_perm(user.name) if user else False
        show_merge_btn = has_perm and not pullreq.is_up_to_date()
        return st(
            '/pull/merge_guide.html',
            auto_mergable=auto_mergable,
            can_fastforward=can_fastforward,
            latest_commit_status=latest_commit_status,
            show_merge_btn=show_merge_btn,
            project=project,
            pullreq=pullreq,
            user=user,
            ticket=ticket,
        )
Пример #3
0
 def _add_status(self, request, sha):
     cs = CommitStatuses(self.project.id, sha)
     state = request.get_form_var('state')
     target_url = request.get_form_var('target_url')
     description = request.get_form_var('description')
     s = cs.add(state, target_url, description, 'qaci')
     self._push_qaci_noti(sha, state, target_url)
     request.response.set_status(201)
     return json.dumps(s.as_dict())
Пример #4
0
 def _add_status(self, request, sha):
     cs = CommitStatuses(self.project.id, sha)
     state = request.get_form_var('state')
     target_url = request.get_form_var('target_url')
     description = request.get_form_var('description')
     s = cs.add(state, target_url, description, 'qaci')
     self._push_qaci_noti(sha, state, target_url)
     request.response.set_status(201)
     return json.dumps(s.as_dict())
Пример #5
0
    def _q_lookup(self, request, sha):
        if request.method == 'POST':
            return self._add_status(request, sha)

        cs = CommitStatuses(self.project.id, sha)
        if re.match(r'^\d+$', sha):
            # using id got one
            s = cs.get(sha)
            if s:
                return json.dumps(s.as_dict())
            else:
                raise TraversalError()

        else:
            statuses = cs.all()
            statuses = [s.as_dict() for s in statuses]
            return json.dumps(statuses)
Пример #6
0
    def _q_lookup(self, request, sha):
        if request.method == 'POST':
            return self._add_status(request, sha)

        cs = CommitStatuses(self.project.id, sha)
        if re.match(r'^\d+$', sha):
            # using id got one
            s = cs.get(sha)
            if s:
                return json.dumps(s.as_dict())
            else:
                raise TraversalError()

        else:
            statuses = cs.all()
            statuses = [s.as_dict() for s in statuses]
            return json.dumps(statuses)