{"id":13438521,"url":"https://github.com/sitaramc/gitolite","last_synced_at":"2025-05-13T18:11:52.661Z","repository":{"id":644033,"uuid":"286061","full_name":"sitaramc/gitolite","owner":"sitaramc","description":"Hosting git repositories -- Gitolite allows you to setup git hosting on a central server, with very fine-grained access control and many (many!) more powerful features.","archived":false,"fork":false,"pushed_at":"2024-05-28T01:49:35.000Z","size":3154,"stargazers_count":8461,"open_issues_count":6,"forks_count":1006,"subscribers_count":377,"default_branch":"master","last_synced_at":"2025-04-25T17:50:27.252Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/sitaramc/gitolite/wiki","language":"Perl","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sitaramc.png","metadata":{"files":{"readme":"README.markdown","changelog":"CHANGELOG","contributing":"CONTRIBUTING","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2009-08-24T00:53:39.000Z","updated_at":"2025-04-21T08:18:02.000Z","dependencies_parsed_at":"2023-07-06T01:54:48.322Z","dependency_job_id":"a80d5f7f-16cd-4563-8d40-0422f3678f8b","html_url":"https://github.com/sitaramc/gitolite","commit_stats":{"total_commits":635,"total_committers":52,"mean_commits":"12.211538461538462","dds":"0.19527559055118116","last_synced_commit":"a546e5e8bdbb7069b995ca95fd20556157b0b439"},"previous_names":[],"tags_count":73,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitaramc%2Fgitolite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitaramc%2Fgitolite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitaramc%2Fgitolite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitaramc%2Fgitolite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sitaramc","download_url":"https://codeload.github.com/sitaramc/gitolite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254000857,"owners_count":21997442,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:01:06.204Z","updated_at":"2025-05-13T18:11:52.632Z","avatar_url":"https://github.com/sitaramc.png","language":"Perl","funding_links":[],"categories":["HarmonyOS","Perl","Communication and Collaboration Tools","Applications","其他","Uncategorized","应用","Git 相关"],"sub_categories":["Windows Manager","Version Control, Wiki, Knowledge base","Development","Uncategorized","开发"],"readme":"Gitolite README\n===============\n\n## about this README\n\n**(Github-users: click the \"wiki\" link before sending me anything via github.)**\n\n**This is a minimal README for gitolite**, so you can quickly get started with:\n\n*   installing gitolite on a fresh userid on a Unix(-like) machine, using ssh\n*   learning enough to do some basic access control\n\n**For anything more, you need to look at the complete documentation, at:\n\u003chttp://gitolite.com/gitolite\u003e**.  Please go there for what/why/how, concepts,\nbackground, troubleshooting, more details on what is covered here, advanced\nfeatures not covered here, migration from older gitolite, running gitolite\nover http (rather than ssh), and many more topics.\n\n\u003c!-- --------------------------------------------------------------------- --\u003e\n\n## Assumptions\n\n*   You are familiar with:\n    *   OS: at least one Unix-like OS\n    *   ssh: ssh, ssh keys, ssh authorized keys file\n    *   git: basic use of git, bare and non-bare remotes\n\n*   You are setting up a fresh, ssh-based, installation of gitolite on a Unix\n    machine of some sort.\n\n*   You have root access, or someone has created a userid called \"git\" for you\n    to use and given you a password for it.  This is a brand new userid (or\n    you have deleted everything but `.bashrc` and similar files to make it\n    look like one!)\n\n*   If your server is not connected to the internet, you know how to clone the\n    gitolite source code by using some in-between server or \"git bundle\".\n\n\u003c!-- --------------------------------------------------------------------- --\u003e\n\n## Installation and setup\n\n### server requirements\n\n*   any unix system\n*   sh\n*   git 1.6.6 or later\n*   perl 5.8.8 or later\n*   openssh 5.0 or later\n*   a dedicated userid to host the repos (in this document, we assume it is\n    \"git\", but it can be anything; substitute accordingly)\n*   this user id does NOT currently have any ssh pubkey-based access\n    *   ideally, this user id has shell access ONLY by \"su - git\" from some\n        other userid on the same server (this ensure minimal confusion for ssh\n        newbies!)\n\n### steps to install\n\nFirst, prepare the ssh key:\n\n*   login to \"git\" on the server\n*   make sure `~/.ssh/authorized_keys` is empty or non-existent\n*   make sure your ssh public key from your workstation has been copied as\n    $HOME/YourName.pub\n\nNext, install gitolite by running these commands:\n\n    git clone https://github.com/sitaramc/gitolite\n    mkdir -p $HOME/bin\n    gitolite/install -to $HOME/bin\n\nFinally, setup gitolite with yourself as the administrator:\n\n    gitolite setup -pk YourName.pub\n\nIf the last command doesn't run perhaps \"bin\" is not in your \"PATH\". You can\neither add it, or just run:\n\n    $HOME/bin/gitolite setup -pk YourName.pub\n\nIf you get any other errors please refer to the online documentation whose URL\nwas given at the top of this file.\n\n## adding users and repos\n\n*Do NOT add new repos or users manually on the server.*  Gitolite users,\nrepos, and access rules are maintained by making changes to a special repo\ncalled \"gitolite-admin\" and *pushing* those changes to the server.\n\nTo administer your gitolite installation, start by doing this on your\nworkstation (if you have not already done so):\n\n    git clone git@host:gitolite-admin\n\n\u003e   -------------------------------------------------------------------------\n\n\u003e   **NOTE: if you are asked for a password, something went wrong.**.  Go hit\n\u003e   the link for the complete documentation earlier in this file.\n\n\u003e   -------------------------------------------------------------------------\n\nNow if you \"cd gitolite-admin\", you will see two subdirectories in it: \"conf\"\nand \"keydir\".\n\nTo add new users alice, bob, and carol, obtain their public keys and add them\nto \"keydir\" as alice.pub, bob.pub, and carol.pub respectively.\n\nTo add a new repo \"foo\" and give different levels of access to these\nusers, edit the file \"conf/gitolite.conf\" and add lines like this:\n\n    repo foo\n        RW+         =   alice\n        RW          =   bob\n        R           =   carol\n\nOnce you have made these changes, do something like this:\n\n    git add conf\n    git add keydir\n    git commit -m \"added foo, gave access to alice, bob, carol\"\n    git push\n\nWhen the push completes, gitolite will add the new users to\n`~/.ssh/authorized_keys` on the server, as well as create a new, empty, repo\ncalled \"foo\".\n\n## help for your users\n\nOnce a user has sent you their public key and you have added them as\nspecified above and given them access, you have to tell them what URL to\naccess their repos at.  This is usually \"git clone git@host:reponame\"; see\nman git-clone for other forms.\n\n**NOTE**: again, if they are asked for a password, something is wrong.\n\nIf they need to know what repos they have access to, they just have to run\n\"ssh git@host info\".\n\n## access rule examples\n\nGitolite's access rules are very powerful.  The simplest use was already\nshown above.  Here is a slightly more detailed example:\n\n    repo foo\n        RW+                     =   alice\n        -   master              =   bob\n        -   refs/tags/v[0-9]    =   bob\n        RW                      =   bob\n        RW  refs/tags/v[0-9]    =   carol\n        R                       =   dave\n\nHere's what these example rules say:\n\n  * alice can do anything to any branch or tag -- create, push,\n    delete, rewind/overwrite etc.\n\n  * bob can create or fast-forward push any branch whose name does\n    not start with \"master\" and create any tag whose name does not\n    start with \"v\"+digit.\n\n  * carol can create tags whose names start with \"v\"+digit.\n\n  * dave can clone/fetch.\n\nPlease see the main documentation linked above for all the gory details, as\nwell as more features and examples.\n\n## groups\n\nGitolite allows you to group users or repos for convenience.  Here's an\nexample that creates two groups of users:\n\n    @staff      =   alice bob carol\n    @interns    =   ashok\n\n    repo secret\n        RW      =   @staff\n\n    repo foss\n        RW+     =   @staff\n        RW      =   @interns\n\nGroup lists accumulate.  The following two lines have the same effect as\nthe earlier definition of @staff above:\n\n    @staff      =   alice bob\n    @staff      =   carol\n\nYou can also use group names in other group names:\n\n    @all-devs   =   @staff @interns\n\nFinally, @all is a special group name that is often convenient to use if\nyou really mean \"all repos\" or \"all users\".\n\n## commands\n\nUsers can run certain commands remotely, using ssh.  Running\n\n    ssh git@host help\n\nprints a list of available commands.\n\nThe most commonly used command is \"info\".  All commands respond to a\nsingle argument of \"-h\" with suitable information.\n\nIf you have shell on the server, you have a lot more commands available to\nyou; try running \"gitolite help\".\n\n\u003c!-- --------------------------------------------------------------------- --\u003e\n\n## LICENSE\n\n# contact and support\n\nPlease see \u003chttp://gitolite.com/gitolite/#contactsupport\u003e for mailing list and IRC\ninfo.\n\n# license\n\nThe gitolite software is copyright Sitaram Chamarty and is licensed under the\nGPL v2; please see the file called COPYING in the source distribution.\n\nPlease see \u003chttp://gitolite.com/gitolite/#license\u003e for more.\n\n\u003e   -------------------------------------------------------------------------\n\n\u003e   **NOTE**: GIT is a trademark of Software Freedom Conservancy and my use of\n\u003e   \"Gitolite\" is under license.\n\n\u003e   -------------------------------------------------------------------------\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsitaramc%2Fgitolite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsitaramc%2Fgitolite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsitaramc%2Fgitolite/lists"}