Skip to content

Instantly share code, notes, and snippets.

@roger-mo-gusto
Last active May 12, 2022 18:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save roger-mo-gusto/1d48772eb63dcc4cc08366fad6245dbd to your computer and use it in GitHub Desktop.
Save roger-mo-gusto/1d48772eb63dcc4cc08366fad6245dbd to your computer and use it in GitHub Desktop.
PR Reviewers
Create bookmark and drop this in the URL field
javascript:(function(){let e=["kevinhyunilkim","rhkwong","julieqdchen-gusto","t3ly","bunnymatic","yingyingchoi","lizard381"],t;function l(){if(0<e.length){var i=e.shift();document.getElementById("review-filter-field").value=i,document.getElementById("review-filter-field").dispatchEvent(new Event("focus"));let n=0;const s=function(){let e=document.querySelectorAll(".filterable-active .select-menu-item"),t=null;e.forEach(function(e){-1!==e.textContent.indexOf(i)&&(t=e)}),t?(t.click(),setTimeout(l,200)):8<n?setTimeout(l,200):(n++,setTimeout(s,500))};s()}else document.querySelectorAll(".sidebar-assignee.js-discussion-sidebar-item summary")[0].click(),t.parentNode.removeChild(t)}function n(){const t=function(){var e=document.querySelectorAll(".select-menu-list .select-menu-item").length;null==document.querySelector(".js-discussion-sidebar-menu .select-menu-header").offsetParent&&document.querySelectorAll(".sidebar-assignee.js-discussion-sidebar-item summary")[0].click(),50<e?l():setTimeout(t,1e3)};setTimeout(t,1e3),document.querySelectorAll(".sidebar-assignee.js-discussion-sidebar-item summary")[0].click()}!function(){const e=document.createElement("DIV");t=document.createElement("BUTTON"),t.id="pr_reviewers_ext_add_reviewers",t.innerText="Add Reviewers",t.classList.add("btn","btn-small","btn-block"),e.appendChild(t),document.getElementById("partial-discussion-sidebar").prepend(e),console.log("creating button"),t.addEventListener("click",n)}()})();
Non-minified code below:
(function () {
let REVIEWERS = [
'kevinhyunilkim',
'rhkwong',
'yingyingchoi',
't3ly',
'bunnymatic',
'julieqdchen-gusto',
'Lizard381',
];
let addReviewersBtn;
function addReviewer() {
if (REVIEWERS.length > 0) {
const reviewer = REVIEWERS.shift();
document.getElementById('review-filter-field').value = reviewer;
document.getElementById('review-filter-field').dispatchEvent(new Event('focus'));
let waitCount = 0;
const selectItem = function() {
let menuItems = document.querySelectorAll('.filterable-active .select-menu-item');
let reviewerMenuItem = null;
menuItems.forEach(function(elem) {
if (elem.textContent.indexOf(reviewer) !== -1) {
reviewerMenuItem = elem;
}
});
if (reviewerMenuItem) {
reviewerMenuItem.click();
setTimeout(addReviewer, 200);
} else {
if (waitCount > 8) {
setTimeout(addReviewer, 200);
} else {
waitCount++;
setTimeout(selectItem, 500);
}
}
}
selectItem();
} else {
document.querySelectorAll('.sidebar-assignee.js-discussion-sidebar-item summary')[0].click()
addReviewersBtn.parentNode.removeChild(addReviewersBtn);
}
}
function startAddingReviewers() {
const countMenuItems = function() {
const menuItemCount = document.querySelectorAll('.select-menu-list .select-menu-item').length;
if (document.querySelector('.js-discussion-sidebar-menu .select-menu-header').offsetParent == null) {
document.querySelectorAll('.sidebar-assignee.js-discussion-sidebar-item summary')[0].click();
}
if (menuItemCount > 50) {
addReviewer();
} else {
setTimeout(countMenuItems, 1000);
}
}
setTimeout(countMenuItems, 1000);
document.querySelectorAll('.sidebar-assignee.js-discussion-sidebar-item summary')[0].click();
}
function createButton() {
const sidebarItem = document.createElement('DIV');
addReviewersBtn = document.createElement('BUTTON');
addReviewersBtn.id = 'pr_reviewers_ext_add_reviewers';
addReviewersBtn.innerText = 'Add Reviewers';
addReviewersBtn.classList.add('btn', 'btn-small', 'btn-block');
sidebarItem.appendChild(addReviewersBtn);
document.getElementById('partial-discussion-sidebar').prepend(sidebarItem);
console.log('creating button');
addReviewersBtn.addEventListener('click', startAddingReviewers);
}
createButton();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment