summaryrefslogtreecommitdiffstats
path: root/scripts/git-integration/git-serve.py
AgeCommit message (Collapse)AuthorFilesLines
2015-06-01Use gitnamespaces for efficient storageLukas Fleischer1-33/+35
Instead of using one Git repository per package, use a single large object storage for space efficiency. The refs of the individual package bases are divided using gitnamespaces(7) which allows for exposing each namespace as an independent repository easily. Also, git-serve is modified to create a branch for each package, allowing to browse the large repository with cgit. Helped-by: Florian Pritz <bluewind@xinu.at> Helped-by: Johannes Löthberg <johannes@kyriasis.com> Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-01-11Use custom templates for Git repositoriesLukas Fleischer1-3/+2
Do not waste disk space by copying dozens of unneeded sample hooks. Use a custom template directory that only includes the git-update hook. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-11Add to notification list on repository creationLukas Fleischer1-0/+4
Since commit bf7717a (git-serve.py: Adopt repositories on creation, 2015-01-06), newly created package bases are no longer orphan and therefore, they are not adopted when pushing the first commit which also means that the initial submitter is not added to the notification list automatically. To remedy this, add the owner to the notification list when setting up a new repository. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-07git-serve.py: Allow TUs to push to any repositoryLukas Fleischer1-0/+4
Implements FS#32807. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-07Add support for package base co-maintainersLukas Fleischer1-4/+7
This allows for having multiple co-maintainers for AUR packages. Co-maintainers have push access to the package base Git repository but are not allowed to change the package base category, disown the package or modify the list of co-maintainers. The primary maintainer of an AUR package can edit the list of co-maintainers from the Package Actions box. Implements FS#17911. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-06git-serve.py: Adopt repositories on creationLukas Fleischer1-2/+2
Automatically assign ownership when creating a new (empty) repository. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-06git-serve.py: Automatically create repositoriesLukas Fleischer1-0/+2
Create a fresh Git repository when cloning or pushing using a path that does not yet exist. Implements FS#43308. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-02git-serve.py: Relax path validationLukas Fleischer1-2/+5
Make the terminating slash in repository URLs optional. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-01git-serve.py: Add a command to list repositoriesLukas Fleischer1-0/+22
The list-repos command now lists all repositories you maintain. Empty repositories are prefixed with an asterisk. Implements FS#43288. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-01git-serve.py: Improve error messagesLukas Fleischer1-8/+22
Also, add a help command that lists available options. Implements FS#43287. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-28git-serve.py: Use virtual pathsLukas Fleischer1-1/+2
Pretend that all repositories are located in the root directory of the file system to achieve location transparency. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27Honor the database socket setting in Git scriptsLukas Fleischer1-2/+4
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27Add update hook templateLukas Fleischer1-0/+2
This adds a script that can be used as an update hook to check all commits for validity and to regenerate the package details page before updating a named ref. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27Add basic Git authentication/authorization scriptsLukas Fleischer1-0/+104
This adds two scripts to be used together with Git over SSH: * git-auth.py is supposed to be used as AuthorizedKeysCommand. It checks whether the public key belongs to any AUR user and invokes git-serve.py, passing the name of the corresponding user as a command line argument, if any. * git-serve.py is a wrapper around git-shell(1) that checks whether the user passed as command line argument has access to the Git repository that a push operation writes to. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>