-
Notifications
You must be signed in to change notification settings - Fork 1
unified repo map
This document describes how fields from GitHub and GitLab unauthenticated repository API responses are mapped and normalized into the unified UnauthScout v0.3.0 intelligence schema.
It provides a clear reference for:
- Cross-provider repository field normalization
- Unified intelligence schema for asset enumeration
- Schema-driven repository analysis and summarization
UnauthScout v0.3.0 introduces a unified repository schema that transforms provider-specific project data into a consistent format for cross-platform asset analysis. This enables intelligence operations like language analysis, activity tracking, and popularity metrics across both GitHub and GitLab.
The unified repository schema serves as:
- Asset Intelligence Foundation for repository enumeration
- Cross-Platform Consistency enabling unified analysis
- Summarization Input for intelligence reporting
The unified repository schema (schemas/unified_repo.json) defines the standard output contract for all repository enumeration operations, regardless of source platform.
- Observability: Include only publicly available repository fields
- OSINT Relevance: Prioritize fields useful for reconnaissance analysis
- Platform Constraints: Acknowledge GitLab's language limitation
- Array Consistency: Standardize on array format for multiple repositories
| Platform | Raw Field | Unified Field | Type | Notes |
|---|---|---|---|---|
| GitHub | name |
name |
string | Repository short name |
| GitLab | name |
name |
string | Project short name |
| GitHub | full_name |
full_name |
string |
owner/name format |
| GitLab | path_with_namespace |
full_name |
string | Equivalent path format |
| GitHub | html_url |
url |
URI | Repository web URL |
| GitLab | web_url |
url |
URI | Project web URL |
| GitHub | description |
description |
string | Project description (empty if null) |
| GitLab | description |
description |
string | Project description (empty if null) |
| GitHub | stargazers_count |
stars |
integer | Star count (β₯ 0) |
| GitLab | star_count |
stars |
integer | Star count (β₯ 0) |
| GitHub | language |
language |
string | Primary language (null β "N/A") |
| GitLab | β | language |
string | Always "N/A" (GitLab API limitation) |
| GitHub | updated_at |
updated_at |
date-time | Last activity timestamp (ISO 8601) |
| GitLab | last_activity_at |
updated_at |
date-time | Last activity timestamp |
| GitHub | topics |
topics |
array[string] | Repository topics/tags |
| GitLab | tag_list |
topics |
array[string] | Project tags |
The current normalization is implemented in provider-specific modules:
normalize_github_repos() {
jq ${JQ_OPTS} 'map({
name: .name,
full_name: .full_name,
url: .html_url,
description: (.description // ""),
stars: .stargazers_count,
language: (.language // "N/A"),
updated_at: .updated_at,
topics: (.topics // [])
})'
}normalize_gitlab_repos() {
jq ${JQ_OPTS} 'map({
name: .name,
full_name: .path_with_namespace,
url: .web_url,
description: (.description // ""),
stars: .star_count,
language: "N/A",
updated_at: .last_activity_at,
topics: (.tag_list // [])
})'
}The normalized output conforms to:
schemas/unified_repo.json
This schema defines the authoritative structure for all repository intelligence output in UnauthScout v0.3.0 and later.
- Language detection available in unauthenticated API
- Rich topic/tag system with dedicated
topicsfield - Consistent
updated_atfield for activity tracking -
forks_countavailable (not currently mapped to unified schema)
- Language Detection: Not available in unauthenticated API - always returns "N/A"
-
Tag System: Uses
tag_listinstead oftopics -
Activity Tracking: Uses
last_activity_atinstead ofupdated_at -
Popularity Metrics: Limited to
star_count(no fork count in standard response)
- Consistent Field Names: Map similar concepts to same unified names
- Default Values: Use "N/A" for unavailable language data
- Empty Placeholders: Empty arrays/strings for null values
- Intelligence Awareness: Summarization handles platform differences
The unified repository schema enables several intelligence capabilities:
- Language Analysis: Identify primary programming languages (GitHub only)
- Popularity Metrics: Compare star counts across platforms
- Activity Tracking: Determine recent project activity
- Topic Analysis: Identify project focus areas and technologies
- Asset Enumeration: Comprehensive list of public repositories/projects
The unified repository schema represents a strategic shift from provider-specific asset listing to intelligence-focused repository analysis:
- Cross-Platform Analysis: Enables comparison of repositories across GitHub and GitLab
- Summarization Foundation: Provides consistent data structure for intelligence reporting
- Tool Integration: External tools can consume standardized repository data
- Future Extensibility: New repository fields can be added to unified schema
This mapping documents the transformation from raw provider repository data to unified intelligence format, enabling UnauthScout's asset enumeration capabilities. The unified repository schema serves as the foundation for v0.3.0 intelligence features including language analysis, activity tracking, and cross-platform repository summarization.
π License: MIT
π Found a bug? Report it
π‘ Have an idea? Suggest a feature
π Unauthenticated reconnaissance tool for GitLab & GitHub
Setup - Quick install guide and first configuration Usage - Usage Guide
OSINT Workflow - Ethical reconnaissance methodology and best practices
- UnauthScout API Repo Map - Unified field mapping for UnauthScout repo data
- UnauthScout API User Map - Unified field mapping for UnauthScout user data
- GitHub API Repo Map - Complete field mapping for GitHub repo data
- GitHub API User Map - Complete field mapping for GitHub user data
- GitLab API Repo Map - Complete field mapping for GitLab repo data
- GitLab API User Map - Complete field mapping for GitLab user data