Welcome to GitHub Authentication using ghauth
GitHub Authentication, also known as ghauth, is a powerful tool for developers to authenticate and interact with GitHub. This guide introduces ghauth and showcases dozens of useful API examples along with a comprehensive app example implementing these APIs.
Setup and Installation
npm install -g ghauth
To use ghauth, you first need to install it globally through npm. The following command will help you get started:
npm install ghauth
Authentication
Here’s how you can use ghauth for authentication:
const ghauth = require('ghauth'); const options = { configName: 'myapp', scopes: ['user', 'repo'], note: 'my auth token' }; ghauth(options, (err, authData) => { if (err) return console.error(err); console.log(authData); });
Fetching User Information
const fetch = require('node-fetch'); const getUserInfo = async (token) => { const response = await fetch('https://api.github.com/user', { headers: { 'Authorization': `token ${token}` } }); const data = await response.json(); console.log(data); };
Creating a Repository
const createRepo = async (token, repoName) => { const response = await fetch('https://api.github.com/user/repos', { method: 'POST', headers: { 'Authorization': `token ${token}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ name: repoName }) }); const data = await response.json(); console.log(data); };
Listing User Repositories
const listRepos = async (token) => { const response = await fetch('https://api.github.com/user/repos', { headers: { 'Authorization': `token ${token}` } }); const data = await response.json(); console.log(data); };
Application Example
Now let’s put it all together into a simple Node.js application that covers user authentication, fetching user info, creating a repo, and listing repos.
const ghauth = require('ghauth'); const fetch = require('node-fetch'); const options = { configName: 'myapp', scopes: ['user', 'repo'], note: 'my auth token' }; const authenticateAndRun = async () => { try { ghauth(options, async (err, authData) => { if (err) return console.error(err); const token = authData.token; console.log('User Information:'); await getUserInfo(token); const repoName = 'new-repo'; console.log(`Creating Repository "${repoName}":`); await createRepo(token, repoName); console.log('Listing Repositories:'); await listRepos(token); }); } catch (error) { console.error('Error during authentication or API calls', error); } }; authenticateAndRun(); async function getUserInfo(token) { const response = await fetch('https://api.github.com/user', { headers: { 'Authorization': `token ${token}` } }); const data = await response.json(); console.log(data); } async function createRepo(token, repoName) { const response = await fetch('https://api.github.com/user/repos', { method: 'POST', headers: { 'Authorization': `token ${token}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ name: repoName }) }); const data = await response.json(); console.log(data); } async function listRepos(token) { const response = await fetch('https://api.github.com/user/repos', { headers: { 'Authorization': `token ${token}` } }); const data = await response.json(); console.log(data); }
Using these APIs, you can build powerful GitHub integrations and automate various tasks related to your repositories and user data.
Hash: 2e368fcc430c5f3aa60c7f8761c2837cd48f1263288bb24a15152e5081cd6f06