descriptionnone
repository URLhttps://github.com/sitaramc/gitolite.git
ownerstefan.naewe+rr@gmail.com
last changeTue, 28 May 2024 01:18:50 +0000 (28 06:48 +0530)
last refreshThu, 21 Nov 2024 08:20:43 +0000 (21 09:20 +0100)
content tags
add:
README.markdown

Gitolite README

about this README

(Github-users: click the "wiki" link before sending me anything via github.)

This is a minimal README for gitolite, so you can quickly get started with:

For anything more, you need to look at the complete documentation, at: <http://gitolite.com/gitolite>. Please go there for what/why/how, concepts, background, troubleshooting, more details on what is covered here, advanced features not covered here, migration from older gitolite, running gitolite over http (rather than ssh), and many more topics.

Assumptions

Installation and setup

server requirements

steps to install

First, prepare the ssh key:

Next, install gitolite by running these commands:

git clone https://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin

Finally, setup gitolite with yourself as the administrator:

gitolite setup -pk YourName.pub

If the last command doesn't run perhaps "bin" is not in your "PATH". You can either add it, or just run:

$HOME/bin/gitolite setup -pk YourName.pub

If you get any other errors please refer to the online documentation whose URL was given at the top of this file.

adding users and repos

Do NOT add new repos or users manually on the server. Gitolite users, repos, and access rules are maintained by making changes to a special repo called "gitolite-admin" and pushing those changes to the server.

To administer your gitolite installation, start by doing this on your workstation (if you have not already done so):

git clone git@host:gitolite-admin

NOTE: if you are asked for a password, something went wrong.. Go hit the link for the complete documentation earlier in this file.


Now if you "cd gitolite-admin", you will see two subdirectories in it: "conf" and "keydir".

To add new users alice, bob, and carol, obtain their public keys and add them to "keydir" as alice.pub, bob.pub, and carol.pub respectively.

To add a new repo "foo" and give different levels of access to these users, edit the file "conf/gitolite.conf" and add lines like this:

repo foo
    RW+         =   alice
    RW          =   bob
    R           =   carol

Once you have made these changes, do something like this:

git add conf
git add keydir
git commit -m "added foo, gave access to alice, bob, carol"
git push

When the push completes, gitolite will add the new users to ~/.ssh/authorized_keys on the server, as well as create a new, empty, repo called "foo".

help for your users

Once a user has sent you their public key and you have added them as specified above and given them access, you have to tell them what URL to access their repos at. This is usually "git clone git@host:reponame"; see man git-clone for other forms.

NOTE: again, if they are asked for a password, something is wrong.

If they need to know what repos they have access to, they just have to run "ssh git@host info".

access rule examples

Gitolite's access rules are very powerful. The simplest use was already shown above. Here is a slightly more detailed example:

repo foo
    RW+                     =   alice
    -   master              =   bob
    -   refs/tags/v[0-9]    =   bob
    RW                      =   bob
    RW  refs/tags/v[0-9]    =   carol
    R                       =   dave

Here's what these example rules say:

Please see the main documentation linked above for all the gory details, as well as more features and examples.

groups

Gitolite allows you to group users or repos for convenience. Here's an example that creates two groups of users:

@staff      =   alice bob carol
@interns    =   ashok

repo secret
    RW      =   @staff

repo foss
    RW+     =   @staff
    RW      =   @interns

Group lists accumulate. The following two lines have the same effect as the earlier definition of @staff above:

@staff      =   alice bob
@staff      =   carol

You can also use group names in other group names:

@all-devs   =   @staff @interns

Finally, @all is a special group name that is often convenient to use if you really mean "all repos" or "all users".

commands

Users can run certain commands remotely, using ssh. Running

ssh git@host help

prints a list of available commands.

The most commonly used command is "info". All commands respond to a single argument of "-h" with suitable information.

If you have shell on the server, you have a lot more commands available to you; try running "gitolite help".

LICENSE

contact and support

Please see <http://gitolite.com/gitolite/#contactsupport> for mailing list and IRC info.

license

The gitolite software is copyright Sitaram Chamarty and is licensed under the GPL v2; please see the file called COPYING in the source distribution.

Please see <http://gitolite.com/gitolite/#license> for more.


NOTE: GIT is a trademark of Software Freedom Conservancy and my use of "Gitolite" is under license.


shortlog
2024-05-28 Sitaram Chamartyminor fixup to a test script...master
2024-05-28 Robin H. Johnsonfeat: Mirroring support for quiet manual mirror
2024-03-18 Sitaram Chamartyminor warning added for http settings
2023-11-03 Sitaram Chamartythis file should have been git-ignored and never commit...
2023-07-14 Sitaram Chamartyv3.6.13v3.6.13
2023-07-14 Sitaram Chamartyfixed up several broken URLs (minor but annoying)
2023-07-14 Sitaram Chamartysimple fix to a problem created by cf423a6a...
2023-05-02 Sitaram Chamartyegrep obsolescent, use grep -E
2023-05-02 Robin H. Johnsonsave-push-signatures: use refs/meta/push-certs instead...
2022-07-16 Sitaram Chamartyminor help text fixup
2022-06-02 Sitaram Chamartyminor testing fixup
2021-02-12 NickUpdate ukm for modern perl
2020-08-04 Sitaram Chamartyv3.6.12v3.6.12
2020-08-04 Sitaram Chamartygitolite mirroring terminology changes
2020-04-24 Sitaram ChamartyInstall script can now modify shebangs when using a...
2020-02-06 Sitaram Chamartypropagate *all* ssh-keygen errors
...
tags
16 months ago v3.6.13 v3.6.13
4 years ago v3.6.12 v3.6.12
5 years ago v3.6.11 v3.6.11
6 years ago v3.6.10 v3.6.10
6 years ago v3.6.9 v3.6.9
6 years ago v3.6.8 v3.6.8
7 years ago v3.6.7 v3.6.7
8 years ago v3.6.6 v3.6.6
8 years ago v3.6.5 v3.6.5
9 years ago v3.6.4 v3.6.4
9 years ago v3.6.3 v3.6.3
10 years ago v3.6.2 v3.6.2
10 years ago v3.6.1 v3.6.1
10 years ago v3.6 v3.6
11 years ago v3.5.3.1 v3.5.3.1
11 years ago v3.5.3 v3.5.3
...
heads
5 months ago master
7 years ago namespaces
9 years ago UTF-8
12 years ago g2