3 ms·
Binaries are built automatically these days using tools like Jenkins, Travis.ci, etc and not by developers. There are many ways to solve this problem such as t
by icefox 11y ago
Binaries are built automatically these days using tools like Jenkins, Travis.ci, etc and not by developers. There are many ways to solve this problem such as the build bot making tags in a repository that isn't the main one, but suffice it to say developers are not making the binaries so using a developer account to push the tag from the build machine seems like a permissions bug and letting developers push tags also would risk someone accidentally deleting a tag or pushing a tag that is wrong or can't be reproduced by the build server.
Another example is having a machine the mirrors a perforce, svn or other rcs. This bot will push up the mirror to a single branch called say 'svn-mirror'. You want to make sure that the mirror bot is the only one that can ever touch this branch. Again the mirror could be its own repo and no one else could be allowed to do anything, but users like to have the mirror along side the other main branches that they can push to.
I can give you a dozen "edge case" examples, each of which I have seen not only desired, but required. Lack of fine grain permissions are one of the three reason why companies (not individuals) will abandon an existing Git server and replace it with an alternative. (See http://benjamin-meyer.blogspot.com/2014/10/so-you-want-to-build-git-server.html http://benjamin-meyer.blogspot.com/2014/10/so-you-want-to-bu... for my full writeup) And you can't say it is hard to implement either, these permissions are nothing but cascading ref based permissions. A user or group has permissions to read/write/delete a ref or ref regular expression. Honestly just copy what gitolite (which has no frontend so it constantly being passed over) does and you will be ahead of all of your competition.
Add fine grain permissions to GitLab and I would recommend exploring going through the major hassle and pain of replacing Stash with GitLab, that is how valuable of a feature it is. Eventually Stash and the other Git servers will have this capability, might as well beat them to the punch and take some of their customers.
- sytse 11y agoWe use GitLab CI to build the binaries and push them. The binary build is triggered by a developer setting a tag. We want to integrate the mirror bot into GitLab itself, allowing you to track external repo's. We would love to have the permissions of gitolite if we can implement them without complicating the settings for users that don't need this. I would be happy to look at prototypes how to implement this in the UI (I'm @sytses on twitter). GitLab is open source, so if someone wants these advanced permissions the best way is to build them.