MethodsAndPractices / vsteam

PowerShell module for accessing Azure DevOps Services and Azure DevOps Server (formerly VSTS or TFS)
https://methodsandpractices.github.io/vsteam-docs/
MIT License
447 stars 155 forks source link

Project still won't validate when collection has 100+ projects #415

Closed PeterLefebvre closed 3 years ago

PeterLefebvre commented 3 years ago

issue 363 (https://github.com/MethodsAndPractices/vsteam/issues/363) has been closed recently, but it looks like the issue is not yet resolved. Even with the proposed PSDefaultParameterValues[".vsteam:top"] = 500.

As @shazaman23 and @morrell mentioned, it looks like a the TeamProject validation list is limited to the first 100 projects. Not only this happens with the Set-VSTeamDefaultProject, but also when piping Teamproject list to for example Get-VSTeamBuild

I have run some tests with the Set default project on different versions of VSTEAM. I have 110 Teamprojects, and starts failing after 100.
It works fine for 6.4.8 and 6.5.1.

Here the result

==========  Set Default Project when Collection has 100+ projects
    Importing VSTEAM version 6.4.8
    Running VSTEAM : 6.4.8
# begin # with top 999 ##############################
    -- list PSDefaultParameterValues
    -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    3 - Setting project tmpVSTEAM Project 039 as default.
    ...
    98 - Setting project tmpVSTEAM Project 050 as default.
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
    102 - Setting project tmpVSTEAM Project 031 as default.
    103 - Setting project tmpVSTEAM Project 107 as default.
    104 - Setting project tmpVSTEAM Project 033 as default.
    105 - Setting project tmpVSTEAM Project 034 as default.
    106 - Setting project tmpVSTEAM Project 076 as default.
    107 - Setting project tmpVSTEAM Project 087 as default.
    108 - Setting project tmpVSTEAM Project 001 as default.
    109 - Setting project tmpVSTEAM Project 019 as default.
    110 - Setting project tmpVSTEAM Project 058 as default.
# end ###############################################

# begin # with PSDefaultParameterValues #############
    Running VSTEAM : 6.4.8
    -- list PSDefaultParameterValues

Name                           Value                                                                                                                                                                                                                     
----                           -----                                                                                                                                                                                                                     
*-vsteam*:Top                  500                                                                                                                                                                                                                       
    -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    3 - Setting project tmpVSTEAM Project 039 as default.
    ...
    98 - Setting project tmpVSTEAM Project 050 as default.
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
    102 - Setting project tmpVSTEAM Project 031 as default.
    103 - Setting project tmpVSTEAM Project 107 as default.
    104 - Setting project tmpVSTEAM Project 033 as default.
    105 - Setting project tmpVSTEAM Project 034 as default.
    106 - Setting project tmpVSTEAM Project 076 as default.
    107 - Setting project tmpVSTEAM Project 087 as default.
    108 - Setting project tmpVSTEAM Project 001 as default.
    109 - Setting project tmpVSTEAM Project 019 as default.
    110 - Setting project tmpVSTEAM Project 058 as default.
    -------- removing modules VSTEAM and SHIPS ------------
Removed default project and team account information
# end ###############################################

    Importing VSTEAM version 6.5.1
    Running VSTEAM : 6.5.1
# begin # with top 999 ##############################
    -- list PSDefaultParameterValues
    -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    3 - Setting project tmpVSTEAM Project 039 as default.
    ...
    98 - Setting project tmpVSTEAM Project 050 as default.
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
    102 - Setting project tmpVSTEAM Project 031 as default.
    103 - Setting project tmpVSTEAM Project 107 as default.
    104 - Setting project tmpVSTEAM Project 033 as default.
    105 - Setting project tmpVSTEAM Project 034 as default.
    106 - Setting project tmpVSTEAM Project 076 as default.
    107 - Setting project tmpVSTEAM Project 087 as default.
    108 - Setting project tmpVSTEAM Project 001 as default.
    109 - Setting project tmpVSTEAM Project 019 as default.
    110 - Setting project tmpVSTEAM Project 058 as default.
# end ###############################################

# begin # with PSDefaultParameterValues #############
    Running VSTEAM : 6.5.1
    -- list PSDefaultParameterValues
*-vsteam*:Top                  500                                                                                                                                                                                                                       
    -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    3 - Setting project tmpVSTEAM Project 039 as default.
    ...
    98 - Setting project tmpVSTEAM Project 050 as default.
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
    102 - Setting project tmpVSTEAM Project 031 as default.
    103 - Setting project tmpVSTEAM Project 107 as default.
    104 - Setting project tmpVSTEAM Project 033 as default.
    105 - Setting project tmpVSTEAM Project 034 as default.
    106 - Setting project tmpVSTEAM Project 076 as default.
    107 - Setting project tmpVSTEAM Project 087 as default.
    108 - Setting project tmpVSTEAM Project 001 as default.
    109 - Setting project tmpVSTEAM Project 019 as default.
    110 - Setting project tmpVSTEAM Project 058 as default.
    -------- removing modules VSTEAM and SHIPS ------------
Removed default project and team account information
# end ###############################################

    Importing VSTEAM version 7.1.3
    Running VSTEAM : 7.1.3
# begin # with top 999 ##############################
    -- list PSDefaultParameterValues
    -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    3 - Setting project tmpVSTEAM Project 039 as default.
    ...
    98 - Setting project tmpVSTEAM Project 050 as default.
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 027' is invalid
    102 - Setting project tmpVSTEAM Project 031 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 031' is invalid
    103 - Setting project tmpVSTEAM Project 107 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 107' is invalid
    104 - Setting project tmpVSTEAM Project 033 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 033' is invalid
    105 - Setting project tmpVSTEAM Project 034 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 034' is invalid
    106 - Setting project tmpVSTEAM Project 076 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 076' is invalid
    107 - Setting project tmpVSTEAM Project 087 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 087' is invalid
    108 - Setting project tmpVSTEAM Project 001 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 001' is invalid
    109 - Setting project tmpVSTEAM Project 019 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 019' is invalid
    110 - Setting project tmpVSTEAM Project 058 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 058' is invalid
# end ###############################################

# begin # with PSDefaultParameterValues #############
    Running VSTEAM : 7.1.3
    -- list PSDefaultParameterValues
*-vsteam*:Top                  500                                                                                                                                                                                                                       
    -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    3 - Setting project tmpVSTEAM Project 039 as default.
    ...
    98 - Setting project tmpVSTEAM Project 050 as default.
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 027' is invalid
    102 - Setting project tmpVSTEAM Project 031 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 031' is invalid
    103 - Setting project tmpVSTEAM Project 107 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 107' is invalid
    104 - Setting project tmpVSTEAM Project 033 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 033' is invalid
    105 - Setting project tmpVSTEAM Project 034 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 034' is invalid
    106 - Setting project tmpVSTEAM Project 076 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 076' is invalid
    107 - Setting project tmpVSTEAM Project 087 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 087' is invalid
    108 - Setting project tmpVSTEAM Project 001 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 001' is invalid
    109 - Setting project tmpVSTEAM Project 019 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 019' is invalid
    110 - Setting project tmpVSTEAM Project 058 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 058' is invalid
    -------- removing modules VSTEAM and SHIPS ------------
Removed default project and team account information
# end ###############################################

    Importing VSTEAM version 7.4.0
The property 'Billing' cannot be found on this object. Verify that the property exists and can be set.
At D:\Users\Peter\Documents\WindowsPowerShell\Modules\VSTeam\7.4.0\vsteam.functions.ps1:7169 char:16
+                [vsteam_lib.Versions]::Billing = ''
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException

    Running VSTEAM : 7.4.0
The property 'Billing' cannot be found on this object. Verify that the property exists and can be set.
# begin # with top 999 ##############################
    -- list PSDefaultParameterValues
    -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    3 - Setting project tmpVSTEAM Project 039 as default.
    ...
    98 - Setting project tmpVSTEAM Project 050 as default.
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 027' is invalid
    102 - Setting project tmpVSTEAM Project 031 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 031' is invalid
    103 - Setting project tmpVSTEAM Project 107 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 107' is invalid
    104 - Setting project tmpVSTEAM Project 033 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 033' is invalid
    105 - Setting project tmpVSTEAM Project 034 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 034' is invalid
    106 - Setting project tmpVSTEAM Project 076 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 076' is invalid
    107 - Setting project tmpVSTEAM Project 087 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 087' is invalid
    108 - Setting project tmpVSTEAM Project 001 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 001' is invalid
    109 - Setting project tmpVSTEAM Project 019 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 019' is invalid
    110 - Setting project tmpVSTEAM Project 058 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 058' is invalid
# end ###############################################

# begin # with PSDefaultParameterValues #############
    Running VSTEAM : 7.4.0
    -- list PSDefaultParameterValues
*-vsteam*:Top                  500                                                                                                                                                                                                                       
    -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    3 - Setting project tmpVSTEAM Project 039 as default.
    ...
    98 - Setting project tmpVSTEAM Project 050 as default.
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 027' is invalid
    102 - Setting project tmpVSTEAM Project 031 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 031' is invalid
    103 - Setting project tmpVSTEAM Project 107 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 107' is invalid
    104 - Setting project tmpVSTEAM Project 033 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 033' is invalid
    105 - Setting project tmpVSTEAM Project 034 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 034' is invalid
    106 - Setting project tmpVSTEAM Project 076 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 076' is invalid
    107 - Setting project tmpVSTEAM Project 087 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 087' is invalid
    108 - Setting project tmpVSTEAM Project 001 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 001' is invalid
    109 - Setting project tmpVSTEAM Project 019 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 019' is invalid
    110 - Setting project tmpVSTEAM Project 058 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 058' is invalid
    -------- removing modules VSTEAM and SHIPS ------------
Removed default project and team account information
# end ###############################################

It seems I have also some issue with the 'Billing' property, but is a different issue and am ignoring this for now.

PeterLefebvre commented 3 years ago

Just discovered in the Release notes of 7.1.3 new functions to set and clear the DefaultProjectCount. I have done the tests again using the Set-VSTeamDefaultProjectCount to 999 and all projects in my test can now be set as default (as from version 7.1.3).

Importing VSTEAM version 7.1.2
    # begin # with top 999 ##############################
    Running VSTEAM : 7.1.2
        -- list EnvVar & PSDefaultParameterValues
        EnvVar TEAM_PROJECTCOUNT 999 
        -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    ...
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 027' is invalid
    102 - Setting project tmpVSTEAM Project 031 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 031' is invalid
    # end ###############################################

    # begin # with PSDefaultParameterValues #############
    Running VSTEAM : 7.1.2
        -- list EnvVar & PSDefaultParameterValues
*-vsteam*:Top                  500                                                                                                                                                                                             
        EnvVar TEAM_PROJECTCOUNT 999 
        -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    ...
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 027' is invalid
    102 - Setting project tmpVSTEAM Project 031 as default.
Cannot validate argument on parameter 'Project'. 'tmpVSTEAM Project 031' is invalid
    -------- removing modules VSTEAM and SHIPS ------------
Removed default project and team account information
# end ###############################################

Importing VSTEAM version 7.1.3
    # begin # with top 999 ##############################
    Running VSTEAM : 7.1.3
        -- list EnvVar & PSDefaultParameterValues
        EnvVar TEAM_PROJECTCOUNT 999 
        -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    ...
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
    102 - Setting project tmpVSTEAM Project 031 as default.
    # end ###############################################

    # begin # with PSDefaultParameterValues #############
    Running VSTEAM : 7.1.3
        -- list EnvVar & PSDefaultParameterValues
*-vsteam*:Top                  500                                                                                                                                                                                             
        EnvVar TEAM_PROJECTCOUNT 999 
        -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    ...
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
    102 - Setting project tmpVSTEAM Project 031 as default.
    -------- removing modules VSTEAM and SHIPS ------------
Removed default project and team account information
# end ###############################################

Importing VSTEAM version 7.4.0
    # begin # with top 999 ##############################
    Running VSTEAM : 7.4.0
        -- list EnvVar & PSDefaultParameterValues
        EnvVar TEAM_PROJECTCOUNT 999 
        -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    ...
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
    102 - Setting project tmpVSTEAM Project 031 as default.
    # end ###############################################

    # begin # with PSDefaultParameterValues #############
    Running VSTEAM : 7.4.0
        -- list EnvVar & PSDefaultParameterValues
*-vsteam*:Top                  500                                                                                                                                                                                             
        EnvVar TEAM_PROJECTCOUNT 999 
        -- endlist PSDefaultParameterValues
    1 - Setting project tmpVSTEAM Project 010 as default.
    2 - Setting project tmpVSTEAM Project 009 as default.
    ...
    99 - Setting project tmpVSTEAM Project 062 as default.
    100 - Setting project tmpVSTEAM Project 098 as default.
    101 - Setting project tmpVSTEAM Project 027 as default.
    102 - Setting project tmpVSTEAM Project 031 as default.
    -------- removing modules VSTEAM and SHIPS ------------
Removed default project and team account information
# end ###############################################
SebastianSchuetze commented 3 years ago

Thanks for checking yourself and closing it!