Skip to content

GitHub - Dump and diff of users #24

Open
@pylapp

Description

@pylapp

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,
                                },
                                ...  
        }
        ...
]

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfeature-GitHubEnhancement related to the GitHub-based feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions