Skip to content

Our move to generated SDKs

GitHub SDKs: software generated meets hand curated.

Our move to generated SDKs
Author

Taking a leap: Introducing our generated Go and .NET SDKs

We are excited to announce a significant shift in our approach to software development kits (SDKs) at GitHub. Moving away from the static landscape of the traditional Octokit, we are now shipping two generated SDKs using Kiota; one published in Go and the other in .NET. This marks a pivotal moment in our journey towards more dynamic, flexible, and user-friendly tools for our community.

Why move away from our traditional Octokit SDKs?

Octokit has been an integral part of GitHub’s ecosystem, offering a robust interface for interacting with GitHub’s APIs. However, as technology evolves, so should our tools. The new SDKs are not just about generating code; they are about ushering in a new era of building and integrating with GitHub. By leveraging this generative approach, we will be able to provide immediate updates to models and APIs while also introducing new features to the SDK landscape.

Why Kiota?

Developed by Microsoft, Kiota is a command line tool that takes OpenAPI definitions and creates clean SDKs based on those definitions. This enables the generation of well-structured clients for a given API while allowing hand curation of the more esoteric needs of the SDK users.

After testing various other generative approaches, we opted for Kiota as our generation engine, given its alignment with our goal to embrace modern, efficient, and versatile technology. Kiota’s ability to generate comprehensive, idiomatic SDKs from GitHub’s OpenAPI specification well complements our vision for the future of GitHub integration. This ensures that our tools are not only powerful, but also intuitive and developer-friendly.

The progress that has been made so far would not be possible without the amazing Kiota team and all of the help they have given our Octokit community ♥️.

The power of Go and .NET SDKs

The introduction of the Go and .NET SDKs represent our commitment to a broader and more diverse developer community. Go, known for its efficiency and scalability, and .NET recognized for its versatility in various applications, are perfect candidates for the next generation of GitHub SDKs.

Not just code generation, a vision for the future

We believe that the true value of these SDKs lies not in the code they generate but in the possibilities they unlock. While the models that are generated are important and having near 100% REST API coverage will remove usability roadblocks, those accomplishments were never the endgame.

Our goal is to build SDKs that get the software out of the way of the developer so that we can all focus on user needs. By generating what is known, we will focus on the more interesting question of what’s needed next.

These tools are a gateway to a new era of innovation and creativity with GitHub. The intent is to build SDKs that are designed to empower developers to build more robust, efficient, and creative solutions on top of the GitHub platform.

Join us in shaping the future

As we ship these SDKs, we look forward to the community joining us in this exciting journey. Your feedback, contributions, and insights are invaluable in shaping the future of GitHub integration.

Stay tuned for more updates, and please make sure to join and contribute to the discussion. Welcome to a new chapter in GitHub’s SDK story!

Explore more from GitHub

Open Source

Open Source

Gaming, Git, new releases, and more.
The ReadME Project

The ReadME Project

Stories and voices from the developer community.
GitHub Copilot

GitHub Copilot

Don't fly solo. Try 30 days for free.
Work at GitHub!

Work at GitHub!

Check out our current job openings.