Commit graph

13 commits

Author SHA1 Message Date
Lukas Fleischer
4dbd562b8e Use custom templates for Git repositories
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-11 18:44:01 +01:00
Lukas Fleischer
cb661cd971 Add to notification list on repository creation
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-11 01:06:35 +01:00
Lukas Fleischer
ebf8f5d16f git-serve.py: Allow TUs to push to any repository
Implements FS#32807.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-07 12:21:22 +01:00
Lukas Fleischer
fc23a9bd50 Add support for package base co-maintainers
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-07 12:21:21 +01:00
Lukas Fleischer
bf7717ac13 git-serve.py: Adopt repositories on creation
Automatically assign ownership when creating a new (empty) repository.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-06 23:33:43 +01:00
Lukas Fleischer
02dd9c518f git-serve.py: Automatically create repositories
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-06 23:29:35 +01:00
Lukas Fleischer
e8c48e9f4c git-serve.py: Relax path validation
Make the terminating slash in repository URLs optional.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-02 12:20:09 +01:00
Lukas Fleischer
289ff0c700 git-serve.py: Add a command to list repositories
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-01 17:29:29 +01:00
Lukas Fleischer
1b627a3f0b git-serve.py: Improve error messages
Also, add a help command that lists available options.

Implements FS#43287.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-01 17:29:29 +01:00
Lukas Fleischer
00e6e4a182 git-serve.py: Use virtual paths
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-28 15:38:52 +01:00
Lukas Fleischer
c3c110c09d Honor the database socket setting in Git scripts
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27 12:42:12 +01:00
Lukas Fleischer
943b6bc976 Add update hook template
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-27 12:42:12 +01:00
Lukas Fleischer
ad17b9e2b4 Add basic Git authentication/authorization scripts
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>
2014-12-27 12:42:12 +01:00