Hey there, fellow dev! Ready to dive into the world of GitHub API integration? You're in for a treat. We'll be using Octokit, the official GitHub SDK, to make our lives easier. By the end of this guide, you'll be pulling off some impressive GitHub tricks with just a few lines of JavaScript. Let's get cracking!
First things first, let's get our environment ready:
npm install @octokit/rest
Now, head over to your GitHub settings and create a Personal Access Token. Keep it safe; we'll need it soon!
Time to bring Octokit into our project:
import { Octokit } from "@octokit/rest"; const octokit = new Octokit({ auth: 'your-token-here' });
Just like that, we're ready to roll!
Let's start with something simple. How about fetching your own user info?
const { data: user } = await octokit.users.getAuthenticated(); console.log(`Hello, ${user.login}!`);
Want to see your repos? Easy peasy:
const { data: repos } = await octokit.repos.listForAuthenticatedUser(); console.log(repos.map(repo => repo.name));
Creating a new repo is a breeze:
await octokit.repos.createForAuthenticatedUser({ name: "awesome-new-project", description: "This repo is gonna rock!", private: false });
Updating or deleting? Just as simple. Check out the Octokit docs for the specifics.
Got an issue? Create it programmatically:
await octokit.issues.create({ owner: "octocat", repo: "Hello-World", title: "Found a bug", body: "I'm having a problem with this." });
Listing PRs or merging them follows a similar pattern. The Octokit API is pretty consistent, which is nice!
Webhooks are your friends for real-time updates. Set up a simple Express server to listen for them:
app.post('/webhook', (req, res) => { const event = req.headers['x-github-event']; const payload = req.body; console.log(`Received ${event}`, payload); res.sendStatus(200); });
Always wrap your API calls in try-catch blocks. Trust me, future you will thank present you:
try { // Your API call here } catch (error) { if (error.status === 403 && error.headers['x-ratelimit-remaining'] === '0') { console.log("Oops, hit the rate limit!"); } else { console.error("An error occurred:", error.message); } }
We've been using Personal Access Tokens, but for production apps, consider OAuth Apps or GitHub Apps. They're more secure and flexible.
And there you have it! You're now equipped to build some seriously cool GitHub integrations. Remember, the GitHub API is vast, so don't be afraid to explore and experiment. The Octokit documentation is your best friend here.
Keep coding, keep learning, and most importantly, have fun with it! If you run into any roadblocks, the GitHub community is always here to help. Now go build something awesome!