This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

PR Focus Documentation

PR Focus is a macOS app designed to make it easy for you to stay on top of PRs that are important to your work.

If you work in multiple repositories, and want a single place to keep track of PR progress, PR Focus may be a good tool for you.

Find out more about how it works, how to get started, or how to get help.

1 - Overview

Watch important PRs across repositories - and ignore the rest.

Get an overview of pull requests across repositories you watch, or dive deep into the details of a specific repository or pull request.

PR Focus gives you a snapshot of PRs in flight so you don’t miss any important work that needs your attention. Impress your colleagues by always knowing about the latest status of oustanding work, and eliminate the time-wasting of having to click around multiple repositories to check on work that matters to you.

What is PR Focus?

PR Focus is a macOS app that lets you keep track of important pull requests across repositories.

There are two ways to track PRs across repositories:

  • Find out about every PR that gets opened in a repository, and decide whether to watch or ignore each one.
  • Add specific PRs to PR Focus, and watch their progress.

PR Focus includes logic to automatically remove archived or inactive PRs from your views, letting you focus only on the PRs that matter to you.

Watch Repositories

Add repositories to watch, and PR Focus pulls down open pull requests in those repositories. New pull requests go into your Inbox, where you can decide whether you want to watch or ignore them.

Separate sections of the dashboard let you keep track of pull requests where:

  • You’re a reviewer on the PR
  • You’re assigned to the PR
  • You are the person who made the PR

The main dashboard shows all your in-flight PRs. Or you can drill into a specific repository to get a focused snapshot of the work you’re watching.

Watch PRs

If a repository is highly active, or if it’s not part your regular workflow, you might want to watch only specific PRs in the repository - not find out about every new PR that’s opened there. You can add “Solo PRs” to PR Focus to keep track of progress on important PRs even if you’re not watching the repository.

Why do I want it?

PR Focus is a tool for watching PRs across repositories.

  • What is it good for? PR Focus was written by a technical writer who needs to keep track of engineering pull requests across multiple upstream repositories, and colleagues’ pull requests across multiple documentation repositories. You might find it useful if you are a contributor to or maintainer of more than one repository, and want a single dashboard to keep track of work across those repositories.

  • What is it not good for? PR Focus is about watching the work that’s happening in repositories, not making contributions to them. You cannot make PRs or reply to PRs from PR Focus, although the app contains many links to relevant destinations on GitHub to enable you to easily engage directly via GitHub.

Overview on YouTube

2 - Get Started

What do you need to know to get started with PR Focus?

Prerequisites

  • PR Focus is an English-language macOS app. The minimum macOS version required to use PR Focus is 13.3.
  • PR Focus is currently available as a private alpha through TestFlight. You must install TestFlight from the App Store to use it.
  • PR Focus currently only supports repositories hosted on GitHub. You cannot use PR Focus to watch repositories hosted on GitLab, Bitbucket, or any other git repository hosting - provider. PR Focus is not compatible with self-hosted enterprise GitHub installations.
  • PR Focus requires a GitHub access token to make API calls. The access token must have the appropriate permissions for the repositories you want to watch. Details below.

Installation

PR Focus is currently available as a private alpha through TestFlight.

If you have been invited to the private TestFlight group, you should get an email from Apple. Follow the instructions in the email to accept the invite and begin testing PR Focus.

Setup

The first time you start PR Focus, you’ll be asked to provide some setup details. You must:

  • Provide a GitHub Access Token
  • Add your first repository

Generate a GitHub Access Token

PR Focus requires a GitHub access token with permissions to access the repositories you want to watch.

For details about how to generate a GitHub access token, refer to the GitHub Authentication documentation page Manage Personal Access Tokens.

GitHub provides two types of access tokens:

  • A fine-grained access token (currently in beta) which provides more precise control over what the bearer can access
  • A classic access token with less precise control over what the bearer can access

The required permissions for PR Focus to fetch pull request data vary depending on which type of access token you create.

For more details about the required permissions for each type of access token, refer to GitHub API Key

You can update your access token later from the PR Focus menu with the Manage API Key option.

Add a Repository

After you provide a valid API access token, PR Focus guides you to add your first repository. Provide the GitHub URL for a repository you want to watch, similar to https://github.com/dacharyc/prfocus-website

When you are adding your first repository, you can optionally configure settings for that repository. For more information, refer to Customize Repository Settings below. If you just want to get started, you can skip this step.

After you add the initial repository, PR Focus automatically fetches open pull requests for that repository. You’ll go to the main dashboard, and should start seeing PRs appear in your Inbox, My PRs, and Assigned PRs or Reviewing PRs respectively. You can specify whether to Watch or Ignore the PRs that come in. For more information, refer to Incoming PRs.

Customize Repository Settings (Optional)

You can optionally configure repository-specific settings for this repository. These settings include:

  • How you interact with the repository. This affects the view of that repository’s dashboard, and your main dashboard.
    • You can specify that you’ll never be a reviewer, assignee, or contributor to the repository. PR Focus considers this a “watch-only” view. When you check this checkbox, PR Focus does not show the My PRs, Assigned PRs, or Reviewing PRs columns for that repository. You’ll only see an Inbox and your Watched PRs for that repository.
    • If you may be a contributor, assignee, or reviewer in that repository, check the appropriate checkbox(es). These checkboxes toggle the visibility of the My PRs, Assigned PRs and Reviewing PRs columns respectively.
    • When you check that you may be an assignee or a reviewer in a repository, the Assigned PRs or Reviewing PRs column also appears in your main dashboard.
    • The global default is that you may be a contributor and a reviewer.
  • How often to fetch pull requests for the repository.
    • The global default is hourly.
  • The number of days to wait until archiving a pull request after it has been closed or merged.
    • The global default is 10 days.
    • If your work starts after an upstream repository has merged a PR, you may want it to remain in your repository dashboard for several days or weeks before it moves to archived.
    • If your work is done when a PR is closed or merged, you may want it to be archived right away.
  • The number of days to wait before moving a pull request without updates to “inactive”.
    • The global default is 30 days.
    • You may want a PR in a specific repository to move to inactive sooner.
    • If a repository has a longer review cycle, you may want to delay the time until inactive.

You can always update these settings later in Repo Settings. For more information about customizing repository setings, refer to Repository Settings.

You can update your global default settings later in app Settings. For more information, refer to Settings.

What’s Next

After you add your first repository, you may want to add more repositories for PR Focus to watch. For more information about adding repositories, refer to Add a Repository.

You may also want to change the label color or provide a custom name for a repository. For more information about customizing the way the repository appears in PR Focus, refer to Repository Settings.

You may want to customize your global default settings. If you do not customize the settings for a repository, PR Focus uses the global default settings to determine:

  • What columns to display
  • How often to fetch pull requests
  • How long to wait before archiving a PR or setting it to “Inactive”

For more information about global default settings, refer to Settings.

3 - Repositories

Watch Repositories on GitHub to find out about PRs you might care about. View all incoming PRs in those repos, and decide whether to watch or ignore them.

Repositories are the bucket by which PR Focus groups pull requests.

As a user of PR Focus, you can add one or more repositories that you want to watch. When you Fetch PRs, PR Focus makes API calls to GitHub to get open PRs for all of the repositories you’re watching, as well as updating existing PRs that PR Focus has previously ingested.

You can view pull requests in a specific repository, or view an All Pull Requests dashboard that aggregates all important PRs across all the repositories you’re watching.

You can customize the way PR Focus displays repository details, including:

  • Customizing the repository name or changing the repository label color that displays in the PR Summary view
  • Customizing the columns that display in the repository dashboard when you view a specific repository

You can also customize how often PR Focus fetches updates for the repository, or how long PR Focus waits before setting a pull request to “Inactive” or “Archived.”

You can delete a repository from PR Focus, which also deletes all pull requests for the repository.

3.1 - Watch Repositories

Watch repositories for new and updated PRs.

When you watch a repository, PR Focus checks GitHub for all of the open pull requests that are currently in that repository. While the app is open, PR Focus automatically checks the repository for:

  • Updates to existing PRs
  • New PRs opened in the repository

New PRs go into your Inbox. From there, you can decide whether to Watch or Ignore the PR. For more information, refer to Incoming PRs.

If you are an assignee, a reviewer, or if the PR was made by you, the incoming PR goes directly into the relevant list of PRs, bypassing your Inbox. For more details about how PR Focus determines these states, refer to View a Repository.

When a pull request gets updates, the pull request moves to the top of its respective list. The background color of the PR Summary changes to indicate there are updates. If the updates are to status checks, commits, comments, or reviews, the relevant column in the PR Summary is bolded. Clicking into the PR details tells you what information is new. For more information about PR Summaries, refer to PR Summary. For more information about the information available when viewing PR details, refer to View PR Details.

If you don’t need to know about every new pull request in a repository, you can watch individual pull requests instead of watching the repo. For details, refer to Watch an Individual PR.

How to Watch a Repository

To watch repositories in PR Focus:

  1. Go to the Repositories menu in the menu bar
  2. Select Watch Repositories

Screenshot showing the “Watch Repositories” menu option

Add One Repository

By default, when you open the Watch Repositories window, you see the option to add a single repository.

Enter a GitHub URL for the repository you want to add, similar to https://github.com/dacharyc/prfocus-website.

You can also select a color for the repository pill to help visually distinguish the repository in a list.

Screenshot showing the “Add one” option in the “Watch Repository” pane, with a text field to enter a URL, a picker to select a color and a save buttons

Press the Add Repository button to add the repo to the list of repositories you’re watching.

The repository appears in the sidebar. PR Focus enqueues a job to automatically fetch the open pull requests in the repository from GitHub. Once any running jobs are complete, PR Focus gets the open PRs for the new repository.

If you go to the Manage Repositories option in the Repositories menu, you’ll see the repository in your list of watched repositories. From here, you can click a link to view the repository in GitHub.

Screenshot showing the Manage Repositories window with links to view repositories on GitHub, and buttons to update settings or delete the repositories

Add Many Repositories

If you want to quickly onboard a team to PR Focus, you can create a list of repository URLs to add to the app.

When you open the Watch Repositories window, you’ll see the option to Add many.

Screenshot showing the Watch Repository pane, with <code>Add Many</code> selected and a text box to enter many repository URLs

