vsteam icon indicating copy to clipboard operation
vsteam copied to clipboard

Get-VSTeamFeed: distinguish between project and organization level scope feeds

Open mnieto opened this issue 2 years ago • 1 comments

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 properties Scope and ProjectId 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

mnieto avatar Sep 10 '22 10:09 mnieto

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.

SebastianSchuetze avatar Sep 10 '22 17:09 SebastianSchuetze