Millions of developers all around the globe use GitHub. Everyone from a newbie inspiring developer to big tech giants has used GitHub at some part of their journey. With 83+ million developers and 4+milion organizations, GitHub is THE product loved by people from every domain.
In the past few years, GitHub is adding new features and providing more tools to ship products faster. From version control to project management, security, CI/CD and automation, GitHub is constantly launching new cool stuff to make our life easier.
One of such things is GitHub Marketplace. In today's article, let us discuss what is it and why you should know about it. In the end, we will see a GitHub application that connects developers and product managers and makes changes to your codebase on the fly.
What is GitHub Marketplace
GitHub Marketplace is a place to discover products to accelerate your GitHub repositories. It is a platform that helps to find tools that could integrate with your repositories and improve your workflow throughout its software development lifecycle.
GitHub is already trusted by a large proportion of developers and used by big corporations with complex development workflow. As complexity increased, the use of external tools to monitor and enhance the development process increased. These tools were mostly developed by individual developers or small groups of enthusiasts and spread across the community. Many companies also built their tools as per their needs to smoothen the workflow. Such tools were super handy and saved a lot of manual work developers had to do.
In 2017, GitHub launched Marketplace to bring such tools and developers together. GitHub marketplace connects you with developers who want to extend and improve their workflow. You can discover, browse and install various tools in your repository or build one yourself and publish it on the marketplace.
These tools could be free, paid or based on a subscription model. Most of them are open source so you can contribute to them if you wish.
GitHub Marketplace offers developers two types of tools: GitHub Actions and GitHub Apps, and each tool has a different use case and is integrated differently with your repository. I will share more about these two parts in the next sections.
What Does it Provide?
GitHub Marketplace is a great place to find tools to automate almost every situation that might encounter during GitHub workflow. The marketplace consists of tools categorized into two types and 19 categories. The two main types are Apps and Actions that we will discuss soon. Categories include code review, CI/CD, security, support, publishing, deployment, etc.
Tools and Apps to Improve Your Workflow
Rather than reinventing the wheel whenever a need for automation of enhancement arises, GitHub Marketplace lets you use a solution that has been built, tested and used by other developers so you can focus on building your product more efficiently and effectively.
An Easy Way to Sell Your Application
Anyone can list a free GitHub Action, GitHub App or OAuth App on GitHub Marketplace. But to list a paid solution, you need to be a verified developer yourself as well as the tool you want to sell must be verified by GitHub before it is listed in the marketplace. The procedure is similar if you are publishing as an organization. You get a verified batch to your organization's account to increase your credibility.
Easy Billing and Installation
Since its release, hundreds of tools designed to extend the functionality of your workflow. Even though each tool is unique and has a unique purpose, they all improve the development process within the workflow. Another thing GitHub Marketplace provides is the ease of billing and installation. The billing method is the same as your other GitHub subscriptions and installing tools just adding a few lines of code or granting permission to specific repositories.
Now let's know more about two main types of tools in the Marketplace.
GitHub Actions
GitHub actions is an entirely new way to supercharge your GitHub workflow. It automates the development process and creates custom software development lifecycle workflows directly in your GitHub repository. You can create actions to perform specific tasks, or take an existing action from the marketplace and add it to your current workflow.
You automate your workflow at the same place where you store code and collaborate with your team: the GitHub repository! This gives you the freedom to customize your workflow according to the scope and requirements of your project.
GitHub actions are event driven. Meaning, that they are triggered after one or more events occur within the repository. The event could be anything from creating a new branch to changing the label of the pull request. GitHub Action runs a series of commands once the event occurs. The entire action workflow resides in .yml
files in .github/workflows
directory in your codebase.
GitHub allows sharing and reusing of GitHub actions across the platform. Developers can publish their actions in the marketplace and sell them at a fixed price or for free. The action is then used in the existing .yml
file by adding a few lines of code with optional parameters.
GitHub Apps
Formally known as integrations, GitHub Apps are just GitHub Actions on steroids. GitHub App is a small application that works independently across your GitHub account. Any individual developer or an organization can install and utilize these applications by explicitly granting permissions to desired repositories.
GitHub apps are considered first class actors within GitHub. They are built on top of GitHub APIs and act on their own. Hence you don't need to maintain external services to monitor these apps. Once the account owner installs the application and grants access to repositories, the app works on its own without much manual input from the user. And unlike GitHub Action, this app needs to be hosted somewhere in the cloud, since it is a standalone application after all.
The app contains multiple scrips or an entire web app which can be connected with many other tools such as Databases, E-Mail services, External APIs or even other GitHub apps. The app could be used for a plethora of tasks such as code review, and project management, testing, support, utilities. CI/CD and etc.
Not to Confuse with OAuth Apps
People often confuse between GitHub Apps and OAuth Apps. But both are distinct and have their unique use cases. Understanding the difference will help you to decide which app to create.
An OAuth App acts as a GitHub user. You need to authorize OAuth App to have access to GitHub resources. A GitHub App, on the other hand, is a standalone application that can be installed in your repositories. GitHub has a guide that differentiates GitHub Apps and OAuth Apps which discusses this in detail.
Determining which integration tool to build is also critical if you are building a high scaled product. GitHub recommends the use of GitHub Apps to integrate with repositories since they offer more granular permission to access data. The following image published by GitHub Docs itself offers some questions to ask yourself when deciding whether to use personal access tokens, GitHub Apps, or OAuth Apps for your integration.
Similar to Actions, GitHub Apps are also reusable and sharable across the community. Anyone can publish their apps for free on the marketplace. But you need to be a verified organization to sell your app in the community.
About Flycode
FlyCode is a product editor platform for teams who build products together. FlyCode is changing traditional developers' operations by simplifying product edits, bringing key contributors into the process and enabling teams to build products faster. It brings multiple teams within the organization together and removes the friction increasing the speed of your workflow.
FlyCode is a GitHub Application that you can install within your repositories. It is helping developers to cut the noise and the back-and-forth around product edits, so you can keep doing what you love.
Getting started with FlyCode is as simple as creating an account on FlyCode and syncing it with your GitHub organization. There is a step-by-step guide which will cover everything you need to start with FlyCode.
If you get stuck or have some query, the team is active on Discord and Twitter or contact the team by filling up this form!
Wrapping Up
GitHub marketplace is a platform that lets you integrate external tools into your GitHub repository. The tools are of two types, GitHub Actions and GitHub Apps.
Hundreds of tools are published in the Marketplace since its release in 2017. Some of them are free, paid or have a subscription based model. All of these tools aim to improve the workflow of your development and make it efficient, secure and collaborative.
One of such tools is FlyCode, which removes the friction between different teams within your organization and brings them together. For more such interesting articles, do follow FlyCode and join our newsletter!