vsteam
vsteam copied to clipboard
Get-VSTeamFeed: distinguish between project and organization level scope feeds
Background
Because the lack of a specific API for this, or because an unexpected behaviour of the current API , it is hard to distinguish between project scoped feeds and organization scoped ones.
Accordingly with the API documentation:
If the project parameter is present, gets all feeds in the given project. If omitted, gets all feeds in the organization.
But if we omit the project name, what we get is the complete list of feeds (project and organization scoped)
Proposal
- When invoking
Get-VSTeamFeed
, add new propertiesScope
andProjectId
to the returned objects. Scope can have 2 possible values: Project or Organization - How to get this info?: Examining the url property. Using a regular expression we can distinguish between both types
- Project: https://feeds.dev.azure.com/{organization}/{projectId}/_apis/Packaging/Feeds/{feedId}
- Organization: https://feeds.dev.azure.com/{organization}/_apis/Packaging/Feeds/{feedId}
Example
Get-VSTeamfeed
Name Description Id Scope ProjectId
---- ----------- -- ----- ---------
demo f6ffc6ee-ea53-4612-8f5d-6f95b8738a2b Project f6ffc6ee-ea53-4612-8f5d-6f95b8738a2b
global f6ffc6ee-ea53-4612-8f5d-aaaa89542baa Organization
I know that this can be achieved with a script after calling Get-VSTeamFeed
, but it could be nice to have it already implemented in the module. 😃
Solved Problem
There is no a direct way to list only organization scoped feeds
Additional info / code snippets?
Get-VSTeamFeed | where url -Match "https://feeds.dev.azure.com/$organziation/_apis/Packaging"
This command returns only the package feeds at organization scope
Started to work on this. Should be relatively easy to implement. I noticed the Azure CLI has the same scope. I will orientate on this implementation.