Run this in the console:
document.querySelectorAll('span.Details-content--closed').forEach((e)=>{e.click()})
From the creator of: unzip.dev 🚀
Run this in the console:
document.querySelectorAll('span.Details-content--closed').forEach((e)=>{e.click()})
From the creator of: unzip.dev 🚀
Original worked for me, but the other 2 didn't.
Great stuff, very helpful. However, when the comments get too plenty, Github hides some of them. Try this before:
document.querySelector('button.ajax-pagination-btn').click()
You may need to run that multiple times until Github shows all. Can try to automate further, if anyone is interested?
None of those above worked for me for some reason. Try this one, which works for me:
document.querySelectorAll('.js-resolvable-timeline-thread-container').forEach(e => { e.setAttribute('open', '') })
Thanks a lot guys.
In different pages different codes worked for me:
in files changed tab, this worked:
document.querySelectorAll('.js-resolvable-thread-contents').forEach((e)=>{e.classList.remove("d-none")})
in conversation tab, this worked:
document.querySelectorAll('.js-resolvable-timeline-thread-container').forEach(e => { e.setAttribute('open', '') });
Anyways, it would be great if @github added a button or an option for this!
Update 24 July 2024: The best way to expand all comments at once is to use the GitHub's official Option+click on "Show resolved". This trick was brought up by @amonsosanz in this comment.
Before Option+click existed, we used to create a Chrome or Edge bookmark with the following javascript snippet. It would load the hidden items on large PRs and then unfold the resolved comments (source):
javascript:function loadAllCommentsAndShowResolved(){let e=!1;Array.from(document.querySelectorAll("button, .btn-link.Details-content--closed")).forEach(o=>{o.classList.contains("ajax-pagination-btn")?o.hasAttribute("disabled")||"Load more…"!==o.innerText?o.hasAttribute("disabled")&&"Loading…"===o.innerText?(console.log("waiting",o),e=!0):console.log("unrecognized 'Load more' button",o):(console.log("found",o),e=!0,o.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0}))):o.classList.contains("Details-content--closed")&&"Show resolved"===o.innerText&&o.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0}))}),e?setTimeout(loadAllCommentsAndShowResolved,200):console.log("all comments loaded")}loadAllCommentsAndShowResolved();
A simpler version that doesn't load the hidden items on large PRs:
javascript:document.querySelectorAll('.js-resolvable-timeline-thread-container').forEach(e => { e.setAttribute('open', '') })()
All of the above will not work when we have too many conversations.
For me, there was a PR having more than 120 comments, so first I had to get all the hidden items loaded, then expension of resolved comments needs to be done. For the same, I have written below script:
let isActiveExpension = false;
let interval = setInterval(()=>{
isActiveExpension = true;
const elements = document.querySelectorAll("button[type=submit].ajax-pagination-btn"); if(elements.length === 0){
console.log("All sections are expanded");
clearInterval(interval);
isActiveExpension = false;
expandSubSections();
setTimeout(expandSubSections, 10000)
}
else{
console.log("Expanding sections");
elements[0].click();
expandSubSections();
}
},10000);
function expandSubSections()
{
console.log("Expanding sub-sections");
document.querySelectorAll(".btn-link.text-gray.f6.Details-content--closed").forEach((element)=>{element.click();});
}
However, above too does not works as it seems like github is using some optimizations to load limited HTML at a time to keep page light.
So, to resolve this issue, we may have to add some scroll script too to above one, which I'll do after some time.
Note: This script worked on my company's enterprise github, I haven't tried the same on public git.
to Unfold all Resolved conversation I use below and it works fine:
javascript:document.querySelectorAll('.js-resolvable-timeline-thread-container').forEach(e => { e.setAttribute('open', '') })()
What code should I use to Fold them again ?
thanks
What code should I use to Fold them again ? thanks
just refresh?
You can use Alt + Click
on one comment to fold/unfold them all.
^ What @amonsosanz said worked for me. On Mac, that would be option
+ click
Thanks, @amonsosanz! 🎉
Whoa, game changer. On Mac Chrome, Option + Click on one comment's "Show resolved" link shows all for me. Thanks @amonsosanz!
Newer code: