Example #1
0
def list_pr_policies(pull_request_id,
                     team_instance=None,
                     detect=None,
                     top=None,
                     skip=None):
    """List policies of a pull request.
    :param pull_request_id: ID of the pull request.
    :type pull_request_id: int
    :param team_instance: VSTS account or TFS collection URL. Example: https://myaccount.visualstudio.com
    :type team_instance: str
    :param detect: Automatically detect instance. Default is "on".
    :type detect: str
    :param top: Maximum number of policies to list.
    :type top: int
    :param skip: Number of policies to skip.
    :type skip: int
    :rtype: list of :class:`PolicyEvaluationRecord <policy.v4_0.models.PolicyEvaluationRecord>`
    """
    team_instance = resolve_instance(detect=detect,
                                     team_instance=team_instance)
    git_client = get_git_client(team_instance)
    pr = git_client.get_pull_request_by_id(pull_request_id)
    policy_client = get_policy_client(team_instance)
    artifact_id = "vstfs:///CodeReview/CodeReviewId/{project_id}/{pull_request_id}".format(
        project_id=pr.repository.project.id, pull_request_id=pull_request_id)
    return policy_client.get_policy_evaluations(
        project=pr.repository.project.id,
        artifact_id=artifact_id,
        top=top,
        skip=skip)
Example #2
0
def queue_pr_policy(pull_request_id,
                    evaluation_id,
                    team_instance=None,
                    detect=None):
    """Queue an evaluation of a policy for a pull request.
    :param pull_request_id: ID of the pull request.
    :type pull_request_id: int
    :param evaluation_id: ID of the policy evaluation to queue.
    :type evaluation_id: str
    :param team_instance: VSTS account or TFS collection URL. Example: https://myaccount.visualstudio.com
    :type team_instance: str
    :param detect: Automatically detect instance. Default is "on".
    :type detect: str
    :rtype: :class:`PolicyEvaluationRecord <policy.v4_0.models.PolicyEvaluationRecord>`
    """
    try:
        team_instance = resolve_instance(detect=detect,
                                         team_instance=team_instance)
        git_client = get_git_client(team_instance)
        pr = git_client.get_pull_request_by_id(pull_request_id)
        policy_client = get_policy_client(team_instance)
        return policy_client.requeue_policy_evaluation(
            project=pr.repository.project.id, evaluation_id=evaluation_id)
    except Exception as ex:
        handle_command_exception(ex)