Engineering

Manage GitHub issues in chat with Abbot

An important Abbot benefit is it brings the ability to do work where discussion about work is already happening.

For example, if you’re in a discussion about an experimental branch of code, someone might suggest deploying it to a test environment. You can use the deploy skill to deploy right away. Even better, everyone in the discussion sees that you did it and how you did it. It’s a powerful shared context.

What about when you’re discussing an issue in chat? Wouldn’t it be nice to be able to assign it to a user in chat? Yes it would. And now, there’s a skill for that, the github skill.

See it in action

Every github command requires that you specify a repository. But that can be tedious and Abbot is all about reducing tedium. So let’s set a default repository.

@abbot github default is aseriousbiz/blog

This sets the repository aseriousbiz/blog as the default repository for the current room. With that, we can triage issues.

@abbot github issue triage
Screenshot showing the github triage and assign commands

This lists up to 20 unassigned and opened issues in the specified (or default) repository.

Why twenty? It’s a manageable number to list in chat. But the real reason is a limitation in the client library we’re using has a design flaw and it’s this guy’s fault.

If you want to triage a different repository, just specify the repository.

@abbot github issue triage for haacked/haacked.com

Note that the preposition for is optional here, but it feels natural to me.

Let’s drill into a specific issue.

@abbot github issue #123

Note that the # sign is optional here, but it doesn’t feel right to me to omit it when discussing GitHub issues.

Now after a bit of disscussion in chat, we’ve decided to assign it. We can assign it to a GitHub username.

@abbot github issue assign #123 to haacked

You can also assign it to a chat user! This has the benefit of mentioning the user at the same time the issue is assigned to them.

@abbot github issue assign #123 to @phil

If Abbot doesn’t know @phil’s GitHub username, the skill will ask for it. You can set it like so.

@abbot github user @phil is haacked

And if GitHub knows your own GitHub username, you can ask GitHub for issues assigned to yourself.

@abbot github issues assigned to me

Again, this is limited to twenty.

What about GitHub’s Slack Integration

The github skill is a nice complement to GitHub’s Slack Integration. I recommend installing both! There’s some overlap between the two, but one nice thing about the github skill is you have access to the source code and can easily tweak it to fit your own workflows. And it’s easy to map your GitHub user to your chat user.

Also, the github skill works in Discord and Microsoft Teams! At the moment, it’s a small taste of the types of things you can do with Abbot. We plan to add a lot more usefulness to this skill.

Using an alias to make it shorter

The github skill will grow to do a lot. So some of the commands can start to get long. But if you use them often, you can use Abbot’s alias feature to make things a little more ergonomic. For example, if GitHub is the primary place where you manage issues, you could do this:

@abbot alias add issue github issue
@abbot alias add issues github issues

Now you can omit the github part when managing issues:

@abbot issue #123
@abbot issues assigned to @shana
@abbot issue triage

Lets make it better, together!

If you want to try this out, go to https://ab.bot/ and install Abbot. Then visit our package directory and install the github skill. That’s it!

Abbot does not yet have GitHub integration for source control, but we created a repository for some of our packaged skills to make it easy to collaborate with others. So if you have some improvements to make to the skill, send us a pull request! Or log an issue if you have improvements you’d like to see.

Recent Posts

Product

Have a chat with your Operations Toolkit

Product

(re)Introducing Abbot - a Copilot for Customer-Facing Teams

Engineering

That Shouldn't Happen - UnreachableException in .NET 7

Product

Automated Escalations with Abbot

Company

Seriously SOC 2 Compliant