コード例 #1
0
ファイル: createreview.py プロジェクト: ctesting/critic
    def process(self, db, user, repository_id, commit_ids, branch, summary,
                reviewfilters, recipientfilters, applyfilters, applyparentfilters,
                description=None, frombranch=None, trackedbranch=None):
        if not branch.startswith("r/"):
            raise OperationFailure(code="invalidbranch",
                                   title="Invalid review branch name",
                                   message="'%s' is not a valid review branch name; it must have a \"r/\" prefix." % branch)

        repository = gitutils.Repository.fromId(db, repository_id)
        commits = [gitutils.Commit.fromId(db, repository, commit_id) for commit_id in commit_ids]
        commitset = CommitSet(commits)

        reviewfilters = parseReviewFilters(db, reviewfilters)
        recipientfilters = parseRecipientFilters(db, recipientfilters)

        review = createReview(db, user, repository, commits, branch, summary, description,
                              from_branch_name=frombranch,
                              reviewfilters=reviewfilters,
                              recipientfilters=recipientfilters,
                              applyfilters=applyfilters,
                              applyparentfilters=applyparentfilters)

        extensions_output = StringIO()
        kwargs = {}

        if configuration.extensions.ENABLED:
            if executeProcessCommits(db, user, review, commits, None, commitset.getHeads().pop(), extensions_output):
                kwargs["extensions_output"] = extensions_output.getvalue().lstrip()

        if trackedbranch:
            cursor = db.cursor()
            cursor.execute("""INSERT INTO trackedbranches (repository, local_name, remote, remote_name, forced, delay)
                                   VALUES (%s, %s, %s, %s, false, '1 hour')
                                RETURNING id""",
                           (repository_id, branch, trackedbranch["remote"], trackedbranch["name"]))

            trackedbranch_id = cursor.fetchone()[0]

            cursor.execute("""INSERT INTO trackedbranchusers (branch, uid)
                                   VALUES (%s, %s)""",
                           (trackedbranch_id, user.id))

            db.commit()

            pid = int(open(configuration.services.BRANCHTRACKER["pidfile_path"]).read().strip())
            os.kill(pid, signal.SIGHUP)

        return OperationResult(review_id=review.id, **kwargs)
コード例 #2
0
ファイル: createreview.py プロジェクト: ctesting/critic
    def process(req, db, user, repository_id, commit_ids, reviewfilters, applyfilters, applyparentfilters):
        reviewfilters = parseReviewFilters(db, reviewfilters)

        repository = gitutils.Repository.fromId(db, repository_id)
        commits = [gitutils.Commit.fromId(db, repository, commit_id) for commit_id in commit_ids]

        all_reviewers, all_watchers = getReviewersAndWatchers(db, repository, commits,
                                                              reviewfilters=reviewfilters,
                                                              applyfilters=applyfilters,
                                                              applyparentfilters=applyparentfilters)
        document = htmlutils.Document(req)

        generateReviewersAndWatchersTable(db, repository, document,
                                          all_reviewers, all_watchers,
                                          applyfilters=applyfilters,
                                          applyparentfilters=applyparentfilters)

        return OperationResult(html=document.render(plain=True))