When you select this option, you can enter a list of repository URLs separated by newlines. PR Focus parses this list and adds all of the repositories to the app.

When adding many repositories, you cannot customize the color of the labels. PR Focus assigns a color at random to each repository in the list.

You can manually customize these labels later if you customize repository settings.

What’s Next

3.2 - View a Repository

View the Repository Dashboard to see only PRs for that repository or change repo settings.

When you select a repository in the sidebar, this opens the Repository Dashboard. This shows all of the pull requests associated with a specific repository that you’re watching. You might want to view a specfic repository instead of the All Pull Requests dashboard if you want to focus in on the work in a specific project.

From here, you have the same options as in the All Pull Requests dashboard:

  • Manage incoming PRs
  • View any PR in GitHub
  • View the details of a specific PR in PR Focus

For more details about these options, refer to All Pull Requests.

The Repository Dashboard

The Repository Dashboard breaks down into different lists of pull requests, similar to the All Pull Requests dashboard. But you can customize the columns you see in a repository dashboard for a specific repository.

For example, if you will never make a pull request in a repository, but you may be a reviewer there, you can select “I might be a reviewer” and de-select the other options. Then, you only see the “Reviewing PRs” column when you view that repository’s dashboard. For more details about customizing the repository dashboard view, refer to Repository Settings.

Screenshot showing a Repository Dashboard for <code>realm-swift</code>

3.3 - Repository Settings

Update repository metadata in PR Focus, or stop watching the repository.

You can customize settings in PR Focus on a per-repository basis, including:

  • Give the repo a human-friendly name
  • Customize the label color
  • Specify how long to wait before moving PRs out of the repository view to the “Inactive” or “Archived” dashboards
  • Specify how often to fetch updates for the repo from GitHub
  • Customize which columns to display for the repository’s dashboard view (show or hide “My PRs”, “Assigned”, “Reviewing” columns)

Any customizations you make on a per-repository basis override the app-wide settings you can configure across all repositories in the app. For information about customizing app-wide settings, instead, refer to Settings.

How to Customize Repository Settings

  1. Go to the Repositories menu.

  2. Select the Manage Repositories option.

    Screenshot showing the Manage Repositories menu option

    When you select this option, you open the Manage Repositories window. This window provides:

    • A list of all the repositories you’re watching
    • Links to navigate directly to the repositories in GitHub
    • Buttons to update the settings for each repository
    • Buttons to delete repositories from PR Focus
  3. Press the Update Settings option to open the repository settings window for that repository.

    Screenshot showing the Manage Repositories window with links to view repositories on GitHub, and buttons to update settings or delete the repositories

  4. Update any settings you want to change. These settings apply only to this repository, and override the global default settings for this repo.

    Screenshot showing the “Repository Settings” view with metadata and customization options

    If you would instead like to customize the global default settings, refer to Settings.

Repository Metadata

In the bottom of the Repository Settings sidebar, you see metadata derived from the URL you provide when you Watch a Repository.

The GitHub URL contains the owner and repository name, which PR Focus extracts to the relevant pieces of metadata. If you ever forget what a repository is, or need a quick way to get to the repository, you can click the GitHub link in this sidebar to go to the repository in a web browser.

The repository name from this URL is displayed as the default Repo Name in the PR Focus sidebar, and on the repository label in the PR Summary. You can provide a custom name to use in repository labels.

Customize Repository Label

You can customize these repository details:

  • Provide a custom, human-friendly name for the repository, which replaces the default Repo Name in the PR Focus sidebar and on the repository label in the PR Summary
  • Select a repository label color to make it easier to distinguish the repository that a PR belongs to when viewing any of the consolidated pull request dashboards.

Screenshot showing the “Repository Label” view with custom name and label color options

In the example below, the docs-realm repository name has been replaced by the custom SDK Docs name, and a specific color has been chosen for the repository label.

Screenshot showing a PR Summary

Archive and Inactive Behavior

PR Focus automatically moves PRs that are inactive out of your main All Pull Requests and repository dashboard to an Inactive PRs dashboard. You can customize how long to wait before setting a PR as inactive for a given repository. This helps avoid cluttering your active dashboards with pull requests that may be blocked.

PR Focus automatically moves closed PRs out of your main All Pull Requests and repository dashboard to an Archived PRs dashboard. You can customize how long to wait before setting a PR as archived for a given repository. If your work is done immediately when the pull request is closed, you might want to move it right away to the archived dashboard. If your work starts when a pull request is closed, as when you’re a downstream team writing documentation for a new feature, you may want a closed PR to remain visible in your dashboard for a longer period of time.

Screenshot showing the “Archive and Inactive” view with default 30 day until Inactive and 10 day until Archive settings

GitHub Fetch Frequency

PR Focus automatically fetches updates from GitHub in the background while the app is open. You can customize how often to fetch updates for a given repository. For some repositories, you may only need to see updates daily, and more frequent updates would be a distraction. For other repositories, you may want to see updates whenever you look at PR Focus, so you may want it to update as often as several times per hour. The default fetch interval is one hour.

Screenshot showing the “GitHub Fetching” view with the “Hourly” option selected in the picker

The GitHub API rate-limits API access tokens to 5,000 calls per hour.

PR Focus makes a call to fetch the list of open PRs in a repository, and then makes individual calls to get the details of each pull request it needs to update.

If you are watching many repositories, or if the repositories you watch have many open PRs, the fetch job can be quite lengthy and can consume hundreds of API calls per run. For this reason, we recommend not fetching PR updates too often. The default fetch interval is hourly. The most frequent fetch interval that PR Focus provides for its automated jobs is “several times per hour.” You can manually fetch updates at any time by pressing the Fetch PRs button, but if the rate limit has been exceeded, you won’t see any updates to your pull requests in PR Focus.

Show Columns in Repo Dashboard

Which columns to show in the repo dashboard.

  • If you’ll never be a reviewer, assignee, or contributor to the repository, you can select the “Watch-only view” setting. This removes the My PRs, Reviewing PRs, and Assigned PRs columns when viewing that repository. When you toggle this setting, the rest of the options disappear.
  • If you may be a reviewer, assignee, or contributor to the repository, you can check which columns apply to your role in that repository. PR Focus shows the corresponding columns in the Repository Dashboard, and in the All Pull Requests dashboard.

Screenshot showing the “Show Columns” view with the “I might make PRs here” and “I might be a reviewer” checkboxes selected

3.4 - Delete a Repository

Delete a repository and all of its PRs from PR Focus.

You can delete repositories that you’re watching from PR Focus. When you delete a repository, PR Focus:

  • Deletes all pull requests and their associated data from PR Focus
  • Removes the repository from your “Watched Repositories” list
  • Stops fetching new and updated pull requests from GitHub

You might want to delete a repository if you stop working on a project, or if the repository is too active and you find you are exceeding the GitHub rate limit.

If you delete a repository because it’s too active, you can still watch individual pull requests in the repository. For more information, refer to Watch a Pull Request. Or you could fetch updates from the repository less often. For more information about how to set the fetch interval for a repository, refer to Repository Settings.

You can delete closed pull requests without deleting a repository. If you only want to delete closed pull requests in a repository, refer to Archived PRs

How to Delete a Repository

  1. Go to the Repositories menu.

  2. Select the Manage Repositories option.

    Screenshot showing the Manage Repositories menu option

  3. Find the row for the repository you want to delete, and press the Delete repo button. This deletes the repository and all of its pull requests from PR Focus.

    Screenshot showing the Manage Repositories window with an arrow pointing to the circled “Delete Repo” button for the ‘dacharyc/GitHubGraphQLAPITester’ repo.

4 - Pull Requests

Watch and ignore PRs to pay attention to the work you care about, and ignore the rest. PRs automatically move based on rules in the PR Focus design. Watch solo PRs when you don’t care about all the work in the repository.

New PRs that are opened in repositories you watch become Incoming PRs in PR Focus. You can also watch individual pull requests if you don’t want to watch all the activity in a repository.

PRs where you are an assignee, a reviewer, or the PR author automatically move into relevant columns in the “All Pull Requests” or repository-specific dashboard.

You can manually move PRs by watching and ignoring them.

After time intervals you can configure, PRs automatically become inactive or archived.

You can view all the PR details for repositories you care about in one place, or get links to review relevant information about a PR in GitHub.

4.1 - All Pull Requests

View the roundup of all the important pull requests you’re tracking.

PR Focus provides an All Pull Requests dashboard where you can see an aggregate view of all of the important pull requests across all of the repositories you’re watching. This is the main dashboard in the app, and it’s the view that loads when you open the app.

Not every PR in PR Focus appears in the All Pull Requests dashboard. Pull requests that you don’t need to actively pay attention to move to secondary dashboards to get them out of the way. PR Focus moves these pull requests automatically:

  • Inactive PRs: When a PR hasn’t had activity for a while, PR Focus marks it as “inactive” and moves it to the Inactive PRs dashboard. If it gets an update, PR Focus moves it back to the active dashboards. You can configure the interval to wait to set a PR as inactive on a global basis, or on a per-repository basis. For more information, refer to Settings or Repository Settings.
  • Ignored PRs: When you ignore a pull request, it moves to the Ignored PRs dashboard. You can un-ignore it at any time, or change your mind and start watching it. PRs where you are an assignee or a reviewer automatically appear in your active dashboards, even if you ignore them.
  • Archived PRs: When a pull request is closed, it eventually moves to the Archived PRs dashboard. Once a PR becomes archived, you can delete it from PR Focus. You can configure the interval to wait to set a PR as archived on a global basis, or on a per-repository basis. For more information, refer to Settings or Repository Settings.

Any pull request that isn’t inactive, ignored, or archived appears in the All Pull Requests view.

Screenshot showing the All Pull Requests dashboard

Anatomy of the PR Focus Dashboard

The All Pull Requests and Repository dashboards break down into different lists of pull requests. By default, you see:

  • Inbox: a list of Incoming PRs
  • Watched PRs: a list of PRs you’ve chosen to watch
  • My PRs: a list of your PRs
  • Reviewing PRs: a list of PRs where you’re a reviewer

Optionally, if your workflow involves assigning PRs, you can check the setting in the Settings or the Repository Settings to Show Assigned PRs. This adds a fifth list of PRs that are assigned to you.

Screenshot showing the Repository Dashboard

PR Summary

