thewca / worldcubeassociation.org

All of the code that runs on worldcubeassociation.org
https://www.worldcubeassociation.org/
GNU General Public License v3.0
318 stars 174 forks source link

Synchronize GitHub teams with GSuite #4705

Open Ivan-Brigidano opened 4 years ago

Ivan-Brigidano commented 4 years ago

I don't know if this would be even possible. But if so, it would be much easier to maintain for administrators.

Ivan-Brigidano commented 4 years ago

According to #449 Slack isn't possible because of the current plan. But maybe GitHub?

dunkOnIT commented 2 years ago

Asking from a place of pure ignorance:

  1. Is this something we still want to consider?
  2. (If yes to 1), can we clarify what sort of synchronisation is being proposed here?
  3. (If yes to 1), can we quantify how much benefit this would create for administrators?

My assumption is that WCA subcommittee memberships change relatively infrequently, and the associated admin isn't particularly onerous. While I'm sure it isn't anyone's definition of fun, I'd expect it to be 5-10 minutes of setup per user at max, a few times a year?

Understanding the above would help us prioritise this issue, or backlog it, as necessary.

gregorbg commented 2 years ago

There are UIs on the non-public (Staff-only) part of the WCA website that allow to manage membership of the different Teams and Committees. These memberships are then automatically synced to Google Workspace, such that mailing lists like software@worldcubeassociation.org always reach the correct recipients without having to manually add people in the Google Workspace admin panel as well.

It's pretty much just convenience and your summary in terms of workload vs. benefit is accurate. However, consider that there are a lot of different WCA teams that can sum up the workload. This issue is mostly useful for people who want to get a better understanding of the codebase, because this implementation strikes the balance between "super-trivial one-line change" and "complex project". Hence the "good second issue" label

dunkOnIT commented 2 years ago

A cursory glance at the Github documentation suggests that adding users to the WCA Github Organisation would be possible, and given that it presents good learning potential it makes sense to run with it.

Given that there's quite a bit of (now unrelated) discussion in this issue, I suggest the following:

I favour this approach because its easier for a naive collaborator to see what needs to be done. I see now that I can also just edit the title and original post of this issue, but that feels a bit weird - let me know what you think.

gregorbg commented 2 years ago

On second thought, this might be not so trivial after all, because GitHub users are not always identified by the WCA mail address. We can do automated GSuite syncs based only on the assumption that Staff members add their WCA email address to their WCA website profile, and we would have to introduce (and store in the DB, which makes this not so trivial) a second field for "GitHub username". Because even if APIs exist for this task, our code wouldn't know that GitHub user gregorbg is indeed 2012BILL01.

dunkOnIT commented 2 years ago

Agreed - I had in mind that adding someone to Github org would be optional, only triggered if a Github email/username is entered. Wasn't aware that database interactions increase complexity significantly - that's good to know.

One way of resolving this - which I would argue against - would be creating a new Github user using the WCA email. Reason for arguing against this is the degree to which a Github profile acts as a portfolio for many.

Another option could be to split it into two tasks:

Seems difficult to coordinate in practice though, and I'm not sure if the codebase is loosely coupled enough for that to be viable?