UCLA-Creative-Labs / cl-rfcs

A place to propose and track RFCs for new or existing internal projects at CL.
MIT License
4 stars 0 forks source link

Student org-focused GitHub user manager #14

Open mattxwang opened 2 years ago

mattxwang commented 2 years ago

Description:

In my three years w/ @uclaacm I've noticed that managing GitHub teams (and subteams) within an organization is quite frustrating. In particular, I do a lot of actions that I believe should be batchable. One driving use-case is member "rotation": when a student graduates, we should move them to the appropriate team and de-list them from any current projects.

The project proposal is to create a public data store and a service that acts on said store.

The store:

Then, we create a service that:

I believe we can implement this project in a very simple manner: a data store in some public repo (or similar), a stateless Lambda that calls into the GitHub API to perform said actions, and a trivial frontend that parses relevant data and manages user auth with GitHub SSO.

(also, this goes without saying - the intention is to make this useful for CL as well. interested to scope out how this problem manifests itself at Daily Bruin, etc.)

mattxwang commented 2 years ago

cc: @BryanPan342

mattxwang commented 2 years ago

Also, looks like the table-updating action is failing?

https://github.com/UCLA-Creative-Labs/cl-rfcs/runs/3224195468?check_suite_focus=true

BryanPan342 commented 2 years ago

Also, looks like the table-updating action is failing?

https://github.com/UCLA-Creative-Labs/cl-rfcs/runs/3224195468?check_suite_focus=true

Ahh.. if the doofus (me) actually read the docs, they would know that it should be labels not label in the github action

BryanPan342 commented 2 years ago

Something to think about is how opinionated the app should be.. Something like "interns" or "committees" might not apply to other orgs..

I'm totally okay will building something that hits a common use case between CL and ACM, but if we want this to be bigger, then we probably need to think about another solution?

As a whole though, it sounds like we could do this as a web app? Though I think it would be pretty cool to do this as a cli as well :)

mattxwang commented 2 years ago

Something to think about is how opinionated the app should be.. Something like "interns" or "committees" might not apply to other orgs..

Oh of course, I totally agree. I think the idea is that the tags are user-configurable, and then you can batch-apply actions to tags. The actions would be change teams, etc. - interns/committees/grad year are just names of possible fields.

but if we want this to be bigger, then we probably need to think about another solution?

Yeah for sure! I'll see if I can talk to someone @ DB on how all of this works on their end. Curious if this is something that Nova, DevX, Blueprint, etc. run into as well 👀

As a whole though, it sounds like we could do this as a web app? Though I think it would be pretty cool to do this as a cli as well :)

Yeah, I'm thinking web-app too, mostly just to minimize friction for the end user - I imagine the person doing this might be less technical within the club.

mattxwang commented 2 years ago

This is out of scope, but wanted to jot down publicly something I mentioned in an ACM Slack message

Something that's been on my mind recently: a better internal permissions management system. This includes:

  • Google Drive
  • GitHub
  • Slack
  • Discord
  • AWS (IAM accounts and such)
  • Netlify
  • Tertiary dev resources that should be phased out some time anyways, like Heroku

Some features I'm interested in are:

  • automatic permissions rotations
  • batch actions (by committee, grad year, etc.)
  • dealing with overlaps neatly (ex double/triple officers)
  • no coding required :blush:

I think this is an opportunity for us to set some processes and make everyone's life easier. A moonshot idea is writing some sort of open-source software to make this kind of work easier; if you're super curious, you can see this RFC (links to this RFC) I wrote for Creative Labs a couple of months ago.

(more broadly, very interested in internal automation. Will try to write down more of my ideas when I have time :blush: )