mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-09 12:46:42 -05:00
Use NuGet Package Registry for PowerShell Modules #14503
Open
opened 2025-11-02 11:14:41 -06:00 by GiteaMirror
·
7 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#14503
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @marvint24 on GitHub (May 16, 2025).
Description
Referring to my post in the forum: https://forum.gitea.com/t/nuget-package-registry-for-powershell-modules/11226
My goal is using Gitea as a registry for custom PowerShell modules.
Current behavier
The problem occurs with PowerShell 5.1 on Windows and PowerShell 7 on Windows / Linux
Expected behavier
The NuGet package registry should work as PowerShell module repository.
Steps to reproduce
You can use this code https://github.com/marvint24/PWSHTest to test it.
publishModule.ps1file like as described in the readmeAfter that you should find the package in gitea.
You can find the PowerShell module with:
But not with:
You cannot install the module with:
Gitea Version
1.23.8
Can you reproduce the bug on the Gitea demo site?
Yes
Log Gist
https://gist.github.com/marvint24/da65ff545a0b207dcd46003aef411be7
Screenshots
Git Version
2.45.2
Operating System
gitea docker image (Alpine 3.20.3)
How are you running Gitea?
I am using a docker compose file like https://docs.gitea.com/installation/install-with-docker
Database
SQLite
@senna-fox commented on GitHub (May 16, 2025):
Jumping in to say I've also run into this issue.
If the latest version of a package ends with .0, the above error is returned.
If I navigate to
https://gitea.xxx.com/api/packages/audrey/nuget/registration/pwshtest/1.1.jsonI get a Package Not Found page. If I navigate tohttps://gitea.xxx.com/api/packages/audrey/nuget/registration/pwshtest/1.1.0.jsonthe correct manifest is returned.The above only occurs if the minor version is a 0. If the minor version ends with any other integer then the below appears.
Interestingly, if I run the same Find-Module cmdlet with an asterisk at the start or end, it works.
@mathesonian commented on GitHub (Aug 14, 2025):
This exact problem is is what lead me to the forum and this issue.
If you add the -debug parameter to find-module you get some more information.
Here is without the asterisk:
and here with the trailing asterisk
find-module -Name 'PWSHTest*' -repository 'Gitea' -Credential $cred -verbose -debug
@mathesonian commented on GitHub (Aug 20, 2025):
I was beating my head against the wall on this but I got Find-Module and Install-Module to work by doing the following:
Register-PSRepository -Name "Gitea"
-PublishLocation "$GITEA_URL/api/packages/$OWNER/nuget/"
-SourceLocation "$GITEA_URL/api/packages/$OWNER/nuget/"
-PackageManagementProvider NuGet
-InstallationPolicy Trusted
instead of:
Register-PSRepository -Name "Gitea"
-PublishLocation "$GITEA_URL/api/packages/$OWNER/nuget/index.json"
-SourceLocation "$GITEA_URL/api/packages/$OWNER/nuget/index.json"
-PackageManagementProvider NuGet
-InstallationPolicy Trusted
I don't know a lot about Nuget feeds but when I compare the responses from Gitea vs PSGallery there is a lot more being returned from PSGallery. I suspect that there are additional properties that PowerShell is looking for in the feed that are missing from Gitea.
@senna-fox commented on GitHub (Aug 20, 2025):
@mathesonian Excellent find! I was pretty sure it was possible as it seemed like others figured it out, but nobody ever posted a how-to until now. It'd be nice to see the Gitea team fix this but in their shoes I can't say I would.
I made a comment on the forum post but I'll paste it here so it's available:
Been poking at this a bit more this morning. I haven’t been able to make it work, but I have determined the issue is that PowerShellGet requires a NuGet v2 feed. Despite documentation’s claim otherwise, Gitea fails to completely implement v2 (only the ‘packages’ endpoint is routable.)
Given PowerShellGet is being phased out in favor of PSResouceGet, I’m not sure it’s worth correcting this. I’m resolving myself to just using PSResourceGet & manually installing dependencies.
Supposedly this automation is coming (backed by the good word of Microsoft 🙄)
Per Microsoft Documentation:
@marvint24 commented on GitHub (Aug 22, 2025):
@mathesonian I tested your way today and it seems to work, thank you! :)
It's still a little weird that you have to use
-AllowPrerelease.I also tested
Find-Module PWSHTest -Repository "Gitea" -AllVersionsbut that doesn't work xDSo you can find the non prerelease version if you use
-AllowPrereleaseand if you actually specify your module as prelease viain your manifest, you can find it via
Find-Module PWSHTest -Repository "Gitea" -AllVersionsand-AllowPrerelease@wxiaoguang commented on GitHub (Aug 23, 2025):
1.25 (at the moment: main-nightly) has this: Improve NuGet API Parity #34940
Could you try whether it helps? Or maybe it could still be improved.
@Chucky2401 commented on GitHub (Sep 10, 2025):
Hello, I jumped here with the exact same issues and workaround.
I tried with the main-nightly docker image, problem still present:
If I access the link in the debug output, I got the xml:
I tried to publish my module on PSGallery to compare result of Find-Module.
The only things I find very different, are AdditionalMetadata.
For Gitea:
For PSGallery
There are not property for latest version, or set to False. Property
isPrereleaseis a boolean with Gitea but a string with PSGallery, for example.I hope this will help.