Version 0.1.0
Overview
Updated 13 hr ago
@ossintel/github-normalizer: Typed utilities for fetching and normalizing GitHub REST and GraphQL data into a consistent domain model for analytics and reporting.
Typed utilities for fetching and normalizing GitHub data.
Purpose
GitHub's REST and GraphQL APIs expose excellent data but with inconsistent shapes and multiple endpoints.
This package provides a stable domain model consumed by the rest of OSSIntel.
Responsibilities
- Fetch GitHub data
- Normalize responses
- Hide API complexity
- Handle pagination
- Handle rate limits
- Provide strongly typed models
Non-goals
- Scoring
- AI
- Business logic
- UI
Planned API
fetchDeveloper();
fetchRepositories();
fetchRepository();
fetchOrganizations();
fetchContributors();
fetchLanguages();
fetchReleases();Output
Always returns normalized domain models.
Never expose raw GitHub responses.
Design Principles
- Pure TypeScript
- Strong typing
- Stable contracts
- Easily replaceable backend
✨ Why @ossintel/github-normalizer?
- Consistent Domain Model: Normalizes disparate GitHub REST and GraphQL responses into a single, clean TypeScript interface.
- Auto Pagination & Rate Limit Handling: Simplifies fetching multi-page repository lists and respects API rate limits transparently.
- Zero Ecosystem Pollution: Keeps business logic, scoring, and UI code out of the network fetching layer.
📦 Installation
$ pnpm add @ossintel/github-normalizeror
$ npm install @ossintel/github-normalizeror
$ yarn add @ossintel/github-normalizerLicense
This library is licensed under the MIT open-source license.
with 💖 by Mayank Kumar Chaudhari