A summary view gives you information about each PR in the dashboard, including:

  • The PR’s title
  • The PR number
  • The repository where the PR exists
  • Whether a PR has merge conflicts
  • Whether a PR is open, closed, or merged
  • Whether there are any checks for the PR, and if those checks have passed or failed
  • The number of commits in the PR
  • The number of comments on the PR
  • The number of reviews the PR has gotten

You can click into a PR summary to see the full details of the pull request.

The background color of the PR summary changes when the PR has new updates since you last viewed the details. Additionally, when there are updates since you’ve last viewed the details, PR Focus bolds the relevant column that has updates - Checks, Commits, Comments, or Reviews. PR Focus uses your macOS settings for Light or Dark mode.

In Light mode, a PR summary with a bright white background has updates you haven’t seen. One that is gray does not have any new updates since you last viewed it.

Screenshot of a PR Summary with new updates in Light mode - the background is bright white

In Dark mode, a PR summary with a dark black background has updates you haven’t seen. One that is grey does not have any new updates since you last viewed it.

Screenshot of a PR Summary with new updates in Dark mode - the background is dark black

If you’re viewing a repository where you are showing all three columns - “My PRs”, “Assigned PRs”, and “Reviewing PRs”, you see a condensed PR Summary designed to prevent the column names from overflowing.

Screenshot of a condensed PR Summary - it has no “Conflicts” column name, and the columns are closer together to avoid overflowing titles

PR Summary Context Menu

You can right-click on a PR summary to open a context menu. This menu lets you quickly perform common actions without clicking into the pull request details.

The available options change depending on the context in which you open the menu. For example, if a PR is closed or merged, one of the options in the context menu is “Archive PR.” If the pull request is open, this option is not available.

If you have created tags to apply your own categorization to pull requests, you’ll see an “Apply Tags” option in the context menu. Tagged PRs get a tag icon in the summary to indicate they have a tag. You can view them in any of the relevant default dashboards, or get a focused view of them by applying filters in the Tagged PRs dashboard. If you have applied tags to a PR, you’ll see a “Remove Tags” option in the context menu.

You can always select “Open in GitHub” to immediately interact with the PR on GitHub. Or you can click into the pull request details to view the details without leaving PR Focus.

Screenshot showing the PR Summary context menu, with options to watch or ignore a PR, or open it in GitHub

Conflicts

A PR’s “Conflicts” icon can indicate one of three states:

  • A green check: A PR has no merge conflicts.
  • A gray check: GitHub hasn’t finished calculating whether a PR has merge conflicts.
  • A red X: A PR has merge conflicts.

Status

A PR’s “Status” can be one of four states:

  • Draft: Indicated by a grey pull request draft icon: A grey git PR draft icon
  • Open: Indicated by a green pull request icon: A green git PR open icon
  • Merged: Indicated by a purple merged icon: A purple git merged icon
  • Closed without merging: Indicated by a red pull request closed icon: A red git PR closed without merging icon

Checks

A PR’s “Checks” include jobs that run on a PR before merging, such as linters, test suites, or other CI jobs. The status of these jobs is indicated as one of three states in the PR summary:

  • A green check: A PR has at least one check, and it has passed all checks.
  • A red X: A PR has at least one check, and it has failed at least one check.
  • An “N/A”: A PR has no checks, or the status of checks is unknown.

When you click into a PR’s details, you can see the status of individual checks.

Inbox

When a new PR is opened in a repository you’re watching, PR Focus checks for a few things:

  • Are you the PR author? If so, the PR goes to My PRs.
  • Are you an assignee? If so, the PR goes to Assigned PRs
  • Are you a reviewer or requested reiewer? If so, the PR goes to Reviewing PRs

If none of those things applies, the pull request appears in the Inbox. From here, you can view the PR’s details and decide whether to Watch or Ignore a PR. If the PR is closed, you can Archive it. If you later become a reviewer or an assignee, the PR moves to one of those columns whether or not you Watch or Ignore it.

The aggregate Inbox gives you the option to perform bulk operations. You can select multiple PRs and Watch or Ignore them. If you select multiple closed PRs, you can Archive them.

For more information about processing incoming PRs, refer to Incoming PRs.

Watched PRs

When you choose to Watch an incoming PR, it moves into the Watched PRs list for the repository and in the All Pull Requests rollup view. If you watch an individual pull request without watching the repository, it automatically moves into your Watched PRs list.

Choosing to Watch a PR does not move the pull request out of the My PRs, Assigned PRs or Reviewing PRs columns.

Stop Watching

You can stop watching a PR at any time by either:

  • Clicking into the PR Details and pressing the Stop Watching button.
  • Right-clicking on the PR Summary and selecting Stop Watching from the context menu.

You can also choose to Ignore a pull request that you’re currently watching. If you select this option, PR Focus stops watching the PR and moves it to the Ignored PRs dashboard.

In a Watched Repository

If the PR is still open, it goes back to your Inbox. If the PR is no longer open, it disappears until it eventually becomes archived at the interval you’ve configured. Once it is archived, it appears in the Archived PRs dashboard.

You might stop watching a PR if you’re undecided if you need to pay attention to it. You might choose this option instead of going directly to Ignore if you want to see upcoming changes to a PR before deciding how to react to it.

When it’s a solo PR

If you have added a pull request that isn’t part of a repository you’re watching, it automatically goes into your Watched PRs list. PR Focus assumes that when you Stop Watching one of these pull requests, you no longer care about it, and PR Focus deletes it. This is the only scenario where PR Focus makes it possible to delete a pull request that isn’t closed.

My PRs

When the GitHub user who created the PR is the same as the GitHub user whose API token is used in PR Focus, the app considers you the PR author and automatically moves the PR into My PRs. PR Focus does not provide a way to manually designate a PR as “mine.”

Choosing to Watch or Ignore a PR does not move the pull request out of the My PRs column. The only way to move a pull request you’ve made is waiting for it to become inactive and automatically move to the Inactive PRs dashboard, or waiting for it to close and automatically or manually move to the Archived PRs dashboard.

Reviewing PRs

When the GitHub user whose API token is used in PR Focus is the same as a GitHub user in the requestedReviewers array in the GitHub Pull Request API, PR Focus moves the PR into the Reviewing PRs list.

When you review a PR, GitHub automatically adds you to the requestedReviewers array. Someone else, such as the PR author, can also add you as a requestedReviewer by requesting a review from you.

If you do not use this workflow, you can hide the Reviewing PRs list from your dashboards by un-checking the Show Reviewing PRs checkbox in the global app Settings or Repository Settings.

Reviewing PRs is enabled by default.

Note: PR Focus does not have support for requestedTeams because it does not have information about teams. If your organization uses requested teams, PR Focus will not add the PR to your Reviewing PRs list until you actually review the PR. If this is a feature that is important to you, please file a feature request or leave a comment or an emoji reaction if this feature request already exists.

Assigned PRs

When the GitHub user whose API token is used in PR Focus is the same as a GitHub user in the assignee field or the assignees array in the GitHub Pull Request API, PR Focus moves the PR into the Assigned PRs list.

If you do not use this workflow, you can hide the Assigned PRs list from your dashboards by un-checking the Show Assigned PRs checkbox in the global app Settings or Repository Settings.

Assigned PRs is disabled by default.

Note: PR Focus does not have support for requestedTeams because it does not have information about teams. If your organization uses requested teams, PR Focus will not add the PR to your Assigned PRs list. If this is a feature that is important to you, please file a feature request or leave a comment or an emoji reaction if this feature request already exists.

Sort PRs in Lists

You can sort pull request lists in the All Pull Requests or repository dashboards by a number of options. By default, all lists in these dashboards are sorted by updated date. Recently updated PRs always appear at the top of the lists.

You can change the sort order of Watched PRs, Assigned PRs, Reviewing PRs, or My PRs with one of these sort options:

  • Review count: Sort in descending order by the number of reviews
  • Comment count: Sort in descending order by the number of comments
  • Commit count: Sort in descending order by the number of commits
  • State: Group PRs together by state; Closed, Open, or Merged
  • Broken: Show PRs with failing status checks and/or merge conflicts at the top of the list
  • Updated date: Sort in descending order by updated date
  • Closed date: Sort in descending order by closed date. Only closed PRs have a closed date.
  • Merged date: Sort in descending order by merged date. Only merged PRs have a merged date.

You can individually change the sort order for each column. PR Focus does not preserve the sort order you select and always defaults to showing PRs in descending order by updated date.

Screenshot showing the opened “Sort by” menu with the available sort options

PR Movement Between Lists and Dashboards

Pull requests may move automatically between lists and dashboards depending on things like whether you are a reviewer or assignee, or whether the PR has been inactive or closed for a period of time. You can manually change the status of PRs by watching or ignoring them, or by archiving a PR that is closed or merged.

Manually Move PRs Between Lists and Dashboards

When you Watch or Ignore a PR in your Inbox, the PR moves to the Watched PRs list or the Ignored PRs dashboard.

You can manually change the status of a watched or ignored PR at any point by either:

  • Clicking into the PR Details and pressing the appropriate button.
  • Right-clicking on a PR Summary and selecting the appropriate option from the context menu.

You can also manually select the Archive PR option on a closed or merged PR to immediately move it to the Archived PRs dashboard.

Automatic Movement Between Lists and Dashboards

PRs may also move between lists automatically in the Repository Dashboard and Inactive/Archived dashboards when:

  • You become a reviewer or an assignee on a pull request. When this occurs, the PR moves into one of those respective columns.
  • A PR has been inactive for longer than the Days until inactive setting. When this occurs, the PR moves into the Inactive PRs dashboard.
  • A PR has been closed or merged for longer than the Days until archive setting. When this occurs, the PR moves into the Archived PRs dashboard.

You can customize these settings on a per-repository basis, or by changing the app Settings from their default values. For more information, refer to:

View PR Details

At any time, you can click into a PR Summary in a list or dashboard to view the PR details. When you are viewing the PR details, you can press the buttons to Watch, Ignore, or Archive a PR. For more information, refer to View PR Details.

Fetch New and Updated PRs in the Repository

While PR Focus is open, it automatically fetches and updates PRs in the repositories. You can configure the interval at which PR Focus fetches and updates PRs in two ways:

  • Customize the global default fetch interval from the app Settings.
  • Customize the fetch interval for a specific repository from the Repository Settings.

