Chapter 15
IN THIS CHAPTER
Introducing the GitHub Marketplace
Finding apps in the Marketplace
Installing apps from the Marketplace
In the three chapters of Part 5, we look at multiple different ways of extending GitHub and customizing the GitHub experience. Many tools extend or integrate with GitHub. A good way to find tools to use with GitHub is the GitHub Marketplace.
The GitHub Marketplace (https://github.com/marketplace
) is a directory of tools and apps grouped in the following categories:
The Marketplace is a great way to find an app for every situation on GitHub. Purchasing or installing apps through the Marketplace has two key benefits: ease of billing and installation and the vetting process.
For apps in the GitHub Marketplace that require payment, installing the app through the Marketplace is a streamlined flow because you can use your GitHub payment info. That way, you’re not dealing with five different payment providers when purchasing five different apps to use with GitHub.
If you have a free GitHub account, you may not have setup your payment information in GitHub. To set up a payment method, click your avatar in the top right corner of GitHub.com and click Settings. From this page, click Billing from the list on the left side. Here you can click the Add payment method, as shown in Figure 15-1.
One of the benefits of installing an application from the Marketplace is that these apps must meet certain requirements before GitHub will list them in the Marketplace. The requirements help ensure a higher standard of quality and security with the apps; helping ensure that these apps are useful (no Fart apps) and are secure.
An app must meet four main categories of requirements before being listed in the Marketplace (https://developer.github.com/marketplace/getting-started/requirements-for-listing-an-app-on-github-marketplace
):
https://developer.github.com/marketplace/getting-started/security-review-process
.Getting your own app listed in the Marketplace may increase the potential audience for your application. However, listing your app requires that it meets GitHub’s requirements and receives approval. Chapter 14 guides you through creating your own app.
To start the process of listing an app, click the Submit your tool for review link at the bottom of the Marketplace landing page or navigate to https://github.com/marketplace/new
in your browser.
This page lists your applications that you can turn into Marketplace listings, as shown in Figure 15-2. Notice the Why Not Both app we create in Chapter 14 is listed here.
Click Create draft listing next to the app you want to list on the Marketplace to start the process. This takes you to a page where you can enter a name for the listing and choose one of the marketplace categories for your app listed earlier in the chapter, as shown in Figure 15-3.
After you fill in these details, click Save and add more details to save a draft of your listing and move on to the next set of steps, as shown in Figure 15-4.
These steps include
Add your contact info.
This info is a set of three email addresses: Technical lead, marketing lead, and finance lead.
Fill out your listing description.
This area is where you fill out more details, such as a product description, logo, and screenshots. The information here will be displayed on the Marketplace page for your application.
Set up plans and pricing.
This is where you can set up one or more pricing plans, including the option to create a free plan, a monthly plan, or a monthly per user plan. You can also specify whether a plan includes a 14-day free trial.
Set up webhook.
This step allows you to specify a URL where Marketplace events will be sent via an HTTP POST
request. The webhook will send you information about events, such as purchases, cancellations, and changes like upgrades and downgrades.
Accept the Marketplace Developer Agreement.
In order to list your app in the marketplace, you have to accept the Marketplace Developer Agreement.
Click the Submit for review button.
GitHub employees will review your submission to make sure it meets the requirements to be listed in the Marketplace.
In the section “Introducing the GitHub Marketplace” at the beginning of this chapter, we list the categories of apps that are available on the Marketplace. In this section, we describe some of the most common and useful apps that you may want to consider installing.
Continuous integration (CI) apps automatically build and test your code every time you push it to GitHub. If you have a CI app, such as AppVeyor, installed on your repository, you will see the status of the check at the bottom of each pull request, as shown in Figure 15-5.
If you’re the owner of the repository, you can also specify whether checks have to pass before the branch can be merged into the master branch. Just head into the Settings tab. If you have any rules on the master branch already, click edit; otherwise, click Add Rule. From there, you can scroll down and select Require status checks to pass before merging.
Code quality apps automatically review your code with style, quality, security, and test-coverages checks. These apps can be really useful for ensuring your code is kept to a high standard. With well-styled and quality code, you’re less likely to introduce or miss bugs. For example, if you require that all curly braces are on new lines and indented with one tab per nested brace, you’re likely to be able to spot when something is incorrect. For example, Rubocop checks the style of your Ruby code while it’s building and provides you with style feedback, such as casing for method names.
Another useful type of code quality apps is the code coverage apps, such as Codecov. Shown in Figure 15-6, Codecov and apps like it comment on pull requests with how much of the code is covered by test scenarios, helping to ensure your code remains well tested.
Localization apps can make publishing your app in many languages easier. For example, the Crowdin app will link your repository to a Crowdin account where people from around the world can help you translate your documentation and any written words in your software (for example, on buttons or in menus). With more than 20,000 people contributing to translations, the Crowdin app will automatically open a pull request on your repository with new translations when it’s reached a threshold of accuracy, still giving you a chance to review and merge. For open source projects, Crowdin is free!
Monitoring apps help measure performance, track errors, and track dependencies in your code. For example, Greenkeeper is a real-time notification app that gives you updates and changes for JavaScript dependencies. Figure 15-7 shows Greenkeeper in action, opening a pull request to update eslint to the latest version.
Modern app development today is heavily dependent on public package managers for pulling in and managing dependencies. A typical app may have dozens, if not hundreds, of dependencies. Tracking which of these dependencies are up-to-date can be difficult. Github apps like Dependabot check to make sure your dependencies are up-to-date and submit pull requests to update the ones that are not.
Sometimes you don’t want all your dependencies on a public package registry. For example, if you work in an enterprise, you may have internal packages that should remain private. A private package registry tool, such as MyGet, is useful in this case. MyGet works with NuGet packages and lets you set up a policy where pushes to a particular branch will initiate a build and the branch will be deployed to a custom NuGet feed hosted on MyGet.
Testing software is an important part of the software development lifecycle. Good testers develop test plans to ensure that testers do a good job of testing each release. Managing test plans and keeping track of the status of test runs is an important part of quality assurance. The TestQuality app integrates with GitHub to helping developers and testers create, run, coordinate, and monitor software testing tasks.
3.16.66.156