Project Templates
Dev: https://dev.gitlab.org/gitlab/gitlabhq/issues/2503
Customer
Over the years, we have reached a standard layout/set of subfolders for use in project creation to support all life cycle activities for our customers. From the website features and documentation, it appears this feature is not yet available though it is highly requested. Additionally, the ability to have a project template would include the ability to setup default/initial users with default/initial permissions.
Haydn
From Job: If you create projects under groups you already have users and permissions taken care of. I'm not sure what remains. This is something to explore.
Sytse
They want a default file structure to be checked in?
Haydn
Response to Sytse's question above from Esterline: That is part of it, of course. There is a feature request for this as well: http://feedback.gitlab.com/forums/176466-general/suggestions/8211144-add-repository-templates-to-gitlab In general, we’re looking for the ability to setup one or more default folder structure, access (group and/or user), and submodule templates that can be used as a starting point for the creation of a project.
Sytse
We can discuss a set of default files and directories. We are unlikely to do: Multiple files structures Access (groups solves this problem already, if you add it to the right group the right people have acess) Submodule templates (submodules are awful to use, should use native programming language packging)
Job
I think we can have templates for .gitignore and maybe others, but that's stretching it already. File structures are things that should be done in a development environement and automated there, not in your git tool. I think we can make submodules easier to work with, because it would offer a cross-platform solution for packaging. However, I don't see how you'd do that with templates.
Sytse
@job I agree that it is not ideal but since we're open to the idea of adding .gitignore / LICENSE files I don't see a reason to stop there. Thinking about it I think we can also allow multiple files structures. On https://gitlab.com/projects/new you see a dropdown with: Empty repo .gitignore .gitignore and MIT Expat license ACME devops template ACME node template etc.
Job
I'm not excited, but I understand the appeal. I like your proposal. If we're able to create the templates easily (I'd think with a .yml file or some nice UI), I can imagine it working.
Sytse
@job Maybe read from disk and replace hyphens with spaces?
Job
@Sytse read what from disk? Not sure I understand.
Sytse
@job The files, maybe create directories from which the name of the options are deduced.
Dmitriy
@Sytse @job I don't think its a good idea to go with templates further than README, VERSION & gitignore. Every language/framework has own structure for project. We are not going to duplicate this. This is on developer responsibility to make initial skeleton.
Haydn
From Customer, no feedback required just FYI: "This makes good sense when looking at it from a small scale (personal) or an open, generic scale (gitlab, github, etc.). This request is more geared towards corporations (like us) which plan to use the CM in a less distributed manner, but more in a central repository client/server manner. In that case, we are likely to have fairly standard setups for repositories, which includes information beyond the scope of “source code”. This request is independent of the programming language used. Finally, this feature is requested by normal users on your website – and I believe it would be a great addition to GitLab EE, and even GitLab CE."
Sytse
@dzaporozhets Shall we add customizable templates? I think we can live with that.
Dmitriy
@Sytse until its simple like: "Please copy directory to /home/gitlab-shell/templates/". So we just read directory list from /home/gitlab-shell/templates/ and allow user to select one when create project.