Repository navigation
Tags not pushed if it's scoped without @ prefix #553
Description
Activity
I swear to god, I have f-ing had it with GitHub and it's stupid limitations...
So sanity check, folder prefixes in tags are legal on github. And it does work with this action via git cli. Ie
foo/bar@1.1.1However this does not work with commitMode github-api 🤡
I was shooting in the dark and on a hunch removed the prefix. https://github.com/alexaka1/distroless-dotnet-healthchecks/releases/tag/distroless-dotnet-healthchecks%401.5.2 viola, instantly created a release.
- changed the title
[-]`commitMode: 'github-api'` is not pushing tags[/-][+]`commitMode: 'github-api'` is not pushing tags if package name contains `/`[/+]on Dec 22, 2025 This is not about slash. It's about using
"access": "restricted",In your config. And this is a safety net. If you are using a private registry the expected package name convention is starting with
@symbol such as@blablaIf you are using npmrc or some private registry you can safely change the access from restricted to public in config and all will be fine.
The package.json has
private: trueenabled. I do not care about NPM rules, plus it does not work withchangesets tageither, which is just supposed to tag it.Plus the cli prints that
new version found.There is zero indication on why it should not work, in fact there is literally no distinction made between when it does work, and when it doesn't in the log messages, or the source code.
This is likely related to our very clunky tag detection regex:
Line 101 in 1bf7c27
let newTagRegex = /New tag:\s+(@[^/]+\/[^@]+|[^/]+)@([^\s]+)/; Which wouldn't capture and push the tag for you if it doesn't start with
@for scope-ish packages. So I'm not sure how git-cli fixed it for you, but this bug should've happened in both cases.Anyways, I think we have plans to make the tag detection more robust while we're prepping for the next major.
Which wouldn't capture and push the tag for you if it doesn't start with
@for scope-ish packages. So I'm not sure how git-cli fixed it for you, but this bug should've happened in both cases.@bluwy I didn't use
@in the name, as I'm not using changesets to manage npm packages. I'm using it to manage external libs. Sopackage.jsonis only a means to an end, in my use case I'm not publishing anything to NPM. So my "packages" in changeset are namedfoo/barwithout the NPM registry required@prefix.I get that. I didn't mean you have to use
@here. Just that it's what changesets expect for any tracked packages, npm or not, to push the tags for you.- changed the title
[-]`commitMode: 'github-api'` is not pushing tags if package name contains `/`[/-][+]Tags not pushed if it's scoped without `@` prefix[/+]on Jun 25, 2026 The system put in place with changesets/changesets#2129 and #678 should fix this.
Reacted by Alex Martossy
The real problem
Turns out, naming my package
alexaka1/packagewas the issue. This is a perfectly valid name, on npm i would need an @ prefix to my name, but I dont use npm. So this should be fine. And IT IS, if used viagit-cli.Original issue
I have switched to using a dedicated github app, to automate releases.
Here is the workflow in question:
config.json:
{ "$schema": "https://unpkg.com/@changesets/config@3.0.4/schema.json", "changelog": ["@changesets/changelog-github", { "repo": "alexaka1/distroless-dotnet-healthchecks" }], "commit": false, "fixed": [], "linked": [], "access": "restricted", "baseBranch": "main", "updateInternalDependencies": "patch", "ignore": [], "privatePackages": { "version": true, "tag": true } }The github app in question has these permissions:
I assume this is enough.
The logs show this when running:
However the tag is not pushed (nor is the release created) and I have no idea why. The reason I switched to github app instead of the implicit token is because I have setup push triggers on tags.
I do also have rulesets setup:
Additionally require signed commits, and block force pushes are also ticked.
Here is what works:
So the github app token retriaval works fine, otherwise it would not be able to create the PR and push commits.
And the rulesets also work fine, otherwise it would not be able to push the git tag via cli, because only the bot user is allowed to do that.