public LabelSuggestion PredictLabel(Issue issue, string[] filePaths = null) { var userMentions = issue.Body != null?_regex.Matches(issue.Body).Select(x => x.Value).ToArray() : new string[0]; List <LabelAreaScore> labelPredictions; if (filePaths == null) { var aspnetIssue = new GitHubIssue { ID = issue.Number, Title = issue.Title, Description = issue.Body, IsPR = 0, Author = issue.User.Login, UserMentions = string.Join(' ', userMentions), NumMentions = userMentions.Length, }; var prediction = _predictionEngine.Predict(aspnetIssue); labelPredictions = GetBestThreePredictions(prediction, forPrs: false); } else { var segmentedDiff = _diffHelper.SegmentDiff(filePaths); var aspnetIssue = new GitHubPullRequest { ID = issue.Number, Title = issue.Title, Description = issue.Body, IsPR = 1, Author = issue.User.Login, UserMentions = string.Join(' ', userMentions), NumMentions = userMentions.Length, FileCount = filePaths.Length, Files = string.Join(' ', segmentedDiff.FileDiffs), Filenames = string.Join(' ', segmentedDiff.Filenames), FileExtensions = string.Join(' ', segmentedDiff.Extensions), FolderNames = _diffHelper.FlattenWithWhitespace(segmentedDiff.FolderNames), Folders = _diffHelper.FlattenWithWhitespace(segmentedDiff.Folders) }; var prediction = _prPredictionEngine.Predict(aspnetIssue); labelPredictions = GetBestThreePredictions(prediction, forPrs: true); } return(new LabelSuggestion { LabelScores = labelPredictions, }); }
public LabelSuggestion PredictLabel(Issue issue) { var aspnetIssue = new GitHubIssue { ID = issue.Number.ToString(), Title = issue.Title, Description = issue.Body }; var prediction = _predictionEngine.Predict(aspnetIssue); var labelPredictions = GetBestThreePredictions(prediction); return(new LabelSuggestion { LabelScores = labelPredictions, }); }