The default interval for fetching and updating PRs is every hour.

If you configure repositories to fetch different intervals, you may see some repos not included in a “fetch PRs” job run in the logs. For example, you may have a few repositories fetching updates several times per hour, but the rest on an hourly cadence. When each of these jobs run, you’ll only see the repositories with that fetches interval appear in the logs for that job.

Manually Fetch PRs

When a job is running, you cannot manually fetch PRs. An animation appears in the PR Focus toolbar and replaces the Fetch PRs buttons. The buttons return when the job is complete.

Screenshot showing the animation in the toolbar that replaces the “Fetch PRs” button

Fetch all PRs

You can manually press the Fetch all PRs button at the upper right hand of the PR Focus window. This gets updates from GitHub for all of the solo pull requests and repositories you watch.

Screenshot showing “Fetch PRs” button in the toolbar

Fetch PRs for a Specific Repository

You can manually press the Fetch specific repo button at the upper right hand of the PR Focus window. This opens a dropdown of all of the repositories you’re watching. You can select a specific repository, and PR Focus fetches only the updates for that repository. This is useful if you’re watching a lot of repositories, and don’t want to wait for all of the fetch jobs to run - you can quickly fetch only the updates for a single repository.

Screenshot showing “Fetch specific repo” button in the toolbar, with the SDK Docs repository highlighted

What Does Fetching PRs Do?

When you press the Fetch PRs button, this kicks off a few jobs:

  • It fetches updates for the solo PRs you’re watching
  • It fetches a list of open pull requests in all of the repositories you’re watching
  • During a fetch job:
    • If the PR has previously been added and is still open in PR Focus but closed in the remote repository, PR Focus fetches updates from the remote repository, and updates the status.
    • If the PR is merged or closed in PR Focus and not listed as “open” on the remote repository, PR Focus does not fetch updates for it.
    • While fetching updates, PR Focus looks for any new commits, comments, reviews, or status checks, adds them to the PR details, and increments the PR summary counts.
    • If PR updates include adding you as an assignee or requestedReviewer, PR Focus moves the PR to the appropriate list in your dashboard.

4.2 - Incoming PRs

Find out about new PRs in a repository, and decide whether to watch or ignore them.

PR Focus automatically fetches new pull requests and updates to existing pull requests:

  • When you start PR Focus
  • When you watch a solo pull request or repository
  • At regular intervals while the app is open

You can also manually fetch PRs at any time.

If a PR already exists in PR Focus matching the PR number, PR Focus retrieves the most up-to-date version of the PR from GitHub and updates the details in PR Focus. If an open PR does not match a PR number that PR Focus already knows about, it creates a new PR.

Assigned, Reviewer, or My PR

If you are an assignee, a reviewer, or if the PR was made by you, the incoming PR goes directly into one of those columns, bypassing your Inbox. For more details about how PR Focus determines these states, refer to View a Repository.

Inbox

When the PR was made by somebody other than you, and you’re not an assignee or a reviewer, the PR goes to your Inbox. You’ll see a PR Summary giving you information about the PR, and you can click into it to view more details.

Screenshot showing a PR Summary

The list of PR Summaries in your Inbox let you quickly scan a list of new PRs and decide whether they require action from you or you can safely ignore them. You can view PRs in your Inbox on a per-repository basis, or see a list of all incoming PRs in the All Pull Requests view.

Watch, Ignore PR, or Archive PRs

You can watch, ignore, or achive a PR in one of three ways:

  • If you can tell from the PR Summary what action you want to take, right-click on the PR Summary and select Watch PR, Ignore PR, or Archive PR from the context menu. Archive PR is only available if the PR is closed.
  • Click into the PR Summary to view the PR Details and decide what action you want to take. Press the Watch, Ignore, or Archive buttons.
  • Click the Perform bulk operations button to enable multi-selection. Select multiple PRs, and press the Watch, Ignore, or Archive buttons. The Archive button becomes disabled if you select a PR that is still open, as you can only archive closed PRs. Press the Perform bulk operations button again to hide the bulk operation buttons and disable multi-select in the list. You can only perform bulk operations in the aggregate Inbox.

You can also select the “Open in GitHub” option if you want to view details about the PR that are not available in PR Focus, such as looking at the PR diff.

Watch or Ignore a PR from the PR Summary

Screenshot showing the Watch and Ignore options in a right-click context menu from the PR Summary

Watch or Ignore a PR from the PR Detail View

Screenshot showing the Watch and Ignore buttons at the top of a PR Detail view

Perform Bulk Operations from the Aggregate Inbox List

When you press the Perform bulk operations button, this enables multi-selection in the Inbox list. The PR Summary switches to a less information-dense view with a few basic details:

  • PR Name
  • PR Status
  • PR Number
  • Repository

While in this view, select PRs and press the relevant button to perform a bulk operation. Press Perform bulk operations again to disable multi-selection and return the list to its normal behavior.

Screenshot showing the Watch, Ignore, and Archive buttons and multiple PRs selected when performing bulk operations

When to Watch or Ignore PRs

You might want to watch a PR if:

  • You’re dependent on the work being merged
  • You need to follow the status of the work for reporting reasons
  • You may need to review the PR in the future
  • Purely for personal interest because you’re curious about the feature

You might want to ignore a PR if:

  • The work is internal to the originating team and you don’t need to know the outcome
  • You haven’t interacted with the PR and don’t care about its progress

When you watch a PR, it goes into your Watched PRs list, both in the Repository Dashboard and in the All Pull Requests Dashboard.

When you ignore a PR, it goes into the Ignored PRs Dashboard.

Watch or Ignore Cannot Override Assigned, Reviewing, or My PR

When you are assigned to a PR, you are a PR reviewer, or the PR was made by you, Watch or Ignore has no effect. Watching such a PR does not move it into your Watched PRs list, and ignoring such a PR does not move it to the Ignored PRs dashboard.

This is an intentional design decision so you don’t miss important work that requires your attention. If you have a use case for changing this functionality, please send me an email or file a feature request.

If you Watch or Ignore an incoming PR, and later you become a reviewer or an assignee, it moves from your Watched PRs list or your Ignored PRs dashboard to the respective column.

Changing Watch or Ignore Status

Watch and Ignore are mutually exclusive options. If you have previously watched a PR, and then press the Ignore button, PR Focus stops watching the PR and moves it into the Ignored PRs dashboard. If you have previously ignored a PR, and then press the Watch button, PR Focus stops ignoring it and moves it from the Ignored PRs dashboard back to the Watched PRs list.

You can change the watch or ignore status in the same ways you can set it - from right-clicking on a PR Summary or while viewing the PR Details.

If you choose to Stop Watching or Stop Ignoring a PR, the behavior varies depending on whether it came into PR Focus through watching a repository, or whether it’s a PR you added as a solo PR.

In a Watched Repository

If the PR is still open, it goes back to your Inbox. If the PR is no longer open, it disappears until it eventually becomes archived at the interval you’ve configured. Once it is archived, it appears in the Archived PRs dashboard.

You might stop watching a PR if you’re undecided if you need to pay attention to it. You might choose this option instead of going directly to Ignore if you want to see upcoming changes to a PR before deciding how to react to it.

When it’s a solo PR

If you have added a pull request that isn’t part of a repository you’re watching, it automatically goes into your Watched PRs list. PR Focus assumes that when you Stop Watching one of these pull requests, you no longer care about it, and PR Focus deletes it. This is the only scenario where PR Focus makes it possible to delete a pull request that isn’t closed.

Tag Pull Requests

You can apply custom tags to pull requests to drill down into the work you’re tracking in different ways. Tag a pull request with a release version, a feature name, or a work category to easily view a roundup of related work. For more details, refer to Tagged PRs.

4.3 - View PR Details

View all the important details about any PR you’re watching, in one place.

When you’re viewing a Repository Dashboard, the All Pull Requests dashboard, or any of the other pull request dashboards, you can click into a PR Summary to get a detailed view of the pull request.

Screenshot showing a PR Summary

The PR Details view contains:

  • Buttons to Watch or Ignore the PR. Optionally, if the PR is closed, a button to Archive the PR. If you clicked into the PR detail view from a list of PRs that contain PRs before or after the one you’re viewing, you’ll see previous and next buttons to page through all the PRs in the list.
  • The PR title, number, description, and date last updated
  • A link to view the PR on the GitHub website
  • If you have applied tags to the PR, you can see the tags you have applied. You can also apply and remove tags from this view. For more details, refer to Tagged PRs
  • A label telling you which repository a PR belongs to, which provides helpful context if you’ve clicked into it from the All Pull Requests view
  • A list of commits in the PR, with links to view each commit on GitHub
  • A list of status checks for the PR, with links to view each status check on GitHub
  • A list of reviews on the PR, with links to view each review on GitHub
  • A list of comments on the PR, with links to view each comment on GitHub
  • A “New” label for any item that has been added to PR Focus since you last viewed the PR details

Screenshot showing the PR Details view

Commits

Each commit in the list of commits contains:

  • The GitHub user who made the commit (if the commit contains this information)
  • The date and time of the commit
  • A link to view the commit on GitHub
  • The commit message
  • A “New” label if you have not viewed PR details since this commit was added to PR Focus

The list of commits displays in chronological reverse order, with the most recent commit at the top of the list.

Status Checks

Status Checks in PR Focus refer to a list of jobs or statuses associated with a PR. These may be GitHub workflow runs, CI jobs, or other required checks that repository rules enforce on a PR.

Each status check in the list of status checks contains:

  • Information about whether the status check passed or failed
    • A green checkmark for passing checks
    • A red X mark for failing checks
  • The name of the status check
  • An icon, if one is associated with the status check
  • A link to view it on GitHub
  • A “New” label if you have not viewed PR details since this status check was added to PR Focus

PR Focus displays the status checks for the branch head commit sha at the time of the last fetch job. This information may not match the current state of status checks if:

  • A more recent status check or workflow run has occurred since PR Focus last fetched the status checks
  • The status check or workflow run was still running in GitHub when PR Focus checked for updates, and PR Focus does not have the status of the completed job

Missing Status Checks

