winget-submit action and winget-bot user #4

Closed
opened 2026-10-14 00:09:47 -05:00 by jeff · 1 comment
Owner

Programs are meant to submit new versions themselves rather than by a
hand-written pull request. That needs two things.

jeff/winget-submit: a reusable Forgejo action in its own repository,
mirrored on Tangled and pinned by commit from each program the way
niks3-push is. It is kept apart from this repository so that changing a
manifest does not move the commit every program pins. Given a package
identifier, a version and the installer URLs, it:

  • downloads each installer and computes its SHA-256;
  • copies the default locale file from the newest existing version of the
    package, and writes the version and installer files for the new one;
  • runs this repository's wingetsource check on the result;
  • opens a pull request against jeff/winget-pkgs.

The first version of a package is still written by hand; the action only
handles a package that already has a version.

winget-bot: a Forgejo user with write access to jeff/winget-pkgs and
nothing else. A program workflow's forge.token reaches only its own
repository, so the bot's token is a secret on each program repository instead.
Branch protection already keeps it off main: it can push branches and open
pull requests, which still need the test check and a merge by hand.

Tickets

Settled in design: the manifest is written by wingetsource new-version here (ADR 0004, #6), and jeff/winget-submit only handles git and Forgejo.

  • #7 Add wingetsource new-version
  • jeff/winget-submit#1 Build the submit action (blocked by #7)
  • #8 Set up the winget-bot submitter with a wizard
  • jeff/clipwatch#1 Submit new versions to the JCOllie winget source (blocked by jeff/winget-submit#1 and #8)
Programs are meant to submit new versions themselves rather than by a hand-written pull request. That needs two things. **`jeff/winget-submit`**: a reusable Forgejo action in its own repository, mirrored on Tangled and pinned by commit from each program the way `niks3-push` is. It is kept apart from this repository so that changing a manifest does not move the commit every program pins. Given a package identifier, a version and the installer URLs, it: - downloads each installer and computes its SHA-256; - copies the default locale file from the newest existing version of the package, and writes the version and installer files for the new one; - runs this repository's `wingetsource check` on the result; - opens a pull request against `jeff/winget-pkgs`. The first version of a package is still written by hand; the action only handles a package that already has a version. **`winget-bot`**: a Forgejo user with write access to `jeff/winget-pkgs` and nothing else. A program workflow's `forge.token` reaches only its own repository, so the bot's token is a secret on each program repository instead. Branch protection already keeps it off `main`: it can push branches and open pull requests, which still need the `test` check and a merge by hand. ## Tickets Settled in design: the manifest is written by `wingetsource new-version` here (ADR 0004, #6), and `jeff/winget-submit` only handles git and Forgejo. - [x] #7 Add `wingetsource new-version` - [x] jeff/winget-submit#1 Build the submit action (blocked by #7) - [x] #8 Set up the `winget-bot` submitter with a wizard - [x] jeff/clipwatch#1 Submit new versions to the JCOllie winget source (blocked by jeff/winget-submit#1 and #8)
Author
Owner

Done: every ticket above is closed. Clipwatch v0.2.1 was the first release submitted by itself (#13), through jeff/winget-submit as winget-bot, and the source now serves it.

Done: every ticket above is closed. Clipwatch v0.2.1 was the first release submitted by itself (#13), through jeff/winget-submit as winget-bot, and the source now serves it.
jeff closed this issue 2026-10-14 02:33:15 -05:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
jeff/winget-pkgs#4
No description provided.