Commit graph

22 commits

Author SHA1 Message Date
Lukas Fleischer
cc1e8aed30 Rename the AUR software to aurweb
Rename the project to help differentiate between the software providing
access to the Arch User Repository and the collection of source packages
itself.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-02-04 09:50:01 +01:00
Lukas Fleischer
3488581046 git-update.py: Check for mandatory fields
Check explicitly whether pkgver, pkgrel, pkgname, pkgdesc and url are
available in each package. If any of these is missing, an exception
might occur when parsing the meta data later.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-15 09:35:01 +01:00
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
2d96b51cb5 git-update.py: Do not wipe repository descriptions
Only update repository descriptions if there is at least one package in
the package base meta data.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-08 09:18:40 +01:00
Lukas Fleischer
ed7fb91f41 git-update.py: Reject blacklisted packages
Reject commits adding packages which are in the official repositories
already.

Fixes FS#43371.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-08 09:18:40 +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
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