Skip to content

feat: add support for Pushin (pushin.eu) as a git provider - #3317

Merged
trueberryless merged 7 commits into
npmx-dev:mainfrom
Tobbe:tobbe-feat-pushin
Oct 11, 2026
Merged

trueberryless merged 7 commits into
npmx-dev:mainfrom
Tobbe:tobbe-feat-pushin

Conversation

@Tobbe

@Tobbe Tobbe commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

🔗 Linked issue

Closes #3303

🧭 Context

Adds Pushin (https://pushin.eu) as a supported git provider. I was at https://goatmire.com and noticed that a lot of talks/workshops/demos used pushin.eu for their code hosting. I got curious, and talked to the creator of Pushin, who was also at Goatmire.

I mentioned pushin on some Discord servers I'm part of, and @WilcoSp suggested it was added as a supported git provider to npmx. And of course I wanted to do that! A perfect reason to contribute to my favorite npm frontend 🙂

📚 Description

Packages with a pushin.eu repo now get stars, forks, watchers, the Pushin icon and a "View on Pushin" link.

Pushin doesn't support raw files, so I made rawBaseUrl point at the blob URL. So relative images in READMEs won't work.
Pushin currently has no support for releases (they list it as "coming soon"), so there's no changelog support
I also couldn't find a "forks" page, so the forks link just point to the repo itself

image

And for reference, here's that repo on pushin

image

Shows stars, forks and watchers from Pushin's GitHub-compatible API,
plus the provider icon and a "View on Pushin" link.

Pushin doesn't serve raw files or have a releases API yet, so README
relative images point at blob URLs and changelogs aren't supported.

Closes npmx-dev#3303
@agentscanapp

agentscanapp Bot commented Oct 11, 2026

Copy link
Copy Markdown

Thanks for opening this pull request! 🎉

We really appreciate you taking the time to contribute, @Tobbe.

A maintainer will take a look as soon as they can. In the meantime, please make sure that:

  • the description explains what changed and why
  • any related issues are linked
  • existing tests still pass

If anything needs adjusting we'll leave comments here. Thanks again!

@vercel

vercel Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
npmx.dev Ready Ready Preview Oct 11, 2026 11:33am UTC
2 Skipped Deployments
Project Deployment Actions Updated
docs.npmx.dev Ignored Ignored Preview Oct 11, 2026 11:33am UTC
npmx-lunaria Ignored Ignored Oct 11, 2026 11:33am UTC

Request Review

@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: npmx-dev/npmx.dev/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8c4d6d7a-7cc6-4845-ba5d-480c8ce8c357

📥 Commits

Reviewing files that changed from the base of the PR and between c9cb32f and 5ffeb72.


📒 Files selected for processing (5)
  • assets/media/custom-icons.json
  • shared/utils/git-providers.ts
  • shared/utils/repository-meta.ts
  • test/unit/shared/utils/git-providers.spec.ts
  • test/unit/shared/utils/repository-meta.spec.ts

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.



📝 Summary

Summary by CodeRabbit

  • New Features
    • Added support for Pushin repositories, including repository links and metadata such as descriptions, branch names and repository counts.
    • Pushin repositories now display the provider icon and include a “View on Pushin” link.
  • Documentation
    • Updated the guide and README to list Pushin as a supported git provider.

Walkthrough

Pushin is added as a supported git provider. The change adds repository URL parsing and metadata retrieval, and updates provider icons, labels, documentation, and tests.

Changes

Pushin provider support

Layer / File(s) Summary
Register and parse Pushin repositories
shared/utils/git-providers.ts, shared/utils/fetch-cache-config.ts, test/unit/shared/utils/git-providers.spec.ts, test/nuxt/composables/use-repo-meta.spec.ts
The provider registry recognises Pushin hosts, parses repository paths, and sets Pushin blob URLs. Tests cover web and clone URLs, blob URL generation, and repository URL parsing.
Fetch Pushin repository metadata
shared/utils/repository-meta.ts, test/unit/shared/utils/repository-meta.spec.ts
The Pushin adapter fetches repository metadata, maps available fields, and registers under the pushin provider key. Tests cover returned metadata, missing counts, and fetch errors.
Show Pushin across the interface
assets/media/custom-icons.json, app/composables/useProviderIcon.ts, app/components/OgImage/Package.takumi.vue, i18n/locales/en.json, i18n/schema.json, app/composables/useViewOnGitProvider.ts, README.md, docs/content/2.guide/1.features.md
Provider icons, view-on labels, and provider lists include Pushin. The English locale and schema include the Pushin view-on label.

Suggested reviewers: trueberryless

Sequence Diagram(s)

sequenceDiagram
  participant getRepoMeta
  participant pushinAdapter
  participant CachedFetch
  participant PushinAPI
  getRepoMeta->>pushinAdapter: Request Pushin repository metadata
  pushinAdapter->>CachedFetch: Fetch repository endpoint with metadata TTL
  CachedFetch->>PushinAPI: Request repository details
  PushinAPI-->>CachedFetch: Return repository response
  CachedFetch-->>pushinAdapter: Return response or fetch error
  pushinAdapter-->>getRepoMeta: Return mapped metadata or null
Loading

Priority: ➖ Normal

Merge Risk: ⚪ Minimal · up to 5ffeb

Pushin support is mergeable after normal checks; its stated feature limits do not establish a merge-blocking issue.

Pre-merge checks | Passed 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check Passed The title clearly and concisely identifies the main change: adding Pushin as a supported git provider.
Description check Passed The description directly explains the Pushin integration, supported features, and known limitations shown by the changeset.
Linked Issues check Passed Issue #3303 requests support for pushin.eu as a git forge and a link to the hosted repository. The changes add Pushin URL parsing, provider metadata and API handling, repository statistics links, the …
Out of Scope Changes check Passed The changes stay within issue #3303. Documentation, icon assets, translations, cache configuration, provider parsing, metadata handling, and tests directly support the Pushin integration. No unrelated…

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Lunaria Status Overview

🌕 This pull request will trigger status changes.

Learn more

By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.

You can change this by adding one of the keywords present in the tracking.ignoredKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File Note
i18n/locales/en.json Source changed, localizations will be marked as outdated.
Warnings reference
Icon Description
🔄️ The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

@codecov

codecov Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 89.47368% with 2 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
app/composables/useViewOnGitProvider.ts 0.00% 1 Missing ⚠️
shared/utils/git-providers.ts 87.50% 0 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

@PJUllrich

PJUllrich commented Oct 11, 2026 •

Copy link
Copy Markdown

My name is Peter Ullrich and I approve this message 😬

Also: thanks for pointing out what's still missing. Releases will be released next week and I'll put the other things on my next-up todo list. 🫶

Edit: I'm the creator of Pushin.eu

@trueberryless trueberryless left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an amazing feature!

I am just blocking because @serhalp is currently working on integrating https://forges.link into npmx, so this feature will either be already supported when we have migrated or we can integrate it more easily later one.

@trueberryless trueberryless left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After some discussion, we decided to merge this PR first to get Pushin support ASAP and we can iterate with forges later 👍

I took the liberty to push some smaller commits, so now everything looks good to me 🙌

Thank you very much, @Tobbe!

@trueberryless
trueberryless added this pull request to the merge queue Oct 11, 2026
Merged via the queue into npmx-dev:main with commit 809f5c4 Oct 11, 2026
24 checks passed
@github-actions github-actions Bot mentioned this pull request Oct 11, 2026
patak-cat pushed a commit that referenced this pull request Oct 12, 2026
Co-authored-by: Felix Schneider <99918022+trueberryless@users.noreply.github.com>
@github-actions github-actions Bot mentioned this pull request Oct 12, 2026

This branch was successfully deployed

2 active (1 outdated) deployments
Preview – npmx.dev — 5ffeb721 Deployed Oct 11, 2026 by vercel[bot]
Preview – docs.npmx.dev — c9cb32f9 Deployed Oct 11, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support pushin.eu as a git forge

3 participants