Allowing threads on GitHub PR comments.

TL;DR: A GitHub Action + GitHub App that transforms PR issue comments into file comments, allowing threads and the resolve conversation button. Also adding the option of creating PR Slack channels fully synced with PRs.

0:00
/0:16

Try it out making a comment on this PR!

The problem

https://github.com/orgs/community/discussions/5633

https://github.com/orgs/community/discussions/8469

For a long time, many GitHub users have been complaining that PR comments don’t allow threads. For some unclear reason, only code comments or file comments can be responded to in threads. This makes PR reviews difficult to follow, especially if there are different replies to different messages in different orders.

This, by the way, is solved by default in every other Git provider, such as GitLab (which we also integrate) or Bitbucket.

The only thing you can do with GitHub nowadays is quote the reply, a very poor "solution" that doesn't solve the problem at all, because following the different replies is still very difficult.

Before and After

Thanks to .github/workflows/pullpo.yml and the Pullpo app, when someone creates an issue comment on a GitHub PR (or even in its PR Slack channel), the Pullpo app will take that message and transform it into a file comment message referencing a newly created file called pr_${{ github.event.pull_request.number }}_threads.txt.

Before

image

After

image

Why a GitHub action is necessary and not just a GitHub app.

The GitHub action requires write access to your code, this way you can see exactly how this permission is being used. The Pullpo app is not open source, and this way we don't have to ask for any sensitive permission.

Is the new created file going to generate merge conflicts?

No, never. The GitHub Action in charge of setting up the 一pullpo一 directory, which allows threaded conversations, produces a distinct file for each new pull request. As the file created for your pull request has its own unique name and is not present in any other pull request, there's no chance of encountering a merge conflict due to Pullpo's threaded conversations workflow.

How does it work?

This GitHub Action, named "Pullpo PR Threads," runs whenever a pull request is opened. This action requires write permissions, that's why we make it fully available to you, so that you can see exactly what it does.

Here's what it does:

When a pull request is opened, it creates a special folder called 一pullpo一 if it doesn't already exist. We named it this way so that it always appears at the end of the files changed tab. Inside this folder, a simple text file is created to track discussions related to this specific pull request. Based on how it works, these files will never create merge conflicts.

Then when someone creates an issue comment on GitHub (or in a PR Slack channel), the Pullpo app is going to take that message and transform it into a file comment message referencing this newly created file.

Installation

1- Install Pullpo in your GitHub org or individual account.

First, you will need to install Pullpo in your GitHub account. Installing the Pullpo Slack integration is not necessary for issue threading, but it's recommended. Read more about the installation process here.

Get more info on the Slack integration here.

2- Add GitHub action (runs in 10s)

In every repo where you want to enable GitHub PR issue threads you need to add this 10s GitHub action.

3- (Optional) Enable PR Slack Channels with full bidirectionality.

To get the most out of Pullpo, enable full sync with PR Slack channels. After installing our Slack integration and synchronizing your devs, you can enable full-sync mode in your Pullpo settings.

That's it! Let us know what you think!

You can reach out to us at hello@pullpo.io :)