On Fri, Oct 7, 2011 at 17:28, Matthew Brush mbrush@codebrainz.ca wrote:
Hi all,
For the tl;dr crowd: https://github.com/geany
And now for the long version :)
I've setup Geany as an organization on Github.com[1]. I've also setup an empty repository[2] for when the SVN conversion is ready to push.
I will try and explain how this works because it's a little bit complicated at first glance.
To create an Organization, you first need to create a personal account. The personal account can't have the same name as the Organization. After the personal account is created, you convert it into an Organization which is almost a separate entity but is in some ways tied to the personal account.
The personal account I created to do this is called 'geanyadmin' (to avoid clashing with the Organization name).
Once the organization is created, you can add "Owners" to it. Owners have the exact same access as the 'geanyadmin' user, for example, an owner could theoretically sign up the Geany organization to a pay account, the Owners have wide-open access to everything. Basically there's no real reason to ever use the 'geanyadmin' account as far as I can see, once Owners are added to the Organization.
Just to start, because I had their Github usernames, I've added Enrico and Colomban as owners, as well as myself since I need access to set the stuff up. Whoever else should be an Owner (Frank, Nick, etc.) just let me (or other Owners) know. Read below as for why not too many people really need to be "Owners".
Now with an Organization, and some Owners who are able to administer the Organization, we come to Teams. Teams are groups of users who all have the same permissions on one or more repository. Teams can be setup to have Pull Only, Pull and Push, and Pull, Push and Administer access.
Just to give an example, we'll take the 'geany' repository which will be the main Geany core repository. We could add a team for "Core Developers", this group of users could be the existing people with commit access to SVN. In fact I've already created this team, with all 3 permissions mentioned above, and since I had their Github usernames, I've added Colomban and Enrico to this group.
Now, what we could do, for example, is to create another Team called "Contributors" or something, and this Team could have Pull only access (even without being in a team, anyone can still clone/pull). Myself, I would probably go into the "Contributors" Team, since I contribute a fair bit, but I don't have commit access.
Another Team could be called "Translators", and have one of the three levels of access control mentioned above, and it could be for all the Geany repositories, since translators likely work on both Geany and Geany-Plugins. Another Team could be "Newsletter Writers" or something and they could have perhaps Push and Pull access on the "newletters" repository only.
For starting, I suggest the following Teams:
- Core Developers (Pull/Push/Admin) - Core Contributors (Pull) - Plugin Developers (Pull/Push) - Plugin Contributors (Pull) - Translators (Pull/Push? or does it go through Frank?) - on both geany and plugins repositories? - Newsletter Editors (Pull/Push on newsletters repo)
Is there any reason for creating teams with pull rights only (core contributors, plugin contributors, ...)? The whole world should have pull rights so making a team for them seems unnecessary to me unless there's some other advantage.
Cheers, Jiri