Category Direction - API

Stage Create
Maturity Viable
Last reviewed 2020-07-28

This direction is a work in progress, and everyone can contribute:

概要

GitLab's API category provides all the tools and resources for developers to integrate externally with GitLab as a platform. Our Integrations category supports key integrations directly inside the GitLab codebase.

Currently, a REST and GraphQL API are available for developers to use to integrate with GitLab. You can learn more about our APIs in our developer documentation.

Beyond accessing these endpoints directly, API Clients and CLI Clients that have been created by our community are availalbe for a variety of platforms and languages.

Direction

As the GitLab community grows and increasingly relies on GitLab as a central part of their toolchain, it is critical that we provide support for integrating our product with a wider variety of systems. These integrations could be with project management systems, ERPs, custom dashboards and reporting systems, or any other type of custom-built tool.

To serve these needs, the Groups and Categories across GitLab contribute to our APIs with functionality for each of their individual sets of functionality. Because of this distributed nature, the API category is responsible for guiding the path of this development on a holistic level.

Over the next year, we will work with key stakeholders to refine guidelines and best practices that will inform how these teams are designing and building their APIs and how they will ensure that these resources remain performant for consumers. Additionally, this team will act as a centralized resource, helping to triage critical problems with our APIs as the need arises.

Future Vision

By providing powerful and flexible development resources, we allow creators to consume GitLab as a platform—giving them the freedom to create anything they may need. Penflip is a great example of a novel product that was built upon GitLab that uses the core GitLab functionality to produce a whole new experience. These developers took GitLab's core functionality and reimagined it for a wholly different purpose and a totally different type of user.

Making room for this sort of innovation and creativity will let us grow our community and impact in novel ways, and the more we expand the resources we provide, the more of this impact we will see. Over time, we would like to expand our developer tooling to allow more of this type of creativity and build a framework that allows us to better serve the broader variety of creative work, driving us closer to our Big Hairy Audacious Goal.

Maturity

Today, we consider our API to be Viable. Below is how we think about how we'll grow that maturity level over time:

Learn more about how GitLab thinks about Maturity here.

What's next and why

Based on these goals, our current priorities are:

What we're not doing

Building "all" of GitLab's APIs

Each Group is ultimately responsible for building and maintaining their own APIs. Ecosystem's role is to be a source of guidance and governance across them as a whole.

Creating new API client libraries

There are currently many client libraries that were created and are maintained by our community. We don't currently have any plans on creating our own libraries, but are happy to support the efforts of those contributors and community members.

Contributing

At GitLab, one of our values is that everyone can contribute. If you're looking to contribute to our API or otherwise get involved with features in the Ecosystem area, you can find open issues here.

Feel free to reach out to the team directly if you need guidance or want feedback on your work by pinging @deuley or @gitlab-ecosystem-team on your open MR.

You can read more about our general contribution guidelines here.

Feedback & Requests

If there's an integration that you'd like to see GitLab offer, or if you have feedback about an existing integration: please submit an issue with the label ~Category:Integrations, or contact Patrick Deuley, Sr. Product Manager, Ecosystem.