Create an Organization level feed in Azure Artifacts
A while ago the Azure DevOps team has removed the option to create "Organization level feeds" in Azure Artifacts. This move matches many previous efforts to isolate "projects" in Azure DevOps to make things less confusing and easier to migrate.
The official guidance is to create Project level feeds, unless you know what you're doing. And to discourage users, you need to create a new feed using the REST API instead.
Exactly how, the issue doesn't explain. So let me show you how I did it.
1. Create a Bogus Feed
Navigate to the Artifacts Hub and hit the + Create Feed button. Enter a bogus name for the feed. Don't hit create yet!
Then open the Developer Tools in Chrome or Edge. Go to the Network tab and hit Create to create the feed:
2. Capture the POST call
From the Network tab, find the POST call to the _api/Packaging/Feeds
endpoint and copy it as PowerShell (or the kind of scripting language you're familiar with).
3. Change the call to target the Organization level
Change the following elements:
- Remove the Project GUID from the POST URL ant the Path header:
- Remove the Project element from the payload
- Change the
temporary-bogus-name
to the desired value - Add
-UseBasicParsing
if, like me, you don't have Internet Explorer installed
Don't copy my values verbatim. The Identity Descriptors are specific to you account and you need a valid Bearer Token.
Now run the code and: there's your feed!
Note: this example doesn't change the authentication headers, the Bearer Token will expire, breaking the code. You can replace then Bearer Token with a base64 encoded PAT string.