gitcreate is a helper script installed by make install. To create a new git
repository, simply type:
- sudo -u repo gitcreate <repopath>
+ sudo -u repo gitcreate <repopath> ["Short description"]
Git repositories may be placed in subdirectories under {git_root}. A
subdirectory may be part of <repopath>. So, for example, if one wishes to
sudo -u repo gitcreate -y mirrors/tinyos/tinyos-main.git
+If the optional extra argument is provided, it will be used to populate the
+description file of the new repository. Because the script takes only one
+argument for this purpose, enclose the description in double quotes.
+
= Configuring user accounts
Each user to access repositories via client side tools need an account on the
This command returns one of three results. An empty return string means no
access, an "r" means read-only, and "rw" means read-write access.
+= Allow other users to create repositories
+
+With the following configuration, other users could be configured to run the
+`gitcreate` command using sudo.
+
+First, run `visudo` as root to edit the `/etc/sudoers` file. These entries
+should appear before less specific rules. The Runas_Alias REPOUSER should be
+set to the value of the `owner` variable defined in `/etc/repo_shell.conf`.
+
+ # Allow select users to run gitcreate
+ User_Alias REPOCREATORS = user1, user2, user3
+ Runas_Alias REPOUSER = repo
+ REPOCREATORS ALL = (REPOUSER) NOPASSWD: /usr/local/bin/gitcreate
+
+Now any users listed in the User_Alias REPOCREATORS can run the gitcreate
+command. The command would be invoked as follows:
+
+ ssh <repohost>
+ sudo -u repo gitcreate path/to/newrepo.git
+
+Note that as of right now, repo_shell cannot be used to run this command in a
+single ssh invocation, such as:
+
+ ssh <repohost> sudo gitcreate path/to/newrepo.git
+
+This is because repo_shell does not implement a full tty needed by sudo if it
+must ask the user for a password to authenticate the action.
+
= References and links
repo_shell owes great thanks to work shared by two other projects: