UNPKG

rsshub

Version:
136 lines (134 loc) 3.06 kB
import "./esm-shims-CzJ_djXG.mjs"; import { t as config } from "./config-C37vj7VH.mjs"; import { t as ViewType } from "./types-D84BRIt4.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import "./parse-date-BrP7mxXf.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as filterEvents } from "./eventapi-BEQAmeDm.mjs"; //#region lib/routes/github/org-event.ts const route = { path: "/org_event/:org/:types?", categories: ["programming"], example: "/github/org_event/RSSNext", view: ViewType.Notifications, parameters: { org: "Organization name", types: { description: "Event types to include, comma separated", default: "all", options: [ { label: "All events", value: "all" }, { label: "Create events", value: "create" }, { label: "Delete events", value: "delete" }, { label: "Fork events", value: "fork" }, { label: "Issue create events", value: "issue" }, { label: "Issue comment events", value: "issuecomm" }, { label: "Member events", value: "member" }, { label: "Pull request events", value: "pr" }, { label: "Pull request review comment events", value: "prcomm" }, { label: "Pull request review events", value: "prrev" }, { label: "Public events", value: "public" }, { label: "Push events", value: "push" }, { label: "Release events", value: "release" }, { label: "Watch events (stars)", value: "star" }, { label: "Wiki item create or update events", value: "wiki" }, { label: "Commit comment events", value: "cmcomm" }, { label: "Discussion events", value: "discussion" } ] } }, features: { requireConfig: [{ name: "GITHUB_ACCESS_TOKEN", optional: true, description: "GitHub access token to avoid access limit" }], requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["github.com/orgs/:org"], target: "/org_event/:org" }], name: "Organization Event", maintainers: ["mslxl"], handler }; async function handler(ctx) { const org = ctx.req.param("org"); const types = ctx.req.param("types") || "all"; const isAuthenticated = config.github && config.github.access_token; const headers = {}; if (isAuthenticated) headers.Authorization = `token ${config.github.access_token}`; const items = filterEvents(types, (await got_default({ method: "get", url: `https://api.github.com/orgs/${org}/events`, headers, searchParams: { per_page: 100 } })).data); return { title: `${org} GitHub organization Feed - ${types === "all" ? "All Events" : `Events: ${types}`}`, link: `https://github.com/${org}`, description: `GitHub events received by ${org}`, item: items }; } //#endregion export { route };