Brand new Sparrow6 plugin Ado-permissions-calculator enables user friendly API to deal with Azure devops security model calculations.
The plugins is very handy for people doing automation to manage Azure devops permissions for various kinds of objects ( Git, Pipelines, Libraries )
Install
s6 --install ado-permissions-calculator
Usage
Following are some typical use cases, follow the documentation to know more.
List namespaces
s6 --plg-run ado-permissions-calculator
18:09:53 10/23/2019 [task-cli] run plg ado-permissions-calculator
18:09:53 10/23/2019 [task-cli] run thing ado-permissions-calculator
18:10:00 10/23/2019 [ado-permissions-calculator] Analytics
18:10:00 10/23/2019 [ado-permissions-calculator] AnalyticsViews
18:10:00 10/23/2019 [ado-permissions-calculator] AuditLog
18:10:00 10/23/2019 [ado-permissions-calculator] PipelineCachePrivileges
18:10:00 10/23/2019 [ado-permissions-calculator] ReleaseManagement
18:10:00 10/23/2019 [ado-permissions-calculator] ReleaseManagement
18:10:00 10/23/2019 [ado-permissions-calculator] Identity
18:10:00 10/23/2019 [ado-permissions-calculator] WorkItemTrackingAdministration
18:10:00 10/23/2019 [ado-permissions-calculator] DistributedTask
18:10:00 10/23/2019 [ado-permissions-calculator] WorkItemQueryFolders
18:10:00 10/23/2019 [ado-permissions-calculator] Git Repositories
... output truncated ... 
18:10:01 10/23/2019 [ado-permissions-calculator] Social
18:10:01 10/23/2019 [ado-permissions-calculator] Security
18:10:01 10/23/2019 [ado-permissions-calculator] IdentityPicker
18:10:01 10/23/2019 [ado-permissions-calculator] ServicingOrchestration
18:10:01 10/23/2019 [ado-permissions-calculator] Build
18:10:01 10/23/2019 [ado-permissions-calculator] DashboardsPrivileges
18:10:01 10/23/2019 [ado-permissions-calculator] VersionControlItems
List permissions for Library
s6 --plg-run ado-permissions-calculator@namespace=Library
18:10:30 10/23/2019 [task-cli] run thing ado-permissions-calculator
18:10:42 10/23/2019 [ado-permissions-calculator] Name         Permission Description     Permission Bit
18:10:42 10/23/2019 [ado-permissions-calculator] -----------  -------------------------  ----------------
18:10:42 10/23/2019 [ado-permissions-calculator] View         View library item          1
18:10:42 10/23/2019 [ado-permissions-calculator] Administer   Administer library item    2
18:10:42 10/23/2019 [ado-permissions-calculator] Create       Create library item        4
18:10:42 10/23/2019 [ado-permissions-calculator] ViewSecrets  View library item secrets  8
18:10:42 10/23/2019 [ado-permissions-calculator] Use          Use library item           16
18:10:42 10/23/2019 [ado-permissions-calculator] Owner        Owner library item         32
Calculate all permissions for Library
s6 --plg-run ado-permissions-calculator@namespace=Library,actions=all
18:14:21 10/23/2019 [task-cli] run plg ado-permissions-calculator@namespace=Library,actions=all
18:14:21 10/23/2019 [task-cli] run thing ado-permissions-calculator
18:14:35 10/23/2019 [ado-permissions-calculator] Name         Permission Description     Permission Bit
18:14:35 10/23/2019 [ado-permissions-calculator] -----------  -------------------------  ----------------
18:14:35 10/23/2019 [ado-permissions-calculator] View         View library item          1
18:14:35 10/23/2019 [ado-permissions-calculator] Administer   Administer library item    2
18:14:35 10/23/2019 [ado-permissions-calculator] Create       Create library item        4
18:14:35 10/23/2019 [ado-permissions-calculator] ViewSecrets  View library item secrets  8
18:14:36 10/23/2019 [ado-permissions-calculator] Use          Use library item           16
18:14:36 10/23/2019 [ado-permissions-calculator] Owner        Owner library item         32
18:14:40 10/23/2019 [ado-permissions-calculator] ===
18:14:40 10/23/2019 [ado-permissions-calculator] actions: "all"
18:14:40 10/23/2019 [ado-permissions-calculator] sum: 63
Calculate CreateTag, CreateBranch permissions for Git Repositories
s6 --plg-run ado-permissions-calculator@namespace=GitRepositories,actions=CreateTag:CreateBranch
18:13:35 10/23/2019 [task-cli] run plg ado-permissions-calculator@namespace=GitRepositories,actions=CreateTag:CreateBranch
18:13:35 10/23/2019 [task-cli] run thing ado-permissions-calculator
18:13:49 10/23/2019 [ado-permissions-calculator] Name                     Permission Description                                  Permission Bit
18:13:49 10/23/2019 [ado-permissions-calculator] -----------------------  ------------------------------------------------------  ----------------
18:13:49 10/23/2019 [ado-permissions-calculator] Administer               Administer                                              1
18:13:49 10/23/2019 [ado-permissions-calculator] GenericRead              Read                                                    2
18:13:49 10/23/2019 [ado-permissions-calculator] GenericContribute        Contribute                                              4
18:13:49 10/23/2019 [ado-permissions-calculator] ForcePush                Force push (rewrite history, delete branches and tags)  8
18:13:49 10/23/2019 [ado-permissions-calculator] CreateBranch             Create branch                                           16
18:13:49 10/23/2019 [ado-permissions-calculator] CreateTag                Create tag                                              32
18:13:49 10/23/2019 [ado-permissions-calculator] ManageNote               Manage notes                                            64
18:13:49 10/23/2019 [ado-permissions-calculator] PolicyExempt             Bypass policies when pushing                            128
18:13:49 10/23/2019 [ado-permissions-calculator] CreateRepository         Create repository                                       256
18:13:49 10/23/2019 [ado-permissions-calculator] DeleteRepository         Delete repository                                       512
18:13:50 10/23/2019 [ado-permissions-calculator] RenameRepository         Rename repository                                       1024
18:13:50 10/23/2019 [ado-permissions-calculator] EditPolicies             Edit policies                                           2048
18:13:50 10/23/2019 [ado-permissions-calculator] RemoveOthersLocks        Remove others' locks                                    4096
18:13:50 10/23/2019 [ado-permissions-calculator] ManagePermissions        Manage permissions                                      8192
18:13:50 10/23/2019 [ado-permissions-calculator] PullRequestContribute    Contribute to pull requests                             16384
18:13:50 10/23/2019 [ado-permissions-calculator] PullRequestBypassPolicy  Bypass policies when completing pull requests           32768
18:13:56 10/23/2019 [ado-permissions-calculator] ===
18:13:56 10/23/2019 [ado-permissions-calculator] actions: [
18:13:56 10/23/2019 [ado-permissions-calculator]     "CreateTag",
18:13:56 10/23/2019 [ado-permissions-calculator]     "CreateBranch"
18:13:57 10/23/2019 [ado-permissions-calculator] ]
18:13:57 10/23/2019 [ado-permissions-calculator] sum: 48
Use pragramatic API
One can run the plugin using modern and shiny Raku programming language as well.
# Calculate View, Create permissions for Library
task-run "permissions sum", "ado-permissions-calculator", %(
    namespace => "Library",
    actions => qqw{View Create)
);
Documentation
Thank you for reading.
    
Top comments (0)