I Tested These GitHub Apps So You Don't Have To
Published: 2020-10-17 18:38:10

<figcaption><span>Cover Photo by <a href="https://unsplash.com/@markuswinkler?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Markus Winkler</a> on <a href="https://unsplash.com/s/photos/github?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></span></figcaption>

GitHub is one of the most well-known repository hosting platforms in the open-source community. One feature that they provide over other hosting platforms is the discovery, ease-of-use and integration of 3rd party apps. Some of these apps are for project management, continuous integration, and even issue labelling. With so many apps to choose from, which one should you use for your next project?

To save you the trouble, I compiled a list of apps that are free for open-source projects and have good integration with GitHub.

# Dependency Management ⚙️

Managing dependencies can be a pain, you don't want to "reinvent the wheel" and write everything yourself. At the same time, you're not sure which version of the project is usable or has vulnerabilities. Fortunately, these apps automate updating your dependencies with the update details while scanning [CVEs](https://cve.mitre.org/) for known vulnerabilities in their code base.

1. [Dependabot](https://github.com/marketplace/dependabot-preview)

Dependabot has recently been integrated into GitHub directly and provides seamless feedback in pull requests, dependency scanning, and vulnerability scanning. The process of setting it up is so simple I'd encourage all of your GitHub projects to have it set up!

![Dependabot Automated Pull Request to Update Dependency](https://dev-to-uploads.s3.amazonaws.com/i/8m53zza8fc1uwlfu5i5o.png)
<figcaption>Dependabot automatically opens a pull request to update your project dependencies based on your requirements</figcaption>

2. [Renovate](https://github.com/marketplace/renovate)
3. [Snyk](https://github.com/marketplace/snyk)

# Code Quality🔥

If you're just starting your programming journey, you may not have experienced the gruelling feeling of submitting a pull request and having a peer or senior review your code. Worry not, now you can have a robot tell you how bad it is! Jokes aside, static analysis for code has come a long way, and these apps below utilize common linters and rules to determine the "quality" of code (as in how much of the rules you have not broken, yet).

1. [Codacy](https://github.com/marketplace/codacy)

Codacy was the first automated code quality analysis tool I have used (in 2 projects) and I like its website view with many detailed charts and breakdowns as well as custom integration to GitHub pull requests.

![Codacy Pull Request Review](https://dev-to-uploads.s3.amazonaws.com/i/mz3n9x7v6jk1j927oz34.png)
<figcaption>Codacy can break down your pull request issues and hotspots to understand how "quality" it is</figcaption>

2. [CodeBeat](https://github.com/marketplace/codebeat)
3. [Code Inspector](https://github.com/marketplace/code-inspector)

\* I have not tried the second and third options but they seem to provide the same functionality as codacy

# Code Coverage 🔍

Coverage is the percentage determined by a code analysis tool for the amount of code that has test cases. To be honest, I would ignore the percentage for your personal projects but it's nice to have.

1. [Codacy](https://github.com/marketplace/codacy)

Codacy provides an all-in-one analysis suite that includes an optional coverage report aggregator. Either manually or using its GitHub actions to send our code coverage report to their site allows a visual representation of your codebase coverage changes overtime!

![Codacy Coverage Over Time Graph](https://dev-to-uploads.s3.amazonaws.com/i/8x947fzxpmtme53fwtyn.png)
<figcaption>Codacy stores the submitted coverage reports to produce charts of code coverage trends over time</figcaption> 

2. [Codecov](https://github.com/marketplace/codecov)
3. [Coveralls](https://github.com/marketplace/coveralls)

# Security 🔒

Security is a sensitive topic which everyone talks about after the product has been shipped. Instead, these apps automate analysis for common vulnerabilities to integrate DevSecOps (development/security/operations) directly into your development pipeline.

1. [CodeQL by GitHub](https://github.com/github/codeql-action)
2. [Codacy](https://github.com/marketplace/codacy)

# Accessibility ♿

Make the web accessible for everyone! This app is super neat in that it analyzes HTML-style code for missing attributes and tags such as an `alt` attribute for image tags or `<label>` tags for input fields.

1. [AccessLint](https://github.com/marketplace/accesslint)

# Licensing 📜

Do you know the licenses of your dependencies? Maybe they're not all as permissive or FOSS as you might think.

[Fossa](https://fossa.com) is a policy engine for gathering the details of open-source licenses from your dependencies to warn you about incompatibilities and other legal stuff. Mostly for the enterprise but their badge looks really aesthetic 😎

![Fossa Dependency Licensing List](https://dev-to-uploads.s3.amazonaws.com/i/m8rciaqaj9xxlv5jsfxv.png)
<figcaption>Fossa gives a rundown of the types of licenses associated with your dependencies</figcaption>

# Displaying All Your Badges ✨

An additional benefit of integrating these apps with your GitHub repository is that you get to show how much care you put into your codebase as badges. I'm not saying that's why I use these services, but these badges definitely make me happy looking at my repository.

Most of the services listed have their own badge system but if not, there's always [shields.io](https://shields.io/).

![Making My GitHub Repository Look Fancy with Status Badges](https://dev-to-uploads.s3.amazonaws.com/i/alpzqlox5hg7fmghvw6f.png)
<figcaption>Blinging up my repository readme with some badges</figcaption>

# Wrapping Up

Which GitHub app will you integrate into your next project? Do you have one that you would like others to try? Let me know in the comments!

If you found the use of these cool, give my new personal project, a brick breaker clone, a look and a star ⭐ would be much appreciated 🙏

{% github justinhodev/brick-breaker %}

Follow me on Twitter [@justinhodev](https://twitter.com/justinhodev) to keep up with my daily code bits!