Recommended GitHub Integrations for 2020

IDE integrations, Github bots, issue trackers and much more — to help you make the most out of GitHub.

GitHub is probably one of the best-known platforms in our community and most likely, one of the most used ones (being right up there next to others like Stackoverflow). They allow you to publish your projects, manage them and your team through them and even find others to help on their open-source endeavors.

One thing we usually don’t really pay as much attention to is their ability to integrate into other systems. That’s right, GitHub isn’t just the place where you put your projects for others to see, it can act as a stepping stone for a lot of other platforms and systems out there and in this article, I’m going to show you, what I think, are the top 10 integrations with GitHub you can find (and probably use as well).

1. IDE integration

Every developer needs one, you’re not doing it right if you don’t have an IDE, so let’s start here.

There are several IDEs out there, depending on your programming language, but some of the most common ones have the ability to include plugins or extensions and because of that users have decided to add some features that integrate with GitHub in different capacity.

Here are some examples:

VSCode

Leaving aside the plethora of extensions that are compatible with Git alone, there are some that allow you to interface with GitHub’s pull request API, such as: GitHub Pull Requests

This extension allows you to review and manage Pull Requests for your repositories right there, from inside the IDE. If you’re running projects that have a heavy load of PRs, this might be an interesting option to consider.

Sublime Text

This is another one of those all purpose IDEs that was very popular before VSCode and I think many still use it.

And as before, there are a lot of git-specific plugins you can use, but if we want to go GitHub-specific, you have sublime-github

This one gives you access to features such as opening a gist direclty on the editor window, or creating a new gist from your selected code. Very useful for quick and easy actions that through this plugin can save you a lot of time.

IntelliJ

Finally, the last IDE I want to cover is IntelliJ another very common IDE that is compatible with many different programming languages.

This IDE provides integration out of the box, all you need to do is enter your GitHub account information and then start interacting with the different features. You can create or clone projects, open the version of a file directly in GitHub (i.e if you’re working on a particular file and need to check against the original GitHub version, you can do it with a few clicks) a even create new Gists directly from the IDE.

2. Issue tracker

Another interesting feature that GitHub provides, is the ability to deal with project issues using their API, which means there are several options out there you can use to expand on that concept and have an full blown issue tracker working on top of GitHub.

This is probably one of the best platforms working on top of GitHub issues and expanding its features.

With Glo Boards, you not only can visualize the issues on a kanban board, you can also directly schedule them using a very intuitive UI by drag & dropping the issues into a calendar.

If you’re trying to handle a team (especially now with the high demand on remote team management skills) this option is a simple and powerful one to organize the work to be done.

3. Bots

Bit.dev is a popular cloud component hub. It’s a place to publish, document and organize JS components (React, Angular, Vue, etc.)

Using Bit, individual components can be published from any codebase/repository. That means it is not only a tool for building design systems but also a tool for component collaboration.

Exploring published React components on bit.dev

Bit has recently come out with the new BitDevBot, a Github bot that automates pull-requests to repositories with imported components. So, whenever a component gets updated, all relevant repositories are prompted to merge the new changes.

That’s not only a way to ensure consumers of components never miss out on important updates but also a way to receive component updates while keeping local changes made to a component in a specific project.

Example: an automated PR

Slack

A very popular platform for this type of interaction is Slack, after all, many companies tend to use slack rooms to have their employees chat with each other and share information based on the topic of each room.

The developers from GitHub have released an integration with Slack, allowing you to see details from a repo based on a single link, subscribe to a repository with a single command or manage issues as if it was you having a conversation with a collegue.

4. Continuous Integration

When it comes to continuous integration solutions, the market has several great options and almost all of them have some sort of integration with GitHub.

This CI/CD integrates with GitHub allowing you to monitor their pipelines directly from within the GitHub UI. You can find the integration directly within GitHub’s marketplace.

Yet another option for a continous integration & deployment platform that integrates natively with GitHub.

If your team is using GitHub for their main versioning control platform, integrating it into a TravisCI pipeline and automating the entire integration & deployment process is as easy as clicking in a few links.

5. Vulnerability

Sometimes having someone on your team check your code for known security vulnerabilities or even anti-patterns that can be exploited is not an option. Lucky for you, there are several options out there that integrate with our favourite version control platform.

Compatible with six different programming languages (including JavaScript and Python), this tool will automatically check your code for over 1600 different potential vulnerabilities before they reach production.

Instead of focusing on developers, this integration is meant for devops, to help them check for vulnerabilities on their configuration files.

For instance, it’ll look for things like AWS CloudFormation Templates, HashiCorp Terraform templates, etc and scan them in order to check for potential vulerabilities. This is a must-have, specially if you’re trying to automate the entire deployment process through GitHub and any other of the deployment platforms that integrate with it.

6. Code review

GitHub already has several code review features included, especially as part of their Pull Requests UI.

That being said, there is nothing wrong with integrating some applications that can automate the process and at least, check your code for obvious problems and let the humans review your code and find the actually relevant issues (such as problems with the intended logic for a function).

One such application is DeepSource, which analizes your code and checks for several potential problems, but unlike LGTM and Prisma Cloud, these problems are related to potential bugs, performance issues and others. They even go as far as auto-generating issues for your problems and suggesting solutions for some of them.

7. Dependency management

Dependency management is a big part of our day-to-day tasks as developers, wether we realize it or not. Long gone are the days where you had to re-invent the wheel evertime you started a new project, now we’re reusing code left and right.

But who’s to say we can trully trust the owners of our dependencies? Who’s to say that code is perfect and has no bugs or performance issues?

Although not the only one, one language that’s been suffering for a while of a sub-par dependency management strategy is Node.js, and here is an integration you might be interested in looking at: DepChecker-Bot

It’ll analize your npm dependencies and give you warnings about potentially dangerous ones. Wether you’re using Node or any other dependency-heavy languge, not having an automated check of your environment is definitely a naive way of approaching development.

8. Automation

Almost all of the integrations in this list perform some kind of automated task, after all, that is something we all want: more results for less work. Who doesn’t want that?

HTML/CSS to Image

Need a screenshot of your site? Integrate with HTML/CSS to Image and get an image of how you would render inside Google Chrome.

Mergify

Need to react to a Pull Request? Maybe automate how the PR is merged when it meets certain criteria? Mergify is your application. It’ll help you remote some of the chores of dealing with PRs on a daily basis. If your project is active and has you dealing with PRs everyday, consider adding something like this.

9. Create issues from your TO-DO comments

Leaving a comment on your source code with a note for you to fix things in the future is pretty common. The good’ol “To-Do” comments, that more often than not, are left untouched. Ideally, we would be able to take care of those comments down the line, but since they rearely get turned into actionable items on a backlog, they get ignored and then forgotten about.

This integration helps us in that regard, since everytime you push code with one of those comments, it’ll get turned into a GitHub issue: TODO to Issue

You can customize it to work for any given language, since it requires you to create a configuration file, where you set the characters used to define a comment.

10. Heroku

The final integration with GitHub I want to cover, is that of Heroku, this platforms allows you to deploy and run your application wihtout having to worry about any type of infrastructure or custom deployment scripts.

Heroku takes care of everything for you and with this integration you can automate succesfully merge branches to be deployed, or even have review apps, compiled from each PR received for you to test manually in case that is part of your deployment flow.

Conclusion

That’s it, that’s my Top 10 integrations, did you know all of them? Did I miss your favourite one out? Leave a comment below and share your experience with others. There are over 1000 integrations available, so I probably left some out.

Thanks for reading and catch you on the next one!