Status checks or workflow runs come from GitHub in many different structures. PR Focus is still fine-tuning the best way to get the relevant status checks for the branch head. If you are missing status checks that you expect to see, please let me know these details (if the repo is public and you are able to share):

  • The repo owner and name
  • The PR number
  • What checks you see in PR Focus
  • The checks you expect to see that are missing from PR Focus

Feel free to file an issue, send me an email, or contact me directly with these details. Thank you!

Reviews

Each review in the list of reviews contains:

  • The review status, which is one of:
    • Approved: The reviewer has approved the PR. Indicated by a green review approved icon A green review approved icon
    • Changes Requested: The reviewer has requested changes on the PR. Indicated by a red request changes icon A red request changes icon
    • Commented: The reviewer has commented without approving or requesting changes. Indicated by a yellow commented icon A yellow commented icon
  • The GitHub user who left the review
  • The date and time of the review
  • A link to view the review on GitHub
  • A review message, if one was left with the review.
  • A “New” label if you have not viewed PR details since this review was added to PR Focus

The list of reviews displays in chronological reverse order, with the most recent review at the top of the list.

Comments

Each comment in the list of comments contains:

  • The GitHub user who left the comment
  • The date and time of the comment
  • A link to view the comment on GitHub
  • The comment text
  • A “New” label if you have not viewed PR details since this comment was added to PR Focus

The list of comments displays in chronological reverse order, with the most recent comment at the top of the list.

Note: In PR Focus v0.2.0, I added a module to parse GitHub-flavored Markdown to nicely formatted text in the PR Detail view. I have seen some impact to performance when scrolling comment lists since adding this module. If you have performance issues when scrolling, the UI should un-freeze again after a short delay. Please let me know if you run into this issue so I can troubleshoot and potentially re-evaluate using this module.

4.4 - Filter PRs

You can create custom filters to automatically perform an action when an incoming pull request meets some criteria you define.

You can define custom filters to automatically perform one of these actions when an incoming pull request meets your criteria:

  • Watch
  • Ignore
  • Apply a Tag
  • Mark important 1

You can define criteria that determines when PR Focus should apply your filter, similar to email filtering.

If you want to find out about incoming pull requests, but automatically ignore certain PRs, such as Snyk dependency update PRs, you can define a filter to Ignore pull requests made by the Snyk PR user - in our case, admin-token-bot.

If your organization uses naming conventions in pull requests, you might want to automatically Watch a PR, or apply a specific tag to it, when the title includes “Feature:” or “Bug:” naming patterns.

Create a Filter

To create a new filter:

  1. Go to the Filters menu.

  2. Select Create a Filter

    Screenshot showing the “Create a Filter” menu option

  3. Provide a name for the filter.

  4. Add at least one condition for PR Focus to determine when to apply the filter. You can optionally add multiple conditions.

  5. Specify the action PR Focus should take when an incoming PR meets the filter criteria.

  6. Press the Create Filter button.

Screenshot showing the “Create a Filter” window with the name “Ignore Snyk dependency update PRs” and the conditions of “Apply to filter to PRs where: PR authro username exactly matches ‘admin-token-bot’”

Add Filter Criteria

You can define the criteria that PR Focus uses to determine whether or not to apply the filter. Filter criteria consists of:

  • A supported field to filter
  • A condition to determine whether or not to apply the filter
  • A user-defined string to check for in the filter field

Screenshot showing the filter criteria section of the “Create a Filter” window: field, condition, and text box

You cannot create a filter unless you provide a user-defined string.

You can optionally provide more than one condition. If you supply more than one condition, you must specify the filter logic that PR Focus should use when determining whether to apply the filter.

Screenshot showing the “Create a Filter” window with an arrow pointing to the drop-down where you can specify the logic to apply multiple filters

Supported Fields

