External APIs

GitHub Sign-In Application you own this product

This project is part of the liveProject series Go and External APIs
advanced Go • programming language basics • packaging basics • HTTP application basics
skills learned
work with Go standard library packages, GitHub OAuth, HTTP cookies in Go, and HTTP cookies in Go
Amit Saha
1 week · 2-4 hours per week · BEGINNER

placing your order...

Don't refresh or navigate away from the page.
liveProject This project is part of the liveProject series Go and External APIs liveProjects give you the opportunity to learn new skills by completing real-world challenges in your local development environment. Solve practical problems, write working code, and analyze real data—with liveProject, you learn by doing. These self-paced projects also come with full liveBook access to select books for 90 days plus permanent access to other select Manning products. $19.99 $29.99 you save $10 (33%)
GitHub Sign-In Application (liveProject) added to cart
continue shopping
adding to cart

choose your plan


only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free eBook every time you renew
  • choose twelve free eBooks per year
  • exclusive 50% discount on all purchases
  • GitHub Sign-In Application eBook for free
Look inside

Echorand Corp., a growing analytics company, uses the GitHub hosting service for its software hosting and collaboration needs. But the company has received feedback voicing concerns about the service’s lack of backup functionality. As a software engineer, it’s up to you to solve this problem. You’ll use Go to build a web application that allows users to log in using their GitHub credentials and access the GitHub API using OAuth authorization. You’ll create HTTP client middleware for writing and performing tests with no need to interact with Github.com, and you’ll write automated tests that enable you to update the application while speeding up the development cycle. When you’re done, you’ll have built an easy-to-update application that allows users to log in with their GitHub credentials.

This project is designed for learning purposes and is not a complete, production-ready application or solution.

book resources

When you start your liveProject, you get full access to the following books for 90 days.

project author

Amit Saha

Amit Saha is a software engineer at Atlassian in Sydney, Australia. He’s the author of Practical Go: Building Scalable Network and Non-Network Applications (Wiley, 2021), Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (No Starch Press, 2015), and Write Your First Program (PHI Learning, 2013). His other writings have been published in technical magazines, conference proceedings, and research journals. He can be found online at https://echorand.me.


This liveProject is for beginner-level Go programmers interested in learning to build a web application that allows users to sign in with their GitHub credentials. To begin these liveProjects you’ll need to be familiar with the following:

  • Key Go standard library packages: net/http, net/http/cookiejar, net/http/httptest, testing
  • Third-party packages: https://golang.org/x/oauth2 and github.com/google/go-github
  • HTTP cookies (for maintaining state on the client side)
  • Understanding of how HTTP applications work (concepts including request routing, cookie handling, and redirects)
  • Language basics: writing functions, creating structures, conditional statements, standard input and output, and basic understanding of interfaces
  • Packaging basics: what a module is and using sub-packages
  • Go commands: go build and go test

you will learn

In this liveProject, you’ll learn how to create a web application that allows users to log in using their GitHub credentials.

  • Use the Go standard library packages to implement authentication using GitHub OAuth
  • Access the GitHub API using GitHub Go
  • Work with HTTP cookies in Go
  • Implement techniques to write a testing-friendly web application
  • Write tests for applications without making external network requests
  • Implement a login using GitHub functionality
  • Implement HTTP client middleware to test your web application


You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.