Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Danger] Do not mention people, suggest labels #18138

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 10 additions & 38 deletions bots/dangerfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,37 +61,29 @@ if (!includesReleaseNotes) {
const category = releaseNotesCaptureGroups[1].toLowerCase();

// Use Release Notes to Tag PRs appropriately
// if (category === 'ios' ){
// markdown('@facebook-github-bot label iOS');
// }
if (category === 'ios' || category === 'tvos') {
message('Suggested label: iOS');
}

// if (category === 'android' ){
// markdown('@facebook-github-bot label Android');
// }
}
if (category === 'android') {
message('Suggested label: Android');
}

// Tags PRs that have been submitted by a core contributor.
// TODO: Switch to using an actual MAINTAINERS file.
const taskforce = fs.readFileSync('./IssueCommands.txt', 'utf8').split('\n')[0].split(':')[1];
const isSubmittedByTaskforce = includes(taskforce, danger.github.pr.user.login);
// if (isSubmittedByTaskforce) {
// markdown('@facebook-github-bot label Core Team');
// }
if (category === 'cli') {
message('Suggested label: Tooling');
}
}

// Tags big PRs
var bigPRThreshold = 600;
if (danger.github.pr.additions + danger.github.pr.deletions > bigPRThreshold) {
const title = ':exclamation: Big PR';
const idea = `This PR is extremely unlikely to get reviewed because it touches ${danger.github.pr.additions + danger.github.pr.deletions} lines.`;
warn(`${title} - <i>${idea}</i>`);

// markdown('@facebook-github-bot large-pr');
} else if (danger.git.modified_files + danger.git.added_files + danger.git.deleted_files > bigPRThreshold) {
const title = ':exclamation: Big PR';
const idea = `This PR is extremely unlikely to get reviewed because it touches ${danger.git.modified_files + danger.git.added_files + danger.git.deleted_files} files.`;
warn(`${title} - <i>${idea}</i>`);

// markdown('@facebook-github-bot large-pr');
}

// Warns if the PR is opened against stable, as commits need to be cherry picked and tagged by a release maintainer.
Expand All @@ -107,23 +99,3 @@ if (!isMergeRefMaster && isMergeRefStable) {
const idea = 'The base branch for this PR is something other than `master`. [Are you sure you want to target something other than the `master` branch?](http://facebook.github.io/react-native/docs/contributing.html#pull-requests)';
fail(`${title} - <i>${idea}</i>`);
}

// People can add themselves to CODEOWNERS in order to be automatically added as reviewers when a file matching a glob pattern is modified. The following will have the bot add a mention in that case.
const codeowners = fs.readFileSync('../.github/CODEOWNERS', 'utf8').split('\n');
let mentions = [];
codeowners.forEach((codeowner) => {
const pattern = codeowner.split(' ')[0];
const owners = codeowner.substring(pattern.length).trim().split(' ');

const modifiedFileHasOwner = path => minimatch(path, pattern);
const modifiesOwnedCode = danger.git.modified_files.filter(modifiedFileHasOwner).length > 0;

if (modifiesOwnedCode) {
mentions = mentions.concat(owners);
}
});
const isOwnedCodeModified = mentions.length > 0;
if (isOwnedCodeModified) {
const uniqueMentions = new Set(mentions);
markdown('Attention: ' + [...uniqueMentions].join(', '));
}