GithubHelp home page GithubHelp logo

isabella232 / gu-who Goto Github PK

View Code? Open in Web Editor NEW

This project forked from salesforce-ux/gu-who

0.0 0.0 0.0 450 KB

answering: who are all these users in my GitHub org?

Home Page: https://gu-who-salesforce-ux.herokuapp.com

License: Apache License 2.0

Scala 75.33% HTML 23.51% CSS 1.16%

gu-who's Introduction

GU: Who?

answering: "Who has access to my GitHub organisation - and why?"

gu:who? is a simple service for auditing the members of your GitHub organisation. It was written by The Guardian to get their 200-strong GitHub organisation under control, resulting in 100% of membership being accounted for and 98% Two-Factor-Auth enabled, up from 54% - you can read more about it in this Guardian Developers blogpost.

If your organisation is large - and you have 3rd parties, contractors, etc who you need to give access to your code - it can be very difficult to work out whether some accounts are legitimately members of your GitHub organisation or not. Accounts which don't have many details set in their profile are difficult to identify. When employees leave, how sure are you that you'll remember to remove their account?

gu:who? aims to make dealing with this all a little bit more easy... it aims to ensure all users in your organisation meet some basic requirements, and it makes it easy to see where requirements aren't being met.

It does this by using GitHub as its user-interface: GitHub issues and simple text files stored in GitHub 'people' repo held under your org- no other database or spreadsheet, no Active Directory or LDAP.

Just the tools the developer already uses: GitHub

Enforced Requirements

These requirements are intended to make it easier to manage the user accounts and work out if they should be in your organisation or not:

  • Two-Factor-Auth enabled (this requirement can be waived for users in the 'bots' team - for instance, for a long-lived CI bot account that may need to be accessed by multiple humans, who would otherwise have to share an authentication token)
  • A Full Name set in the user GitHub Profile
  • Sponsor: each GitHub username should be in github.com/your-organization-name/people/blob/master/users.txt (see an example or read more details) - added by Pull Request by any senior member of the organisation (who, in effect, acts as the 'sponsor' for the user for being in the GitHub Org). The current GitHub admin interface doesn't give any long-term audit trail on how a user came to join an Org, so this file serves that purpose.

Actions taken by the gu-who bot...

  • Opens a GitHub issue against each user that doesn't pass the requirements
  • Conceals organisation membership for users which don't comply with the requirements
  • After a grace period of 2 weeks removes insecure users from the org - a final warning is given 1 week before removal.

Deployment

What's your logo?

Well, obviously, it would be the ridiculously suitable Riddlocat by @cameronmcefee, but we can't use it for legal reasons laid out so eloquently by the Riddlocat himself on the GitHub Octodex FAQ.

You'll just have to imagine the logo there.

What else?

If you're interested in Git and security, you may also be interested in The BFG Repo-Cleaner, a simpler, faster alternative to git-filter-branch for cleansing bad data out of your Git repository - ie Passwords, Credentials & other private or unwanted data.

You might also be interested in Prout, to tell you when your pull requests are reaching Production.

gu-who's People

Contributors

alexmuller avatar annashipman avatar friism avatar gjtorikian avatar kaelig avatar kant avatar lindseydew avatar rtyley avatar snim2 avatar stof avatar svc-scm avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.