Groups and projects

Ben Gamari ben at well-typed.com
Thu Jan 24 17:16:21 UTC 2019


Simon Peyton Jones via ghc-devs <ghc-devs at haskell.org> writes:

>> Alright, I believe I have found the issue: you are a member of 
>> the GHC group and GitLab's default notification behavior is that 
>> you will receive notifications for all events of repositories in 
>> groups to which you belong.
>
> OK thanks, that's helpful.
>
> When you say "repository" could you also have said "project". That is,
> are "projects" and "repositories" in 1-1 correspondence?
>
Yes, exactly. A project has a git repository, a wiki, an issue tracker
(although this is currently disabled in the case of the ghc project),
and can accept pull requests. I have been guilty of using the words
"repository" and "project" interchangeably, which likely doesn't make
things any clearer.

> So, to understand the semantics, you can belong to
>
> * A project.
> * A group
>
> What's the difference? The group seems to be "Glasgow Haskell
> Compiler"; the project seems to be "Glasgow Haskell Compiler / GHC".
> Does that imply that
>
>  * every project is part of a group; but 
>  * a group may have many projects?
>
Almost. Projects have owners. An owner may be either a group or a user.
For instance,

 * https://gitlab.haskell.org/ghc/ghc is a project (named `ghc`)
   belonging to the `ghc` group.

 * https://gitlab.haskell.org/bgamari/ghc is a project belonging to the
   `bgamari` user.

Groups may nest. https://gitlab.haskell.org/ghc/packages is a subgroup
(named `packages`) of the `ghc` group.
https://gitlab.haskell.org/ghc/packages/haskeline is a project
(`haskeline`) owned by that group.

Users can be "members" of both groups and projects. There are a few
flavours of membership ("reporter", "developer", "maintainer", and
"owner") which all imply different sets of permissions (documented here
[1]). If a user is a member of a group then they are granted permissions
to all projects of that group (and its subgroups).

As you discovered, membership also implies a few things about the
notifications you will receive about a project or group of projects.


[1] https://docs.gitlab.com/ee/user/permissions.html

> Or maybe a project can be part of more than one group?
>
> The "Custom settings" on a project seem to be identical to the "custom
> settings" for a group. If Gitlab is deciding whether to send me a
> notification N, is it clear whether it's a "project notification" or a
> "group notification"? If so, then it can consult the appropriate
> settings; but if not, it's not clear.
>

> Sorry for all these questions. It's astonishingly common for large
> software systems to describe the surface knobs without describing the
> underlying model that makes sense of all those knobs!
>
Yes, this is quite true. I do hope I could help clear up the fog. Do ask
if things are still hazy.

Cheers,

- Ben

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20190124/9e011de1/attachment.sig>


More information about the ghc-devs mailing list