Repository navigation
Releases
GitHub Monitor 2.9.1
Mentions stopped disappearing
If you have a busy GitHub account, mentions were vanishing from the list
without anybody having read them. They were not being read — they were
being pushed off the one page the app asked for.
The app fetched the newest fifty unread notifications and nothing more.
On the account this was found on, that page held 27 review requests, 21
threads from watched repositories, and a single mention — while 55 more
mentions sat further down a stream 52 pages long. Page one reached back
to a quarter to two that same afternoon. Every new review request shoved
the window along and took a mention with it.
The app now reads the whole stream, following GitHub's own cursor until
there is no more of it. The list on that account went from 1 mention to
56.
It has not become expensive. GitHub answers "nothing changed" to the
first page when nothing in the stream has moved, and nothing having moved
means the pages behind it have not moved either — so the ordinary poll
still costs a single request. The walk is paid for only when there is
something new to walk. Where Repository I watch and Team mentions are
both switched off, it asks GitHub to leave out everything you are not
part of, which halves the walk again.
If the stream is longer than the app will walk in one go, the list says
so at the bottom rather than looking complete.
Install
brew tap sidler/tap
brew trust --cask sidler/tap/githubmonitor
brew install --cask githubmonitorAlready have it? brew upgrade --cask githubmonitor.
Or download the zip below, unpack it and move GitHubMonitor.app to
/Applications.
Signed with a Developer ID and notarised by Apple, with the ticket stapled
to the bundle.
GitHub Monitor 2.9.0
The ticket, beside the code
A review window's right-hand strip now opens with what the pull request
answers. One line per linked ticket — number, title, and whether it is
still open — with the rest folded under it: its labels, who raised it,
how old it is, and the whole of what it says. From there you can jump to
it in a list or open it on GitHub.
It used to be in the title bar, behind a popover. A popover is a thing
you open, read and put away; the ticket is what the diff is being read
against, and wanting it beside the code for the length of a review is
wanting it on the strip. The popover stays for list rows, which have no
strip.
Folded by default, because a ticket with six headings would push the
branch, the checks and the reviewers off the screen. The fold line
carries the title, so closing one does not lose which ticket it was.
The reviewer tables count their own window again
Reviews given and Time to review were listing people who had not
reviewed anything in years, and a sixth of every number on them came from
before the window printed at the top.
GitHub has no way to search for "reviewed in March", so the app asks for
pull requests touched in the window and is meant to apply the window
itself afterwards — which it never did. One pull request opened in 2022
and labelled last week brought its whole reviewing history into this
year's figures.
On a repository of 5,415 pull requests over twelve months, 2,837 of the
17,091 reviews counted had been submitted before the window began, the
oldest in October 2021. Two of the twenty-one people listed had reviewed
nothing inside it at all. Expect names to disappear and counts to drop;
the medians rise a little, because the old reviews were quick ones and
were flattering the numbers.
While it was open: a pull request still being argued over had its
earliest thirty rounds read instead of its most recent.
A calmer menu bar panel
The pull request rows there have lost their labels and their reviewer
tallies. The panel is 380 points wide and shows five rows of a list of
sixty; what it is for is deciding whether to open the window. What is
left is what answers that — the review decision, the checks, a conflict,
and the draft mark. The window still shows everything.
Install
brew tap sidler/tap
brew trust --cask sidler/tap/githubmonitor
brew install --cask githubmonitorAlready have it? brew upgrade --cask githubmonitor.
Or download the zip below, unpack it and move GitHubMonitor.app to
/Applications.
Signed with a Developer ID and notarised by Apple, with the ticket stapled
to the bundle.
GitHub Monitor 2.8.0
Issues: what they contain, and what they are part of
An issue's detail pane now lists the issues filed under it, with how far
through them it is — "6 of 11 done" and a bar — and names the one it is
filed under itself. Clicking either previews it in the same panel the
linked pull requests open, rather than sending you to a browser. Long
lists fold after the first twelve.
The rows carry the count too, so a list of epics can be read for who is
nearly done without opening any of them.
Press a label to see only those rows
In both lists. The same bargain the legend at the bottom of the window
makes: the mark you read a row by is the mark you press. What the list is
narrowed to is named at the top, beside the grouping and the sort, and can
be cleared from either end — press the label again, or the chip at the
top. It narrows alongside the legend rather than instead of it, so "tagged
Lloyds and nobody has answered" is one question.
Pull request rows carry their labels now too, at the right-hand end of the
line. Both kinds of row are laid out the same way: what the row is and
what has happened to it on the left, the labels at the far right.
A sixth trend chart: open pull requests
How many stand open at the end of each period, and how many of those were
still drafts. Counted from the events that moved each pull request in and
out of draft rather than read off today's flags, so a draft that has since
been marked ready still counts as the draft it was.
The reviewer bars say what they mean
A legend over the rows of Reviews given and Time to review gives the
bar its scale and names the three steps the speed table colours by.
Fixed
- An issue with a lot in its detail pane made the window taller — an epic
carrying twenty-two linked pull requests pushed it from 680 points to
2067, off the bottom of the screen. The pane scrolls; it no longer has a
say in how tall the window is. - A preview stopped after four paragraphs, often at an empty heading. It
shows the whole text now; the panel scrolls and can be dragged taller. - Opening Workload before the token had been read left "No GitHub token
configured" standing until you pressed Try again.
Install
brew tap sidler/tap
brew trust --cask sidler/tap/githubmonitor
brew install --cask githubmonitorAlready have it? brew upgrade --cask githubmonitor.
Or download the zip below, unpack it and move GitHubMonitor.app to
/Applications.
Signed with a Developer ID and notarised by Apple, with the ticket stapled
to the bundle.
GitHub Monitor 2.7.0
- Two new views under Workload: who does the reviewing, and how long
the rest of the team waits. Reviews given ranks people by the pull
requests they read; Time to review by how long an answer takes, with
the mean, the slow tail and the requests that went unanswered beside
it. Over 30 days, 90 days or 12 months. - All four Workload views are now one table. Named columns, a bar in
the row, and a footer under each of them saying how its numbers are
counted.
Install
brew tap sidler/tap
brew trust --cask sidler/tap/githubmonitor
brew install --cask githubmonitorAlready have it? brew upgrade --cask githubmonitor.
Or download the zip below, unpack it and move GitHubMonitor.app to
/Applications.
Signed with a Developer ID and notarised by Apple, with the ticket stapled
to the bundle.
GitHub Monitor 2.6.0
-
Press a symbol in the legend to show only those rows — the failing
checks, the conflicts, the ones still waiting on a reviewer. What the
list is narrowed to is named at the top of the window, beside the
grouping and the sort, and can be cleared from either end. It lasts
while you are looking and is not saved. -
Side-by-side scrolls smoothly through a review of many small files.
A pull request of more than sixty-four files threw away everything it
had worked out, over and over, and redrew the whole window on every
frame of a scroll. -
Closing a review, or quitting, asks about remarks written but not
added, and keeps them as unsent remarks if that is what you want. -
Several remarks can be half-written at once, each on its own line,
and they survive turning to another file: a box stays where it was
opened, with what you typed still in it, and is there again when you
come back.
Install
brew tap sidler/tap
brew trust --cask sidler/tap/githubmonitor
brew install --cask githubmonitorAlready have it? brew upgrade --cask githubmonitor.
Or download the zip below, unpack it and move GitHubMonitor.app to
/Applications.
Signed with a Developer ID and notarised by Apple, with the ticket stapled
to the bundle.
GitHub Monitor 2.5.0
- Remarks can be formatted without typing markdown. Buttons above the
box for bold, italic, code, links, quotes and lists, with ⌘B, ⌘I,
⌘E and ⌘K, and a preview of what will be sent. - Backticks and accents can be typed in a remark again. A key that
waits for the next one — which on a German keyboard is how a backtick
is typed — was being dropped before it became a character. - Large diffs open and scroll faster, with files of a few thousand
lines no longer juddering. - A diff of many files scrolls without stalling. What each file needs
is worked out while you read the first one, starting with the file you
opened. - A pull request that has been pushed to is fetched again, so the
diff shows the same commit as the list of commits beside it. - An open diff says when the pull request has moved on, with a button
to fetch it again.
Install
brew tap sidler/tap
brew trust --cask sidler/tap/githubmonitor
brew install --cask githubmonitorAlready have it? brew upgrade --cask githubmonitor.
Or download the zip below, unpack it and move GitHubMonitor.app to
/Applications.
Signed with a Developer ID and notarised by Apple, with the ticket stapled
to the bundle.
GitHub Monitor 2.4.0
-
The token's description in Settings lists everything the app writes
with it: remarks and replies, reviews, resolving conversations, labels,
viewed ticks and merges. -
Reviews open in their own window, with the code running to the
edges. -
Several reviews at once, as tabs. A tab shows a dot while it holds
remarks you have not sent. -
The pull request's details beside the diff, on ⌥⌘I: description,
conversation, commits, checks, reviewers and the merge button. The edge
can be dragged, and the width is remembered. -
The code around a hunk, fetched from GitHub. A row between the
hunks says how many lines are hidden and brings them in on a press. The
file header has a button for the whole file. -
Conventional comment labels above the writing box — issue,
suggestion, praise and nine more, with blocking, non-blocking
and if-minor. -
A shut conversation shows its opening remark beside the count.
-
The file tree marks the files that hold remarks, and your own
unsent remarks in purple. -
Badges in comments are drawn as badges.
-
Files with Windows line endings keep the usual line height.
-
The tab bar leaves the list's title visible.
Install
brew tap sidler/tap
brew trust --cask sidler/tap/githubmonitor
brew install --cask githubmonitorAlready have it? brew upgrade --cask githubmonitor.
Or download the zip below, unpack it and move GitHubMonitor.app to
/Applications.
Signed with a Developer ID and notarised by Apple, with the ticket stapled
to the bundle.
GitHub Monitor 2.3.1
-
What was said about a pull request is now shown, not just counted.
The pane read the conversation tab's total and stopped there, so a
remark nobody had hung on a line of the diff -- a question about the
approach, an objection, the sentence that decides whether the thing
gets merged -- could only be read in a browser. It now reads the same
way the issue pane always has: the newest few under the description,
with "N older on GitHub" when there are more. -
A remark that will not fit on one line takes two. Somebody else's
comment was sometimes cut off at the right of the column with an
ellipsis. The thread was never too narrow — a paragraph was told how
wide it might be and nothing about growing downwards, so one holding
something unbreakable, a URL or a long path or a code span, was given
a single line's height and had to truncate. Ordinary prose wrapped,
which is why it only happened sometimes. -
Settling a conversation folds it there and then. Whether it
arrived folded was decided once, when the diff was built, so a
conversation resolved while you were looking at it stayed open until
the next time. Unsettling opens it again, and the chevron still
overrules both — a conversation you opened by hand stays open. -
The folded line is blue, not grey. Drawn in the secondary label
grey it sat among grey source-code comments and disappeared into
them. It is a cyan now, far enough from the blue that marks an
unsettled conversation that the two do not read as one mark, and dark
enough to clear 4.5:1 on every ground the diff draws on. -
The list of names is not painted over any more. Typing
@in a
remark showed a list with the diff's coloured lines running through
it, which read as transparency and was not: the list hangs out of the
box it belongs to, and the rows below that box are painted after
it, straight over the part that had escaped. Leaving your own bounds
does not change where you sit in the painting order. The row holding
an open box is lifted above its neighbours now, and so is a
conversation being replied to, which holds the same box. -
A comment in the code stays a comment. The prose inside a
docblock was syntax-highlighted as code, so any word that happens to
be a keyword — and, for, return — came out purple in the middle
of a sentence. The diff hands the highlighter one line at a time, and
every line after the opening/**arrived with no memory of being
inside anything; it carries that now. A//inside a string still
opens nothing, and a PHP attribute is still an attribute. -
A diff with a conversation on it scrolls like one without. The
arithmetic that works out which line each conversation hangs off was
redone from the raw patch every time the view was drawn — and the
view is drawn again whenever the pointer crosses a row. It is the one
piece of a patch's reckoning that runs only when somebody has
commented, which is exactly why a commented file scrolled worse than
the same file without one. On a nine-hundred-line patch that was
three quarters of a millisecond a go; it comes from the cache now, at
a fiftieth of the cost, and the line numbers beside it with it. -
The diff's header fits on one line. It led with 6 files changed
in bold, which at any ordinary window width wrapped onto two lines
and pushed the rest along. The number is already in the tick count
beside it, in the pager, and in the tree down the side; the pager now
carries the weight instead, and nothing in the bar may wrap. -
Escape closes the box, and nothing further out. Unhandled, it
travelled on to the diff, which took it for "put this away" and shut
the whole overlay — with the half-written remark in it. It now means
the innermost thing on screen: the list of names where one is up, the
box once it is gone, the diff only when neither is. -
The list of names is opaque. The window's own background colour
is not, so the code behind it showed through the logins — unreadable
in exactly the place it had to be read. -
The caret is in the box when it opens. It is opened by somebody
who means to write in it — the plus in the gutter, or Reply on a
conversation — so asking for a click into it first was a click for
nothing. In a box that already holds something, a reply being
reworded or a remark being edited, the caret goes to the end of it.
Install
brew tap sidler/tap
brew trust --cask sidler/tap/githubmonitor
brew install --cask githubmonitorAlready have it? brew upgrade --cask githubmonitor.
Or download the zip below, unpack it and move GitHubMonitor.app to
/Applications.
Signed with a Developer ID and notarised by Apple, with the ticket stapled
to the bundle.
GitHub Monitor 2.3.0
-
A pull request's commits, where they cost nothing until you ask.
The count sits beside the other numbers under Changes — it comes
free, since the pane's own query already reads the newest commit for
its checks. The list underneath is shut when a pane opens and fetches
on the first click, because a pane is opened by arrowing down a list
and a request per row is a rate limit spent on nothing.Newest first, with the head commit marked: the question somebody
coming back to a review asks is what arrived since. Each row carries
that commit's own checks, which is what makes it more than a history
— it says when the pull request went green. A click opens the commit
on GitHub. -
An issue's type and its milestone stop pretending to be labels.
They sit in the same line of chips and used to open the label picker
along with everything else — so clicking Epic opened a picker that
neither held it nor could, GitHub having no way to set a type that
way. Only the labels and the tag at the end open it now. They all
still wrap as one line, which is what that line is for. -
Taking a label off sometimes did nothing — on screen. The change
was read from, and written to, the detail alone, while the pane falls
back to the list's own copy of an issue's labels whenever the detail
has none. So the chip could stay where it was while GitHub went ahead
and removed the label: the app and the repository disagreed, and the
app was the one that looked right. It now reads what the pane reads
and writes to both, which also means the row in the list follows a
change instead of waiting for the next refresh.
Install
brew tap sidler/tap
brew trust --cask sidler/tap/githubmonitor
brew install --cask githubmonitorAlready have it? brew upgrade --cask githubmonitor.
Or download the zip below, unpack it and move GitHubMonitor.app to
/Applications.
Signed with a Developer ID and notarised by Apple, with the ticket stapled
to the bundle.
GitHub Monitor 2.2.0
-
The list you are looking at, in the browser, from the bottom bar.
A small button beside the refresh arrow opens the same list on
github.com's own Pull requests or Issues page — for the things
this app deliberately does not do: editing a query by hand, bulk
actions, or showing somebody else what you are looking at. It is
built from the search the app actually sent, so the two cannot
disagree: the repository filter is in it, a relative date like
"closed in the last week" is already resolved, the ordering is
carried across where GitHub can be told it, and a list that hides
drafts hides them there too. Standing on one repository's entry in
the sidebar, the link opens that repository's share of the list
rather than the whole of it. On Mentions it opens your notifications;
on the chart pages, which have no search behind them, there is no
button. -
⌘R reloads the page you are looking at. It always asked for the
lists, whatever was on screen — so on Workload, Trends and My Trends
it did something real and invisible: the lists came in behind a chart
that did not move, which from the outside is a key that does nothing.
Each of those pages already had its own reload button; ⌘R now makes
exactly the call that button makes. Everywhere else it reads the
lists, as before. Reported by @marcreichel in #1.
Install
brew tap sidler/tap
brew trust --cask sidler/tap/githubmonitor
brew install --cask githubmonitorAlready have it? brew upgrade --cask githubmonitor.
Or download the zip below, unpack it and move GitHubMonitor.app to
/Applications.
Signed with a Developer ID and notarised by Apple, with the ticket stapled
to the bundle.