Commit graph

14 commits

Author SHA1 Message Date
Lukas Fleischer
b32458cb8a git-update.py: Support architecture-specific fields
Fixes FS#43356.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-07 10:41:44 +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
965f908e15 git-update.py: Cast epoch to an integer
Convert epoch values before doing integer comparisons. Also, add a
sanity check for the epoch variable.

Reported-by: Ido Rosen <ido@kernel.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-30 12:38:12 +01:00
Lukas Fleischer
9bb93fad75 Add a script to initialize Git repositories
Introduce a script that creates one repository for each package base in
the database.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-28 17:37:05 +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
9ed559eb33 git-update.py: Update repository description
Use the package description of the first package as the Git repository
description.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27 12:42:12 +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
e1aac98bf5 Add sshd setup instructions
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