Today Github has become not only the hub for all open source projects but also the goto tool for most technology companies. Although the workflows and requirements for the developer teams working in companies may vary a lot from the open source community, Github’s offerings are ubiquitous. However, there are some ways to supercharge your workflows further if you are working in a high-output development team.
There are thousands of Github apps and extensions available today on Github marketplace. Most of them are centered around improving developer productivity. There are a wide variety of such tools to boost code review process, continuous integration, build and deployment automation, project management, security or monitoring. Finding and integrating the right tools can increase developer productivity with as much as 2x. Here’s some of the tools we found on Github marketplace that can visibly move the needle for the most teams.
Many teams already use Slack today, adding a Github integration for Slack ensures that your team stays on top of all the action happening, and be notified when they have pending code reviews. The app is managed by Github themselves. Although, if you are working in a big team this can easily get very noisy. Therefore it is important to tune your notifications to cut through the noise. Slack for Github offers a bunch of notifications including new commits, new pull requests, new issues, code reviews, new releases and deployment statuses. They also recently launched the Slash commands to open and close pull requests and issues.
ImgBot automatically optimizes your images using lossless compression. If your team is specifically working on a web application, fast load times are very important for the user experience. With ImgBot you can be certain that your images are optimized without sacrificing the quality of images. ImgBot reviews your source code after you merge your new image files and sends a pull request with all the images optimized. It also crawls your source code the first time you install the app to retroactively update existing images. It offers a peace of mind for your media assets and one thing off the plate of developers.
How many hours do you struggle to keep your builds green or waste hours with broken builds? MergeQueue is a new Github collaboration tool that enqueues your pull requests to be merged sequentially. Github also recently launched an auto-merge feature that enables developers to automatically merge after CI is complete, but misses the cases where multiple developers can collectively cause build breakage. MergeQueue works with any type of CI that your current Github environment supports.
Codecov provides great visibility into the source code coverage. The tool has come a long way, and now offers support for pretty much every programming language. You can define the requirements of coverage percentage before a PR can be merged into the main repository. It also gives you coverage reports posted as comments on the PR itself.
CodeFactor offers static analysis for your code. They also support most of the common programming languages. It’s a great way to keep your code quality high without sacrificing developer time to do thorough code reviews. It is also a great way to identify silly mistakes before they make it to the main source branch.
Stale bot is managed by Github themselves. It automatically closes the stale PRs and issues after a period of inactivity. The bot also has a great feature where it first labels the PR as stale, reminding folks that this change would be closed if no further action is taken. And then eventually closes the change after a duration of inactivity. A simple configuration file helps you define the duration of flagging something as stale and the duration of inactivity to close the PR or issue.
Many of you may already be familiar with the Dependabot that helps keep all your dependencies up to date. When it identifies a stale dependency, it creates a pull request to update the build configuration to the latest version. It manages the versioning using the semantic versioning server called semver. Dependabot is now officially managed by Github and is natively supported without any apps needed. All you need to do is set a dependabot.yml file in your root directory.
There are clearly a variety of Github apps, and there may not be a one-size-fits-all approach, but we have found using this set of tools puts a lot of manual work on autopilot and frees up time for developers to do more meaningful work. Configuring some of these tools may feel time consuming, but one time configuration can yield a lot of saved hours for your team.
If you have found any other interesting Github apps, please leave a comment or DM me, I would love to check them out and update my list.