Skip to main content

check_pr_for

Function check_pr_for 

Source
pub fn check_pr_for(
    rules: Rules,
    pr: &PullRequest,
    issue: Option<&Issue>,
) -> Vec<Error>
Expand description

Checks a pull request and its issue with the rules rules (check_pr with Rules::All).

use hygiene::{Issue, PullRequest, Rules};

// A title with `(#12)`, a keyword and no milestone: only `Rules::All` finds them.
let pr = PullRequest::new("Fix it (#12)", "Closes #12\n\nFixes #13\n\nIssue: #12\n", None);
let issue = Issue::new(12, "OPEN", None);
let rules = |set| -> Vec<_> {
    hygiene::check_pr_for(set, &pr, Some(&issue)).iter().map(|e| e.rule).collect()
};
assert_eq!(rules(Rules::All), ["keyword", "title", "milestone-trailer", "milestone", "milestone"]);
assert!(rules(Rules::Read).is_empty());

// What riff reads still holds.
let pr = PullRequest::new("Fix it", "Closes #12\n\nIssue: #9\n", None);
let found: Vec<_> = hygiene::check_pr_for(Rules::Read, &pr, None).iter().map(|e| e.rule).collect();
assert_eq!(found, ["issue-trailer"]);