@doguyilmaz/tapster

中文文档
2.2.0发布于 2026/11/13MITES Module零依赖构建来源已验证近 30 天下载 2903

Sign, notarize and publish the releases of all your projects from one Homebrew tap, set up in your browser

原始使用文档
文档目录6 节
  1. Set it up in your browser
  2. How it works
  3. Your keys stay in your accounts
  4. The Action
  5. Docs
  6. License

The tapster octopus, a courier carrying sealed parcels

tapster

tapster turns your Homebrew tap into the one place that signs, notarizes and publishes the releases of all your projects. Each project builds its files and opens a draft release. It holds no signing certificate, no notary key and no tap token.

Tutorial and docs: tapster.doguyilmaz.com
npm: @doguyilmaz/tapster

Set it up in your browser

You need Bun and the GitHub CLI, signed in with gh auth login. Signing for macOS also needs an Apple Developer account.

bunx @doguyilmaz/tapster setup

A page opens in your browser, served by your own computer. It walks you through every step and shows what each one changes on GitHub:

  1. Choose or create your tap. It becomes your hub.
  2. Protect it, create its GitHub App and store your Apple files. Drop the .p12 and .p8; your password manager can keep the .p12 password.
  3. Write the hub files. tapster commits them to your tap through GitHub; you need no clone of it.
  4. Add your projects. tapster finds the projects cloned on your computer, prepares their release workflows, protects them and proposes them to the hub.

Then click Release on a project. tapster tags its latest commit on GitHub and shows the release until the hub has published it. The tutorial shows every step.

Prefer a terminal? Run bunx @doguyilmaz/tapster init in a clone of your tap and bunx @doguyilmaz/tapster add in each project. See Set up from a terminal.

How it works

project (tag v1.2.3)                   hub: you/homebrew-tap
  builds, attests, holds no keys       runs tapster on a schedule or when rung
  -> draft release + checksums.txt  -> checks every file against the project's build
                                       signs and notarizes the macOS code
                                       publishes the release
                                       writes the cask, the Scoop manifest and the apt and dnf repositories

It publishes Go tools built with GoReleaser, command line tools written for Bun and Mac apps that update with Sparkle. Users install them with Homebrew, Scoop, apt or dnf. When something needs you, such as a certificate that expires soon, the hub opens an issue and closes it once all is well.

Your keys stay in your accounts

tapster has no server. Your Apple certificate, notary key and App key are secrets of your hub's tapster environment, which only its main branch can open. Projects hold no signing keys. No one else, including tapster's author, ever receives them. tapster's own code uses them only inside your hub's runs, at the commit your hub workflow pins. Read the security model.

The Action

You do not write the hub workflow yourself: the setup writes it and pins this Action by commit. If you added the Action from the Marketplace first, run it once. With no mode it runs a guide: its run summary checks your repository and shows the next step.

on: workflow_dispatch
jobs:
  guide:
    runs-on: ubuntu-24.04
    steps:
      - uses: doguyilmaz/[email protected]

To move a hub to a newer release, see Upgrade tapster.

Docs

The design documents are in docs/superpowers/specs.

License

MIT

版本与发布记录

@doguyilmaz/tapster 共发布 24 个版本,首次发布于 2026/10/19;过去 12 个月发布了 24 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.2.0latest2026/11/13今天
2.1.02026/11/121 天前
2.0.22026/10/2816 天前
2.0.12026/10/2420 天前
1.7.42026/10/2321 天前
2.0.02026/10/2321 天前

关于 @doguyilmaz/tapster 的常见问题

@doguyilmaz/tapster 是什么?

Sign, notarize and publish the releases of all your projects from one Homebrew tap, set up in your browser

如何安装 @doguyilmaz/tapster?

在项目目录运行 npm install @doguyilmaz/tapster,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 tapster,可以用 npx tapster 直接运行。

@doguyilmaz/tapster 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/doguyilmaz__tapster 是否存在。

@doguyilmaz/tapster 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@doguyilmaz/tapster 可以商用吗?

@doguyilmaz/tapster 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@doguyilmaz/tapster 的下载量有多少?

根据 npm 官方下载统计,@doguyilmaz/tapster 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,903 次,日均约 97 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@doguyilmaz/tapster 还在维护吗?

最新版本 2.2.0 发布于 2026/11/13(今天);至今共发布 24 个版本,其中过去 12 个月发布了 24 个;首次发布于 2026/10/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。