UNPKG

wrap-git

Version:

a GitHub profile wrapper package to summarize and do analytics for a given GitHub profile using GitHub API

52 lines (47 loc) 1.4 kB
const { default: axios } = require("axios"); const filterEvent = (events) => { return events.map((event) => { switch (event.type) { case "PushEvent": return { type: event.type, repo: event.repo.name, branch: event.payload.ref.replace("refs/heads/", ""), commits: event.payload.commits.map((commit) => commit.message), timestamp: event.created_at, }; case "PublicEvent": return { type: event.type, repo: event.repo.name, timestamp: event.created_at, }; case "WatchEvent": return { type: event.type, repo: event.repo.name, action: event.payload.action, timestamp: event.created_at, }; default: return {}; } }); }; const recentActivities = async (username, token) => { try { const url = `https://api.github.com/users/${username}/events/public`; const headers = token ? { headers: `token ${token}` } : {}; const response = await axios.get(url, { headers }); return { success: true, data: {events: filterEvent(response.data.slice(0, 10))} } } catch (error) { if (error.response) { return customError(error); } return unknowError(error); } }; module.exports = recentActivities;