Open Source Friday with Octokit - GitHub's SDKs for JS, Ruby, .NET and more!
TLDRIn this episode of Open Source Friday, host Cadessa is joined by Nick and Keegan from GitHub's SDK team to discuss the GitHub SDKs. They delve into what SDKs are, with Nick explaining that they are tools that simplify the process of interacting with APIs, handling common issues like authentication and rate limiting. The team shares the history of the GitHub SDK, which started with the introduction of GitHub's API in 2008, and has since evolved with contributions from various developers. They highlight the importance of community engagement and the team's efforts to manage and improve the SDKs, which currently see an average of 115 million package downloads per week. Keegan demonstrates how to get started with the Go SDK, showcasing its ease of use and the automated generation of SDKs for languages like .NET and Go. They also discuss future plans for the SDKs, including handling rate limiting, caching, and error handling, and their vision for generative SDKs that could serve a wider range of users, including project managers. The episode concludes with a mention of a lesser-known feature, the GitHub Terraform provider, which Nick shares as his hidden gem.
Takeaways
- 🎉 The GitHub SDK is a collection of tools that makes interacting with the GitHub API easier and more efficient.
- 📈 GitHub Universe is looking for speakers on topics like AI, security, and developer experience, with a deadline for applications on May 10th.
- 🤝 Nick and Keegan, both part of the GitHub SDK team, have a combined experience of more than 38 years in the industry.
- 🌟 SDKs (Software Development Kits) are essential for abstracting common tasks when dealing with APIs, such as authentication and rate limiting.
- 🚀 The GitHub SDK started with the introduction of GitHub's API in 2008 and has evolved significantly since then.
- 📊 The GitHub SDK currently sees around 115 million package downloads per week and has a large open-source community contributing to it.
- 🔧 The team is working on introducing generative SDKs for .NET and Go, with Python being the next on the list due to its popularity.
- 🔄 Keegan demonstrated using the Go SDK to call the 'Zen of GitHub' endpoint, showcasing the simplicity of using the GitHub SDK for API interactions.
- 📝 The GitHub SDK aims to provide a comprehensive set of tools that cover the entire GitHub API surface, allowing developers to focus on their business logic.
- 🔍 The team is considering the future of SDKs, including the potential for AI-hydrated SDKs and language-agnostic solutions.
- 🌐 They are also looking into community-driven needs to better support different programming communities and their unique requirements.
Q & A
What is the main topic of discussion in the 'Open Source Friday' session?
-The main topic of discussion is the GitHub SDK, which includes GitHub's software development kits for various programming languages such as JavaScript, Ruby, .NET, and more.
Who are the guests featured in the session?
-The guests featured in the session are Nick Floyd and Keegan Campbell, who are part of GitHub's SDK team.
What is an SDK in the context of software development?
-An SDK (Software Development Kit) is a set of tools, libraries, and documentation that allows developers to create applications for a certain software package or framework. In the context of GitHub, it simplifies the process of interacting with GitHub's API by providing a more ergonomic and standardized way to make API calls.
What is the significance of the GitHub Universe call for sessions mentioned in the script?
-The GitHub Universe call for sessions is an opportunity for individuals to submit their proposals to speak at the GitHub Universe conference. The topics are focused on AI, security, and developer experience, and the call for sessions is open until May 10th.
What is the 'Zen of GitHub' endpoint?
-The 'Zen of GitHub' endpoint is a part of GitHub's API that returns a random Zen principle, which are philosophical statements or guidelines for a good life and effective programming practice.
How does the generative SDK approach help in managing the GitHub SDK project?
-The generative SDK approach helps manage the GitHub SDK project by automatically keeping up with updates to GitHub's API, thus reducing the manual effort required to update SDKs across different programming languages. It also allows for covering a broader range of programming languages and providing a more consistent experience to developers.
What is the current status of the GitHub SDK for Python?
-As of the time of the discussion, there is no official release date for the Python version of the GitHub SDK. However, it is on the radar and is being considered for future development based on GitHub's userbase profile, which shows a significant portion of users working with Python.
How does the GitHub SDK abstract common problems that developers face when working with APIs?
-The GitHub SDK abstracts common problems such as authentication, rate limiting, error handling, and caching. It provides a layer of abstraction that handles these issues behind the scenes, allowing developers to focus on their business logic without having to implement these solutions from scratch.
What is the GitHub Terraform Provider, and why is it considered a hidden gem?
-The GitHub Terraform Provider is a lesser-known project that allows users to manage GitHub resources through Terraform, an infrastructure as code tool. It is considered a hidden gem because it enables automation and management of GitHub resources like repositories, teams, and permissions within an organization's infrastructure as code workflow.
How does the GitHub SDK team handle the large volume of notifications and issues?
-The team uses a first-responder rotation system where one of the members takes responsibility for responding to notifications and issues during certain days of the week. They also rely on community contributions and have a process for reviewing and addressing the issues and pull requests they receive.
What are some future directions that the GitHub SDK team is considering for the SDKs?
-The team is considering incorporating more advanced features such as rate limiting, caching, and pagination into the SDKs by default. They are also exploring the possibility of generative plugins or workflows, language-agnostic SDKs, and AI-hydrated SDKs that could further simplify the development process for users.
Outlines
🎉 Introduction to Open Source Friday and GitHub SDK
The video script begins with a lively introduction to Open Source Friday, a platform for discussing open source projects with maintainers. The host, Cadesa, expresses excitement about the guests, Nick and Keegan, who are part of GitHub's SDK team. They discuss the GitHub Universe call for sessions, encouraging participation from those interested in speaking on topics like AI, security, and developer experience, with a deadline for applications on May 10th.
🚀 Understanding SDKs and Their Role in Development
The conversation moves to a discussion about what an SDK (Software Development Kit) is and its importance. Nick and Keegan explain that an SDK simplifies the process of calling an API by providing tools and standardization, reducing the need to rewrite common code from scratch. They also touch on the evolution of APIs and how SDKs help manage authentication, rate limiting, and other repetitive tasks.
🌐 The History and Evolution of the GitHub SDK
The hosts delve into the history of the GitHub SDK, starting from the introduction of GitHub's API in 2008. They discuss the contributions of various developers over the years and the growth of the SDK, including the creation of Octokit.rb and Octokit.net. The narrative highlights the importance of community and the role of pioneers in shaping the current state of the SDK.
🤝 The Community and Maintenance of the GitHub SDK
Keegan and Nick share the challenges and strategies involved in maintaining the GitHub SDK, which includes over 70 repositories. They discuss the high volume of notifications and the process they've implemented to manage the workload. The pair emphasizes the importance of community contributions and the support they receive from other teams, like Microsoft's Kyota.
📈 GitHub SDK's Growth and Future Directions
The discussion highlights the GitHub SDK's impressive statistics, including millions of package downloads and a vast number of open source contributors. The hosts express their commitment to improving the SDK and adapting to community needs. They also mention the introduction of generative SDKs for languages like Go and .NET, and their plans for future expansion, including the potential for a Python SDK.
🔧 Live Demo: Getting Started with the GitHub SDK
Keegan presents a live demo on how to get started with the GitHub SDK, specifically using the Alpha version of the Go SDK. The demo includes setting up a Go module, using the Zen of GitHub endpoint to fetch a random principle, and discussing the generative capabilities of the SDK. The process is straightforward, emphasizing the ease of use and the community's role in its development.
🌟 Engaging the Community and Contributing to SDKs
The conversation shifts to community engagement and how the audience can contribute to the SDKs. Nick and Keegan encourage participation, mentioning the 'up-for-grabs' issues in the repositories as a starting point for new contributors. They express their appreciation for the community's help in impacting millions of users through their contributions.
🔍 Addressing Different Community Needs and Future Vision
The hosts address the question of how they handle different needs from various programming communities. They acknowledge the challenge and express their desire to improve in this area. The discussion then pivots to the future vision of the GitHub SDK, including the potential for language-agnostic SDKs, AI-hydrated SDKs, and generative plugins or workflows to assist users more effectively.
🎁 Favorite Feature and Closing Remarks
In the final part, Nick shares his favorite lesser-known feature of the GitHub SDK, which is the GitHub Terraform provider. He explains its utility for infrastructure as code and its significance to enterprises using Terraform. The episode concludes with thanks to the contributors and an invitation for the audience to explore the GitHub SDK further.
Mindmap
Keywords
💡Open Source Friday
💡GitHub SDK
💡API
💡Octokit
💡Zen of GitHub
💡Generative SDKs
💡Rate Limiting
💡Authentication
💡GitHub Universe
💡Community Engagement
💡Terraform Provider
Highlights
Introduction to Open Source Friday, a platform for discussing open source projects with maintainers.
Guests Nick and Keegan discuss the GitHub SDK, which simplifies interaction with GitHub's API.
GitHub Universe call for sessions is open for those interested in speaking on topics like AI, security, and developer experience.
Keegan Campbell and Nick Floyd share their experiences working on the GitHub SDK team and their backgrounds in the industry.
SDKs (Software Development Kits) are explained as tools that streamline API interactions by handling common tasks like authentication and error handling.
The history of the GitHub SDK, starting from the first version of GitHub's API introduced in 2008.
The evolution of the GitHub SDK, including the introduction of Octokit.rb in 2009 and Octokit.net in 2012.
Current statistics of GitHub SDK usage, including 115 million weekly package downloads and contributions from 2,300 open source community members.
Challenges in managing a large project like the GitHub SDK and the strategies employed to handle the workload.
Introduction to generative SDKs, which automatically keep up with GitHub's API changes and cater to multiple programming languages.
A live demo on how to get started with the GitHub SDK using Go, including setting up a new Go module and making an API call.
The Zen of GitHub endpoint is used as an example to demonstrate the simplicity of using the GitHub SDK to fetch a random principle.
Discussion on how the GitHub SDK can be improved to better serve different programming communities' needs.
Nick Floyd's personal story about working on GitHub's Terraform provider as a hidden gem within the GitHub SDK ecosystem.
The future vision for the GitHub SDK includes leveraging generative technologies and possibly creating language-agnostic or AI-hydrated SDKs.
The GitHub SDK team is open to community contributions, especially for those who are new and looking for issues labeled 'up-for-grabs'.
Python version of the GitHub SDK is on the roadmap, reflecting the high demand from the GitHub user base.