Generic Files
Upload any file to Feedz as long as it has a package ID and a valid version in its filename. Useful for distributing build artefacts, scripts, or any file that doesn't fit a specific package format.
File naming
The generic feed accepts any file type. The filename must follow the format:
<package-id>.<version>.<extension>
The version must be a valid Semantic Version or NuGet version. For example:
MyApp.1.3.0-beta.tar.gz
MyApp.2.0.0.zip
MyScript.1.0.0.ps1
.tar.gz are not currently supported.Feed URL
The generic feed URL follows this format:
https://f.feedz.io/{organisation}/{repository}
Format detection
If a file uploaded to the generic feed is a recognised package type, Feedz treats it accordingly. For example, a NuGet package (.nupkg) uploaded via the generic endpoint will also appear in the NuGet feed for the same repository.
Authentication
Pass a personal access token or service account token via the feedz-api-key HTTP header. Uploading always requires authentication. Downloading from a public repository does not.
Uploading packages
Any tool that can make an HTTP POST request can upload to the generic feed.
# Add --force to overwrite an existing version
feedz.exe push \
--org my-org \
--repo my-repo \
--pat T-xyzXYZ \
--file MyPackage.1.0.0.tgz
# Add ?replace=true to overwrite an existing version
curl -f \
-F "file=@MyPackage.1.0.0.tgz" \
-H "feedz-api-key: T-xyzXYZ" \
https://f.feedz.io/my-org/my-repo
# Add &replace=true to the URI to overwrite an existing version
$filepath = "C:\MyPackage.1.0.0.tgz"
$filename = [System.IO.Path]::GetFileName($filepath)
$uri = "https://f.feedz.io/my-org/my-repo?filename=$filename"
$headers = @{ "feedz-api-key" = "T-xyzXYZ" }
Invoke-WebRequest -Uri $uri -Method Post `
-ContentType "application/octet-stream" `
-InFile $filepath -Headers $headers
Downloading packages
The download URL for a generic package follows this format:
https://f.feedz.io/<org>/<repo>/packages/<id>/<version>/download
feedz.exe download \
--org my-org \
--repo my-repo \
--pat T-xyzXYZ \
--id MyPackage \
--version 1.0.0
# Public repository — no authentication required
curl -fO "https://f.feedz.io/my-org/my-repo/packages/MyPackage/1.0.0/download"
# Private repository
curl -fO \
-H "feedz-api-key: T-xyzXYZ" \
"https://f.feedz.io/my-org/my-repo/packages/MyPackage/1.0.0/download"
# Public repository — no authentication required
Invoke-WebRequest `
-Uri "https://f.feedz.io/my-org/my-repo/packages/MyPackage/1.0.0/download" `
-OutFile "MyPackage.1.0.0.tgz"
# Private repository
$headers = @{ "feedz-api-key" = "T-xyzXYZ" }
Invoke-WebRequest `
-Uri "https://f.feedz.io/my-org/my-repo/packages/MyPackage/1.0.0/download" `
-Headers $headers `
-OutFile "MyPackage.1.0.0.tgz"
The Feedz CLI also supports delta compression on download — pass --similarPackagePath to transfer only the changed bytes.
Automatic repackaging
When automatic repackaging is enabled, zip and tar archives in the generic feed are also available through the NuGet feed as .nupkg files. This lets tools like Octopus Deploy consume them via a standard NuGet client without needing to use the direct URL or CLI.