Open
Description
As a GitHub administrator,
I want to dump and diff users of all repositories
So that I can check if some unexpected users have been added or not, or have inconvenient permissions.
Dump and diff here means to have a record of users and permissions for each repo, to be able to load such records, and compare differences between iterations.
Inconvenient permissions here means to have to high privileges for example.
Unexpected users here means people outside the Group.
Pseudocode :
O = Organisation
OM = Organisation Members For O
OOC = Outside Collaborators For O
For Each Project P in O:
PM = Get Membres For P
MPerm = Get Permissions Of PM
For Each Membre M in PM:
If M Is In OC: // Partner, external contributor
Display Member And Warning
Else If M Is Not In OM: // Someone who has left the Group but still in project
Display Member And Warning
Else: // Ok
Display Member
By Display Member* it means display the alias of the member and its permission for this project.
Warning means use emoji or something visible to request attention
A JSON report can be produced in parallel of standard output, like:
[ /* Projects in array */
{
"project" : projectName,
"warning": emoji,
"members": [ /*Project members in arrays*/
{
"alias": memberAlias,
"company": memberCompany,
"mail": memberEmail,
"isOutsideOrganisation": yes/no,
"isOutsideCollaboratorOfOrganisation": yes/no,
},
...
}
...
]