OSSIntel logo OSSIntel
Version 0.1.0

Overview

Updated 3 hr ago

CIcodecovnpm versionnpm downloadsnpm bundle sizelicense

@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-normalizer

or

$ npm install @ossintel/github-normalizer

or

$ yarn add @ossintel/github-normalizer

License

This library is licensed under the MIT open-source license.


with 💖 by Mayank Kumar Chaudhari

On this page