You can select one of these fields for PR Focus to evaluate whether or not to apply the filter:

  • Username: The GitHub username of the pull request author
  • Title: The pull request title
  • Description: The content contained in the initial comment by the pull request author, which may include a pull request template and typically contains the PR author’s description of the pull request.
  • Repository: The repository default name (for example, prfocus-website in https://github.com/dacharyc/prfocus-website), or the custom name for a repository you have defined in PR Focus.

Conditions

PR Focus evaluates these conditions when determining whether or not to apply the filter:

  • exactly matches: the text in the selected field is an exact match (==) for the user-defined string. For example, username exactly matches admin-token-bot evalutes to true - and the filter is applied - when the PR author’s username is “admin-token-bot.”
  • includes: the text in the selected field contains the user-defined string. PR Focus does not attempt to do any stemming or tokenization. This implementation uses the .contains() operator. For example, username includes admin-token-b evaluates to true - and the filter is applied - when the PR author’s username is “admin-token-bot.”
  • does not match exactly: the text in the selected field does not match (!=) the exact user-defined string. For example, username does not match exactly bot evaluates to true - and the filter is applied - when the PR author’s username is “admin-token-bot.” The text contains the user-defined string, but it’s not an exact match.
  • does not include: the text in the selected field does not contain the user-defined string. PR Focus does not attempt to do any stemming or tokenization. This implementation uses the !.contains() operator. For example, username does not include dacharyc evaluates to true - and the filter is applied - when the PR author’s username is “admin-token-bot.” If the user-defined text was bot, this would evaluate to false, because the “admin-token-bot” username does contain bot, and the filter would not be applied.

When evaluating these conditions, PR Focus uses case-insensitive comparison with the user-defined string.

User-Defined Strings

PR Focus requires a user-defined string to evaluate the condition. It does not accept an empty string, and does not support regex or wildcard matching.

PR Focus converts both the text and the user-defined string to lowercase for comparison, making it a case-insensitive comparison.

Apply Filter Logic

When you create a filter, you must supply at least one condition. You can optionally supply multiple conditions for a filter. When you provide more than one condition, you can specify the logic that PR Focus uses to apply the conditions. PR Focus supports the following logical operators:

  • any of: if any of the conditions evaluate to true, PR Focus applies the filter. For example, if you define a username condition and a title condition, and the title meets your condition but the username does not, PR Focus applies the filter. “Any of” means at least one condition must apply. As long as at least one condition applies, the filter applies - even if the other conditions don’t apply.
  • none of: if all of the conditions evaluate to false, PR Focus applies the filter. For example, if you define a username condition and a title doesn’t meet your condition, but the username does, PR Focus does not apply the filter. “None of” means that if any of your conditions do apply, the filter overall does not apply.
  • all of: if all of the conditions evaluate to true, PR Focus applies the filter. For example, if you define a username condition and a title condition, and the username meets your condition but the title does not, PR Focus does not apply the filter. “All of” means that if any of your conditions do not apply, the filter overall does not apply. In other words, all of your conditions must evaluate to true.

Specify the Filter Action

When you create a filter, you specify what action PR Focus should take when a filter applies to a pull request. Available filter actions include:

  • Watch: PR Focus automatically watches the PR on your behalf. It bypasses your Inbox and appears in your Watched PRs list as if you had manually selected to Watch the pull request.
  • Ignore: PR Focus automatically ignores the PR on your behalf. It bypasses your Inbox and appears in your Ignored PRs dashboard as if you had manually selected to Ignore the pull request. Ignored PRs still appear in your main dashboards if you’re the PR author, or if you become a reviewer or assignee. For more details, refer to Ignored PRs: Unexpected Ignore Behavior.
  • Apply a Tag: PR Focus automatically applies the tag you select. The PR appears in your Inbox or relevant lists already tagged, and is available in the Tagged PRs dashboard with your tag applied.
  • Mark important: Mark important is a feature whose supporting functionality is coming in a future release. For the moment, “Mark important” has no visible effect.

Update a Filter

To update a filter:

  1. Go to the Filters menu.

  2. Select Manage Filters.

    Screenshot showing the “Manage Filters” menu option.

  3. Press the Edit Filter button next to the filter you want to change.

    Screenshot showing the “Manage Filters” window with an arrow pointing to the circled “Edit Filter” button.

From the Edit Filter window, you can:

  • Rename the filter
  • Add, remove, or change filter criteria
  • Change the filter logic if your filter has multiple criteria (any, all, none)
  • Change the filter action

When you have finished the filter edits, press the Update Filter button.

Screenshot showing the “Edit a Filter” window with multiple filter criteria, an option to edit or remove each one, an option to add more filter criteria, and an option to rename the filter.

Delete a Filter

To delete a filter:

  1. Go to the Filters menu.

  2. Select Manage Filters.

    Screenshot showing the “Manage Filters” menu option.

  3. Press the Delete Filter button next to the filter you want to remove from PR Focus.

    Screenshot showing the “Manage Filters” window with an arrow pointing to the circled “Delete Filter” button.


  1. Mark important is a feature whose supporting functionality is coming in a future release. ↩︎

4.5 - Pull Request Dashboards

Select from a range of pull request dashboards to get a different view of the work you care about. Start with the default All Pull Requests dashboard, or drill into specific work you care about.

4.5.1 - Tagged PRs

You can apply custom tags to pull requests to track important work. View and filter tagged PRs in the Tagged PRs dashboard.

You can use tags to create your own categories to track important pull requests. You might create a tag to easily categorize pull requests:

  • Going into a specific release
  • Related to a new feature, even across repositories
  • For a specific client
  • Conforming to a certain naming protocol that has significance in your workplace, like “Feature” or “Bug”

You can apply tags to pull requests manually, or create filters to automatically tag incoming pull requests that meet criteria you define.

Once you have tagged pull requests, you can view and filter your tagged PRs in the Tagged PRs dashboard.

Tagged PRs Dashboard

In the Tagged PRs dashboard, each pull request summary displays a list of tags that have been applied to it.

Screenshot showing the Tagged PRs Dashboard with a list of PR Summary rows that display the various tags that have been applied to the PRs

You can filter PRs by tag, and optionally within a date range by one of the available date fields.

Filter PRs by Tag

You can filter PRs by tag using the Tag filter in the upper left-hand corner of the Tagged PRs dashboard. Select a specific tag to view only the PRs related to that tag. Or select the placeholder “Filter by Tag” to clear the tag filter.

Screenshot showing the Tagged PRs Dashboard with the Filter by Tag drop-down menu expanded to show the available tags for filtering

Filter PRs within a date range

You can filter PRs within a date range in the Tagged PRs dashboard. Press the Filter by date button in the upper-right corner of the Tagged PRs dashboard. This opens the date picker.

Screenshot showing the Tagged PRs Dashboard with the Filter by Date options expanded to show the Start Date and End Date date pickers, and the option to select the date field to filter on

Select a start date, and an optional end date. You can specify the type of pull request activity to use in the date filter:

  • Created at date
  • Updated at date
  • Closed at date
  • Merged at date

If a pull request has not yet been closed or merged, the closed and merged dates are nil, so the PR will not show up in either of those filters.

Press the Apply button to view only pull requests where the specified pull request activity falls within the date range. When you’re done, press the Clear button to remove the date filter.

Apply Tags to PRs

You can apply tags to a PR from two places:

  • The right-click context menu available when you’re viewing pull request summaries in a list view. Right-click a PR summary, and select Apply Tags.

    Screenshot showing a PR summary with the right-click context menu option, the “Apply Tags” menu expanded, and a tag called “Consolidation” selected

  • The pull request detail view. Select a tag from the Apply Tags menu in the upper right-hand corner of the detail view, above the repository label.

    Screenshot showing the PR detail view with a tag called “Consolidation” and an arrow pointing to the “Apply Tags” drop-down menu

Any tags that you’ve created appear in this menu, sorted by most recently updated.

When you apply a tag, the pull request summary gets a “Tag” icon.

Screenshot showing a PR summary with an arrow pointing to the “Tag” icon that indicates that a PR has been tagged

The tag appears in the pull request detail view. And the tag is displayed in the pull request summary when you’re viewing the Tagged PRs dashboard.

Remove Tags from PRs

You can remove tags from a PR from two places:

  • The right-click context menu available when you’re viewing pull request summaries in a list view. Right-click a PR summary, and select Remove Tags. Choose the tag you want to remove.

    Screenshot showing a PR summary with the right-click context menu option, the “Remove Tags” menu expanded, and a tag called “Consolidation” selected

  • The pull request detail view. Right click on a tag in this view, and select the Remove Tag option.

    Screenshot showing a PR detail view with an arrow pointing to a “Consolidation” tag circled, where the right-click menu has been opened and the option to “Remove Tag” is selected

The tag is removed from the PR. If no other tags apply, the PR no longer appears in the Tagged PRs dashboard.

Create and Manage Tags

You can create and manage tags from the Tags menu.

Create a Tag

To create a new tag:

  1. Go to the Tags menu.

  2. Select Create a Tag

    Screenshot showing the “Create a Tag” menu option

  3. Provide a name for the tag.

    Screenshot showing the “Create a Tag” window with a tag name “Bugfix” entered into the text field

  4. Press the Create Tag button.

Rename or Delete a Tag

To rename or delete a tag:

  1. Go to the Tags menu.

  2. Select Manage Tags.

    Screenshot showing the “Manage Tags” menu option

  3. Click a tag name to bring up a sheet where you can edit the tag name. This automatically renames the tag in the menus, and on all PRs that have had the tag applied.

    Screenshot showing the “Edit tag text” sheet where the tag name is “Add Tagging”. There are buttons to “Edit tag text” or “Cancel”.

  4. Press the Delete tag button to remove a tag from PR Focus. This automatically untags all PRs that have the tag applied.

    Screenshot showing the “Manage Tags” window with an arrow pointing to the “Delete tag” button.

4.5.2 - Solo PRs

Watch individual pull requests for updates, without watching every PR in a repository.

In addition to watching a repository for every pull request that comes through it, you can watch individual pull requests - without watching the repository. You might want to watch an individual pull request:

  • When the repository is too busy to watch the entire repo
  • When you’re watching your own pull request in a repo you don’t normally visit, and want to know when it has activity
  • When someone is proposing an important patch or update in a repo you don’t normally watch, and you want to know when it’s merged

You can watch these “one-off” pull requests in PR Focus. The app refers to pull requests that don’t come through watching a repository as a “Solo PR.”

How to Watch a Solo PR

To watch a solo PR:

  1. Go to the Pull Requests menu in the menu bar

  2. Select Watch a PR

    Screenshot showing the “Watch a PR” menu option

  3. Enter a GitHub URL for the pull request you want to watch, similar to https://github.com/swiftlang/swift/pull/74908.

    Screenshot showing the “Watch a PR” window, with a URL added and the button to watch a PR

  4. Press the Watch PR button

This validates the PR URL, checks the GitHub permissions to confirm you can access the relevant repository, and enqueues a job to fetch the solo PR details. Once any running jobs are complete, PR Focus gets the PR details from GitHub.

View Updates to Solo PRs

Once PR Focus fetches the solo PR details, it appears in the “Watched” list in two dashboards:

  • In the All Pull Requests dashboard (unless it falls under the rules to become inactive or archived)
  • In the Solo PRs dashboard

PR Focus provides individual repository dashboards to let you focus on a subset of pull requests. If you’re watching a lot of repositories, or highly active repositories, the All Pull Requests dashboard may make it easier to miss updates. The Solo PRs dashboard serves this same purpose for pull requests that don’t fall into a repository dashboard.

PRs in the Solo PRs dashboard are sorted by updated date.

Screenshot showing the “Solo PRs” dashboard, with a single PR Summary for an archived PR in the dashboard

Unlike the repository dashboards and the All Pull Requests dashboard, pull requests never move out of the Solo PRs dashboard when they become inactive or archived. PR Focus assumes that pull requests you felt were important enough to add manually should not “get out of the way” until you manually stop watching them.

Stop Watching a Solo PR

You can stop watching a solo PR the same way you can stop watching PRs that come in through watched repositories:

  • Right click a PR Summary to open the context menu, and select Stop Watching
  • View the PR Details and press the Stop Watching button

However, unlike PRs that come in through watched repositories, when you stop watching a solo PR, PR Focus deletes it from the app. It does not go to your Inbox for you to re-process at a future time.

This is the only way to remove a pull request from the Solo PRs dashboard.

Solo PR Fetch Interval

Unlike watched repositories, you cannot customize the interval to fetch solo PRs. PR Focuses uses the “several times per day” interval to automatically fetch updates to solo PRs. You can manually fetch updates to solo PRs at any time by pressing the Fetch PRs button.

Watch a Repository Where You’ve Added a Solo PR

In some cases, you might watch a solo PR in a repository, and then later decide to watch the repository for all activity. When you Watch a Repository, PR Focus starts treating solo PRs the same as any other pull request that comes in through watching a repository. The solo PR no longer appears in the Solo PRs dashboard, and instead appears in the Repository Dashboard for the repository. If you stop watching a solo PR after you have started watching its repository, it moves to the Inbox for you to re-process at your convenience.

Customize Solo PR Repository Details

When you watch a solo PR, PR Focus creates a “hidden” repository that behaves differently than repositories you watch. It uses the repository name as the repo label on the PR Summary, and selects a random color for the repo label. Unlike a repository you’re watching, PR Focus does not provide the option to customize the repo name or label color for a “hidden” repository.

4.5.3 - Ignored PRs

Ignoring a PR gets it out of your way. You can get it back at any time.

From the PR Summary context menu, or when viewing PR details, you can access a button to Ignore a pull request.

You might want to Ignore a pull request if its status and details don’t matter to you. For example, if you’re watching a repository for user-facing changes, and a team puts up a pull request for internal refactoring, you may want to ignore the PR. When you press the Ignore button, the pull request goes into the Ignored PRs dashboard, which gets it out of your main dashboard views.

While a PR is ignored, but its status is still open, PR Focus continues to fetch updates to the pull request.

Ignored PRs Dashboard

This dashboard is a list of PRs that you’ve ignored, sorted by the repository where the PR originated.

Screenshot showing the Ignored PRs Dashboard with a list of full-width PR Summary rows

You can access the Ignored PRs Dashboard by pressing the Ignored PRs button in the PR Focus sidebar.

The Ignored PRs dashboard does not have a counter. The PR Focus design assumes you do not need to pay attention to ignored PRs.

Stop Ignoring a PR

At any time, you can stop ignoring a PR. You might want to stop ignoring a PR if you have a reason to think you might need to pay attention to it, but you’re not necessarily ready to watch it. When you stop ignoring a PR, it moves out of your Ignored PRs Dashboard and into the Inbox.

To stop ignoring a PR:

  1. Go into your Ignored PRs Dashboard.
  2. Find the PR you want to stop ignoring.
  3. Use the PR Summary context menu or click into the PR Summary to open the PR Details view.
  4. Press the Stop Ignoring button.

If you want an ignored PR to move directly to your Watched PRs list, press the Watch button instead of the Stop Ignoring button. This automatically stops ignoring the PR and moves it directly to your Watched PRs list.

Unexpected Ignore Behavior

PR Focus is an opinionated app designed to prevent you from missing important pull requests that require your attention. It includes some important design decisions that may result in behavior that seems unexpected unless you understand the design rationale:

  • Some PRs may not move to the Ignored PRs dashboard
  • PRs may come back from the Ignored PRs dashboard without you doing anything
  • You cannot delete an open PR - you can only ignore it

PR Not Moving to Ignored PRs

If you try to ignore a PR where you are an assignee, a reviewer, or where the PR is yours, it does not move into the Ignored PRs Dashboard. It stays in the relevant column in the Repository Dashboard and All Pull Requests Dashboard.

This is an intentional design decision to prevent you from missing important work that requires your attention.

PR Comes Back from Ignored PRs

If you have previously ignored a PR, but you later become an assignee or reviewer, the PR moves out of the Ignored PRs Dashboard and into the relevant column in the Repository Dashboard and All Pull Requests Dashboard.

This is an intentional design decision to prevent you from missing important work that requires your attention.

You Can Only Ignore - Can’t Delete - an Open PR

In some cases, you may want to delete a pull request instead of ignoring it. You might want to delete a pull request when you’re absolutely certain you don’t need to pay attention to it.

PR Focus does not allow deleting open pull requests. This is an intentional design decision, as PR Focus assumes you may eventually become a reviewer or assignee on an open pull request. Ignoring a pull request is intended to remove it from the pull requests you need to pay attention to, while preserving the ability to let you know if it moves into a state where you need to pay attention to it.

4.5.4 - Inactive PRs

Stale PRs become inactive after a time interval you set. They move back into your dashboard when updates occur.

Sometimes, a PR sits for a long time without progress. This may be because:

  • A PR is blocked while waiting for external dependencies
  • A PR is waiting for other contributors
  • For business reasons, work on the PR is paused
  • Many other reasons

In these cases, you may still care about the eventual outcome of the PR, but it becomes clutter sitting around in your regular PR Focus dashboards while no activity is occurring. You may not want to Stop Watching or Ignore a PR, but may want to get it out of your way.

This is the case that Inactive PRs solves.

Inactive PRs Dashboard

After some interval, a PR that hasn’t had updates moves to the Inactive PRs Dashboard. This dashboard is a list of PRs that have become inactive, sorted by the repository where they originated.

Screenshot showing the Inactive PRs Dashboard with a list of full-width PR Summary rows

You can click into the PR Summary for an inactive PR to view the PR Details.

A PR becoming inactive is one of two ways in which a PR can move out of:

  • My PRs
  • Assigned PRs
  • Reviewing PRs

The only other way a PR can move out of these columns is when it becomes archived, or if you are no longer an assignee or a reviewer.

You can configure the Days until inactive setting from:

The default value for this setting is 30 days.

Moving a PR Out of Inactive PRs

There is no way to manually move a PR out of the Inactive PRs dashboard and back into your Repository Dashboard and All Pull Requests Dashboard.

When a PR receives updates again, it moves out of the Inactive PRs dashboard and back into your Repository Dashboard and All Pull Requests Dashboard.

If you change the value of the Days until inactive setting to a longer time interval, PR Focus recalculates whether PRs should be inactive and moves any PRs that no longer meet this setting. In this case, PR Focus moves inactive PRs back into your Repository Dashboard and All Pull Requests Dashboard.

4.5.5 - Archived PRs

When a PR is closed, it becomes archived after a time interval you set. You can still view archived PRs.

Some workflows call for you to be able to view PRs after they have been closed or merged. You may still want to see those PRs in your Repository Dashboard or All Pull Requests Dashboard for a period of time after the PR status has become closed or merged.

PR Focus is optimized for this case. PRs do not disappear from your repository views immediately when they get closed. Instead, they remain in your repository views for a number of days until they are archived. The default value for this setting is 10 days, but you can configure the number of days until a PR is archived.

Archived PRs Dashboard

After some interval, a PR that has been closed or merged moves to the Archived PRs Dashboard. This dashboard is a list of PRs that have become archived, sorted by the repositories where they originated.

Screenshot showing the Archived PRs Dashboard with a list of full-width PR Summary rows

You can click into the PR Summary for an archived PR to view the PR Details.

A PR becoming archived is one of two ways in which a PR can move out of:

  • My PRs
  • Assigned PRs
  • Reviewing PRs

The only other way a PR can move out of these columns is when it becomes inactive, or if you are no longer an assignee or a reviewer.

Watched PRs also become archived, which automatically moves them from your Watched PRs list to the Archived PRs dashboard.

Configure the Archive Interval

You can configure the Days until archive setting from:

The default value for this setting is 10 days.

Immediately Archive a PR

You don’t have to wait until a PR moves to archived automatically. You can immediately archive a closed or merged PR:

  • Right click on a closed or merged PR summary in a repository dashboard, and you’ll see the Archive PR option.
  • Enter a PR detail view, and you’ll see the Archive PR option alongside the Watch and Ignore buttons.
  • In the aggregate Inbox, you can press the Perform bulk operations button to enable multi-select. Select multiple closed PRs, and you can archive them all. If you select a PR that is not closed, the Archive button becomes disabled.

This option is not available for open PRs.

Screenshot showing the “Archived PR” selection in the context menu of a PR Summary rows

Un-Archiving a PR

You can un-archive a PR from the PR Detail view. Pressing the Un-Archive button returns the PR to whichever column it was previously in. Note that if the PR was archived automatically, un-archiving it is only temporary until the archive job runs again. For more details, refer to Configure the Archive Interval above.

Screenshot showing the “Un-Archive PR” button in a PR Detail view

Deleting Archived PRs

PR Focus provides the ability to delete archived PRs. When you’re viewing the Archived PRs dashboard, you can press the Delete PRs button to delete all PRs that are archived.

This button is disabled when a background job is running. If you’re unable to press the Delete PRs button, wait for background jobs to finish and try again.

Screenshot showing the “Delete PRs” button in the Archived PRs dashboard

5 - Settings

Configure PR Focus Settings

You can configure app-wide settings from the Settings menu option in the PR Focus menu.

Screenshot showing the “Settings” menu option in the <strong>PR Focus</strong> menu

Selecting this option opens a window where you can customize global default settings for PR Focus for:

  • Accessibility settings to override default navigation or display text instead of glyphs.
  • How long to wait before moving PRs from your main dashboards to the Inactive or Archived dashboards.
  • Options to specify GitHub fetch behavior.
  • Checkboxes for whether to show the Reviewing or Assignee columns.

Accessibility Settings

PR Focus provides accessibility settings to override default controls, and the display of glyphs versus text.

Controls

PR Focus provides the following setting to override default controls:

Screenshot showing the accessibility settings tab with sections for controls and glyphs

Right-click to Navigate to PR Details

PR Focus provides an accessibility setting to override the default navigate to PR details behavior. By default, when you click a PR summary card, you go into a new view that shows you the details for that PR. For people who prefer an alternate behavior, there is a setting to use the right click menu to navigate to PR details.

When you select this setting, clicking a PR summary card no longer opens the PR details. Instead, you must right-click to open the context menu, and select the View PR Details menu open to open the detail view. This option only displays in the context menu when you have this setting enabled.

Screenshot of the right-click context menu with the “View PR Details” option highlighted

Glyphs

PR Focus provides the following settings to override the display of glyphs and display text, instead:

Display text instead of PR status glyphs

When viewing the PR Summary view, and in the PR details view, PR Focus displays a set of glyphs that indicate the pull request status. For details about these glyphs, refer to All Pull Requests/PR Summary/Status.

When you toggle this setting, PR Focus displays text representations of the pull request state instead of the glyph.

Screenshot of a pull request summary with a text “Merged” status circled

Display text instead of review status glyphs

When viewing the PR details view, PR Focus displays a set of glyphs that indicate the review status. For details about these glyphs, refer to View PR Details/Reviews.

When you toggle this setting, PR Focus displays text representations of the review status instead of the glyph. The text colors match the glyph colors.

Screenshot of a pull request detail view with the review status text “Changes Requested” and “Commented” circled

Days Until Inactive/Archive

You can customize how long PR Focus should wait for a PR to be inactive or closed before moving it into the Inactive PRs or Archived PRs dashboards.

The settings default to 30 days until inactive and 10 days until archive.

To customize these settings, select the Archive and Inactive option in the Settings menu.

Screenshot showing the Archive and Inactive Settings option with the values set to the Inactive: 30 day and Archive: 10 day defaults

You can override these app-wide settings on a per-repository basis. For example, if you watch many repositories in which you want to archive PRs right away, but one repository in which you want to leave closed or merged PRs in your dashboard view for a period of time, you can set the global days until archive setting to a low value, and customize the repo where you want it to have a longer value.

For more information about customizing settings for a repository, refer to Repository Settings.

Archive Strategies

If you’re a downstream team and your work starts when a PR is closed, you might want closed PRs to remain in your dashboard longer. If you’re an engineer responsible for the work and you want PRs to disappear right away when they’re closed, you can shorten this setting.

The All Pull Requests and Repository dashboards provide the option to customize sort order in your lists. If you’re a downstream team whose work starts when a PR is closed, you can sort your PR lists by closed date or merged date to find the PRs that are relevant to your work.

For more details about sort options, refer to Sort PRs in Lists

Inactive Strategies

PR Focus considers PRs that don’t get updates for a period of time to be “inactive.” It moves these pull requests to a special dashboard. This gets them out of your main views where they might become “clutter”, and gives you a place where you can easily view pull requests that haven’t been updated in a while to find things that might need your attention.

You might want to set a lower default for when a PR becomes “inactive” if you are someone who is responsible for keeping PRs moving, such as a team lead, a project manager, or someone who works at an agency or consultency. This highlights pull requests that might need help to get moving again.

If you are someone who works in a repository where pull requests commonly go weeks between updates, you might want a higher value for this setting. The work may still be valid and “active” for longer in a slower-moving repository.

For more details about inactive pull requests, refer to Inactive PRs.

Specify the GitHub Fetch Behavior

When PR Focus is running, it uses scheduled jobs to periodically fetch updates from GitHub in the background. You can customize how often to fetch updates app-wide, or on a per repository basis.

Screenshot showing the GitHub Fetching Settings option with the default “Hourly” interval displayed in the picker

If you use the app frequently and want to find out right away when a pull request is updated, you can choose the “several times per hour” option. If you’re only checking PR Focus a few times per day while you’re context switching or between tasks, you might choose a less frequent fetch interval.

You can manually fetch all PRs, or fetch the PRs for a specific repository, at any time using the Fetch PRs buttons in the toolbar.

For more details about GitHub fetching, API rate limits, and repository-specific setting strategies, refer to GitHub Fetch Frequency.

Temporarily Disable Fetching (Coming Soon!)

In some cases, you may want to temporarily disable GitHub fetching. You might not want PR Focus to try fetching if you’re traveling and may be offline, for example, or if you want to minimize app activity to prolong battery life when you’re not connected to power.

PR Focus will soon have an option to temporarily disable fetching. You will still be able to manually fetch PRs using the Fetch PRs buttons in the toolbar, but the automated fetch jobs won’t run in the background.

Customize Lists in Dashboard Views

You can customize whether to show the “Reviewing PRs” and “Assignee PRs” columns in your All Pull Requests dashboard and your Repository dashboards.

Screenshot showing the Show Columns Settings option with the “Show Reviewing PRs” checkbox checked and the “Show Assigned PRs” option unchecked

Check or uncheck the Show Assigned PRs or Show Reviewing PRs checkboxes to show or hide those lists in your dashboards.

This is a global setting that defaults to showing the Reviewing PRs list and hiding the Assigned PRs list.

If you choose the options to not display these columns, but you become an assignee or reviewer on a PR, these columns display in the dashboards anyway. This ensures you don’t miss important PRs where you may be an assignee or reviewer.

You can override these app-wide settings on a per-repository basis. For example, if you watch many repositories in which you are a reviewer, but only one in which you may be an assignee, you may want to leave the global Assigned PRs setting unchecked, and specify it only for the repository where you need this information.

Note that if you specify to show Reviewing PRs or Assigned PRs on a repository basis, but leave the global setting unchecked, the column will display in your All Pull Requests dashboard because it is an aggregate of every dashboard’s settings.

For more information about customizing settings for a repository, refer to Repository Settings.

6 - GitHub API Key

Configure the GitHub API Key

PR Focus uses a GitHub API key to make calls to GitHub. You can view and update the GitHub API key from the Manage API Key menu option in the PR Focus menu.

Screenshot showing the “Settings” menu option in the <strong>PR Focus</strong> menu

Selecting this option opens a window where you can view details about your GitHub API Key, or update it.

Screenshot showing the Manage API Key window

When your API key expires, PR Focus can no longer fetch updates. PR Focus warns you when the API key is close to expiring or if it has expired. You can view the expiration date of the current API key anytime from this window.

PR Focus does not accept API access tokens with no expiration date.

API Key

You can change the API key that PR Focus uses to make API calls to GitHub.

Press the Edit API Key button to provide a new API access token.

For details about generating a GitHub access token, refer to the GitHub Authentication documentation page Manage Personal Access Tokens.

GitHub provides two types of access tokens:

  • A fine-grained access token (currently in beta) which provides more precise control over what the bearer can access
  • A classic access token with less precise control over what the bearer can access

The required permissions for PR Focus to fetch pull request data vary depending on which type of access token you create. If you are not seeing pull requests after adding a repository to PR Focus, verify that your API access token has the appropriate permissions for the repository.

Fine-Grained Access Token Permissions

GitHub’s fine-grained access token provides the most precise control over what a user can access. As a result, PR Focus needs a number of permissions to get all the data it needs. PR Focus requires:

Repository permissions

  • Actions: Read-only
  • Commit statuses: Read-only
  • Contents: Read-only
  • Deployments: Read-only
  • Issues: Read-only
  • Metadata: Read-only
  • Pull-Requests: Read-only
  • Workflows: Read and write (PR Focus does not need write permission, but GitHub does not provide read-only access for Workflows, so Read and write is the only option)

Account permissions

  • Profile: Read and write (PR Focus does not need write permission, but GitHub does not provide read-only access for the user Profile, so Read and write is the only option)

Classic Access Token Permissions

If you’re using a Classic access token, it must have the following permissions:

  • repo read permissions for any repository you want to watch in PR Focus.
  • user read permissions to get your username and avatar for use in the app.

Authorize for SSO

If your organization uses SAML single sign-on (SSO), you must configure SSO for your personal access token after you create it. For more details, refer to the GitHub Authentication documentation page Authorizing a personal access token for use with SAML single sign-on.

How does PR Focus store and transmit the access token?

When you enter the access token, PR Focus saves it securely to your macOS Apple Keychain. PR Focus does not store your access token directly in the app code or otherwise transmit it except to make API calls to GitHub. If you ever want to remove your access token from Keychain, you can find it in the Keychain Access app.

Note that if you remove your access token from Keychain, PR Focus can no longer make API calls to GitHub. This means PR Focus will no longer be able to fetch PR updates or new PRs.

Why does PR Focus need user read permissions?

When you provide an access token during setup, if your access token has the appropriate permissions, PR Focus uses it to create a User Profile in the app for you. It reads your GitHub username and avatar and displays it in this window. PR Focus uses this information to determine whether a PR was made by you, and whether you are a reviewer or assigned to a PR.

If your access token doesn’t have the appropriate permissions, PR Focus can’t fetch your user profile and can’t proceed with the initial user setup.

PR Focus does not currently support having multiple GitHub user profiles. If this is something you need, please file a feature request.

7 - View Logs

View PR Focus logs for helpful details.

PR Focus keeps logs of events in the app while the app is running. These logs disappear when you close the app.

The logs contain information about activity in the app, and can be a helpful resource for debugging unexpected behaviors. When you encounter something unexpected, please check the logs for any relevant error messages.

I’m doing ongoing work to add more log messages and make them clearer. Please let me know if you think something should have appeared in the logs but wasn’t there, or if something appeared in an unexpected or unhelpful way in the logs.

Open the Log View

To view the logs, go to the Logs menu, and select View Logs.

Screenshot showing Logs -> View Logs menu option

This opens the log view, which is a chronological list of activities in PR Focus:

Screenshot showing the PR Focus logs view with a list of log activities and timestamps

The logs can help you identify when the automated fetch isn’t running at the time you expect, what PRs PR Focus is seeing in a repository, and other helpful debugging information.

Sort and Clear Logs

You can sort the log by ascending or descending view. Press the up arrow or down arrow to sort the logs by ascending or descending order.

To clear log entries, press the Clear Log button. This removes all log entries.

If you leave PR Focus running overnight, PR Focus automatically trims logs more than a day old.

8 - Release Notes

Find out about updates to PR Focus.

v1.1 Build 1

Release Date: August 19, 2024

Enhancements

This version of PR Focus contains the following enhancements:

Tag PRs

Introducing: the ability to create custom tags and apply them to pull requests!

You can filter PRs by tags, and optionally a date range, in the new Tagged PRs dashboard. For details, refer to Tagged PRs.

This feature was requested by a member of the beta test group. Thanks for your suggestion!

Filter PRs

You can now create custom filters to automatically Watch or Ignore PRs, or apply a Tag. PR Focus now supports filtering based on PR author username, title, description, or repository.

For developers who are only interested in seeing their own contributions, and don’t want to have to manually watch or ignore PRs, you can Ignore every PR where the PR author username doesn’t match your username. If you become a Reviewer or Assignee, PR Focus automatically overrides your Ignore, so there’s no danger of missing an important pull request.

For more details about filtering, refer to Filter PRs.

This feature was requested by a member of the beta test group. Thanks for your suggestion!

New Accessibility Settings

PR Focus now supports overriding the display of glyphs for the pull request status and the review status. Toggle these new settings to have PR Focus display text instead of these glyphs.

For more details about the new accessibility settings, refer to Settings/Glyphs.

This feature was requested by a user. Thanks for your suggestion!

v1.0 Build 1

Release Date: August 5, 2024

PR Focus 1.0 launched! No changes from the v0.11 Build 1 release candidate.

v0.11 Build 1

Release Date: July 29, 2024

This is the final release candidate for the v1.0 launch. I appreciate any bug reports and feedback before launch!

Enhancements

The theme for this final release candidate is onboarding improvements!

UI Updates

  • Add onboarding flow with carousel of images describing key features.
  • Add styling and additional information to the paywall.
  • Add a little Easter Egg for people who buy the full version of the app.
  • Request review at a few key moments.
  • Add a release notes flow to display info about app updates on first launch after release.
  • Style the About pane with custom layout and more info.
  • Change the “File an issue” Help menu option to “File a bug” to be clearer about the destination.
  • Redesign UI for first time setup view.

Most of this will be invisible for folks who have been using the beta builds, but should be some nice improvements for new folks who are onboarding for the first time.

v0.10 Build 1

Release Date: July 23, 2024

This release fixes a few minor bugs and adds a few small quality-of-life improvements. This is the first release candidate for the v1.0 launch.

The only further changes planned before v1.0 are some onboarding improvements, and any bug fixes that come up in the next week or two. I appreciate any bug reports and feedback!

Enhancements

New Features

  • When in the PR Detail view, added Next and Previous buttons to view the next and prior PR details without having to go back to the dashboard.
  • Are you an eager clicker? This version adds an accessibility setting to only view PR details through the right-click context menu. No more accidentally clicking into PR details!

UI Updates

  • Monolithic App Settings and Repo Settings are monolithic no more! Break up settings into discrete chunks to set the stage for the settings options to grow.
  • “Add a single repo” and “Update repo settings” options now display the label color in the color picker, so you have some idea what color you’re choosing.
  • You can now specify a custom name when you add a single repo, instead of requiring you to do it later through the update settings screen.
  • Other small navigation name and UI fixes for improved consistency throughout the app.

Bugfixes

  • Fix bug where updated comments show as new comments.
  • Fix bug where Inactive PRs badge count did not accurately reflect the number of PRs in the dashboard.
  • Fix bug where edited reviews weren’t updating.
  • Fix bug where daily GitHub fetch job was running too often.
  • Fix bug in Perform Bulk Operations view where the background of the checkbox area did not match the background of the PR summary card if the PR was in a “viewed” state.

v0.9 Build 1

Release Date: July 15, 2024

This release adds a free trial and paywall to PR Focus. People who want to take the app for a spin get 30 days to try it out for free before deciding it they’d like to buy it.

Enhancements

  • Add a free 30-day trial and the ability to unlock the unlimited access version of PR Focus
  • Add a “Buy or Restore Purchases” menu option to the PR Focus menu

v0.8 Build 1

Release date: July 8, 2024

This release represents the final feature set for the public beta and eventual v1.0 release. Any releases between now and v1.0 are intended to be bugfixes or minor UX improvements only - no feature changes.

Enhancements

  • Sort the PRs in the Ignored/Archived/Inactive dashboards by repository
  • Add the ability to watch PRs without watching the entire repository
    • New “Solo PRs” dashboard where you can view all the PRs you’re watching that aren’t affiliated with a repo you’re watching
    • New “Pull Requests” menu where you can access the option to watch a single PR
    • Rename main “All Repositories” view to “All PRs” to include the solo PRs you may be watching, and move it out of Repositories section of sidebar
  • Add a menu option to the Help menu that takes you to the form to email support
  • Add a menu option to the Help menu that goes to the PR Focus social media account
  • Other UI Improvements
    • Use repo custom name (if you’ve provided one) in the Manage Repos view
    • Provide a less-detailed PR row view when performing bulk operations
    • Add to “success” banners that watching a PR or repo enqueues a fetch job which will begin shortly
    • In a PR Row view, bold the Checks, Commits, Comments, or Reviews if a PR has any of those new items
    • Minor adjustments to the condensed PR Row view used when displaying “My PRs”, “Assignee”, and “Reviewing” columns side-by-side to avoid overflowing text labels

Bugfixes

  • Fix a bug where adding a new repo may never fetch PRs for that repo (since v0.6)
  • Override global or custom settings to show the “assigned” or “reviewing” columns if you are an assignee or reviewer for a PR