Skip to content

Instantly share code, notes, and snippets.

@aalexeev239
Last active May 25, 2016 12:19
Show Gist options
  • Save aalexeev239/0be1e08f168f914b7615 to your computer and use it in GitHub Desktop.
Save aalexeev239/0be1e08f168f914b7615 to your computer and use it in GitHub Desktop.
showReaction

Cистема общения в пул реквестах:

  1. Комментируем построчно в files changed, общаемся в conversation https://monosnap.com/file/fqP1MB5ZINTuFvfNQ9Ai0nNqOPyqwj

  2. Ученик, пофиксив правку, может поставить реакцию, например 👍.Так он сигнулизирует, что можно проверять https://monosnap.com/file/qUlpAYqHVQdRmengC3Jm43d9x1agzk

  3. Когда вновь просматриваем ПР, открываем старые комментарии. Если все ок, ставим под ним реакцию 🎉 (договоритесь с учеником, что эту реакцию ставит только наставник). https://monosnap.com/file/aOvqYiyY6w1GNXEYPYwBmY4ggWXJyi

  4. Если не ок, то делаем через "Add a line note" новый комментарий. И так далее, покаправка не будет зачтена, через реакцию 🎉 https://monosnap.com/file/43DK2sU131mIS5daWq9ZAvW1OFa9t0

  5. Число правок обычно идет на десятки. Гит при смене кода скрывает комментарии, и каждый раз заново раскрывать каждый коммент — не комильфо. Поэтому я написал скрипт, который пробегается по всем закрытым комментариям и показывает непринятые ( где в последнем комментарии не стоит значок 🎉 ) Все, что нужно — оформить скрипт как букмарклет. https://monosnap.com/file/l2b2l9IlzdUZLwYmv7EJrDhsrl9aa2

(function showReaction(username, reaction){
var elts = document.querySelectorAll('.js-details-container.outdated-diff-comment-container');
var total = [];
for (var i = elts.length - 1; i>=0; i--) {
var elt = elts[i];
var table = elt.querySelector('.js-inline-comments-container');
if (!table || elt.classList.contains('open')) {
continue;
}
var lastComment = table.children[table.children.length - 1];
/* TODO: improve selection. This fails if several people reacted */
var btns = lastComment.querySelectorAll('.reaction-summary-item[aria-label="'+ username +'"]');
var flag = true;
for (var j = btns.length - 1; j>=0; j--) {
var labels = btns[j].value.split(' ');
if (labels.indexOf(reaction) >= 0) {
flag = false;
}
}
if (!flag) {
continue;
}
total.push(elt);
var hdr = elt.querySelector('.discussion-item-header');
var toggle = hdr.querySelector('.discussion-item-toggle-closed');
hdr.style.backgroundColor = '#DD3535';
toggle.click();
}
if (total.length) {
alert(total.length+' comments were opened');
} else {
alert('nothing to open');
}
})('aalexeev239','tada'); /* your GitHub username && favorite reaction */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment