GitAPITaker: privacy-first, keyboard-driven Git hosting API inspector - #1
Open
arena-ai-coding-agent[bot] wants to merge 4 commits into
Open
GitAPITaker: privacy-first, keyboard-driven Git hosting API inspector#1arena-ai-coding-agent[bot] wants to merge 4 commits into
arena-ai-coding-agent[bot] wants to merge 4 commits into
Conversation
… inspector Static, dependency-free frontend (GitHub Pages deployable) that resolves GitHub/GitLab/Gitea hosting URLs to provider REST endpoints and inspects responses directly from the browser. - Provider adapter architecture: registry (detection) + per-provider parse/resolve/related rules (github, gitlab, gitea/forgejo), custom self-hosted instance support with honest API probing - Response inspector: JSON tree, faithful RAW, searchable HEADERS, REQUEST view with copy-as-cURL; LIVE/CACHED/STALE states always labeled - Request layer: direct fetch, credentials omitted, injectable for tests - Defensive localStorage cache (structured records, TTL, snapshot ring), transparent Request Guard (cooldown suppression with visible counters), offline fallback, Response Diff, local history - Endpoint Explorer driven by adapter capability metadata - Hash routing, shareable instruction-only URLs, command palette (Ctrl/Cmd+K), full keyboard shortcuts, ARIA tabs/roving lists/live regions - Providers/Documentation page (official docs links + capability tables), Giscus-based Community page, About/Security documentation - Tests: 144 node:test cases (unit + DOM boot) with mocked fetch/fixtures - GitHub Actions: test on Node 20/22, static deploy to GitHub Pages Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Deploying gitapi with
|
| Latest commit: |
9bca962
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://f7ec15bc.gitapi-74e.pages.dev |
…ons, change detection, theme toggle UI/UX redesign - 'Lab instrument' identity: amber-on-charcoal (light theme supported), mono-forward labels, box-drawn sections, terminal prompt command strip, metadata rail + response pane layout, no emoji/web fonts/gradients - Resolution pipeline tracker: DETECT -> PARSE -> RESOLVE -> FETCH rendered with actual values per inspection; failures mark the exact broken stage; suppressed/cached requests show the cache path instead of a fake fetch New features - Pagination navigation (GitHub/Gitea Link header, GitLab x-* headers), Prev/Next buttons, counts only when the provider reports them - JSON view: key/value search with auto-expanding highlights + match count; click a key to copy its JSONPath, click a value to copy it - Actionable interpretations: 404 user -> 'try as organization' button, unsupported host -> 'register a self-hosted instance' jump - Change detection on refresh: auto-diff vs previous capture with a 'response changed since last capture' note linking into Response Diff - Theme cycle (auto/dark/light), persisted locally, shortcut 't' Core - core/pagination.js + core/jsonsearch.js (pure, tested) - ResolverError now carries pipeline stage + partial context annotations - interpretation quickActions Tests: 167 pass (new: pagination, jsonsearch, theme, DOM coverage of the pipeline/search/theme/staged errors) Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…lier UI Rebuild the visual layer around M3 patterns using the official baseline tonal palette — implemented in pure CSS with zero component libraries, zero CDN requests and zero web fonts, so the privacy model is untouched. - Navigation rail with icons (desktop) + bottom navigation (mobile) - M3 buttons (filled/tonal/outlined/text, pill + state layers), elevated & outlined cards, chips, filled text field, primary tabs, rounded dialogs, and a snackbar for copy/theme feedback - Simplified hierarchy: one inspect card, pipeline as colored step chips, status card beside the response, M3 type scale, generous spacing - All v0.2 capability retained: pipeline tracker, pagination, JSON search & path copy, quick actions, change detection, diff, guard transparency, themes, keyboard shortcuts Tests: 167 pass (DOM boot test re-verified against the new markup) Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
Implements GitAPITaker, a static, privacy-first, keyboard-driven developer tool that resolves Git hosting URLs into provider REST API endpoints and inspects the responses directly in the browser. No backend, no proxy, no telemetry, no build step.
Highlights
/users?username=lookup, URL-encoded nested project paths, Gitea's plural/releases/tags/{tag}route, verified against Gitea's router).CI / Pages
The GitHub Actions workflow (
pages.yml: tests on Node 20/22 + static Pages deploy) is written, but the automation token lacks the GitHubworkflowsscope, so the file could not be pushed — see README “Setup note”. A maintainer with workflow permissions needs to commit.github/workflows/pages.ymlonce.Verified
npm test: 144/144 pass (resolver, all three providers, cache, guard, share URLs, error classification, request layer, diff, history, instances, DOM boot).