summaryrefslogtreecommitdiffstats
path: root/gitolite (follow)
AgeCommit message (Collapse)AuthorFilesLines
2024-08-07Rename project to srcnodeMalfurious4-4/+4
"Normalmode" is the name of the hosted platform that this software package was constructed to power. To better distinguish between the two and to give this project more of a standalone identity, it is rebranded with a new name. Signed-off-by: Malfurious <m@lfurio.us>
2024-03-11gitolite: Force blank description for newly created repositoriesMalfurious2-0/+10
A gitolite POST_CREATE trigger is added to initialize the description file in new repos. This prevents the "Unnamed repository; edit this file ..." string from being used by default. This affects new repositories, existing projects will remain as is. Signed-off-by: Malfurious <m@lfurio.us>
2024-03-11gitolite: Fix bug in post git trigger branch detectionMalfurious1-1/+1
The previous version fails to handle nested branch names containing slashes. For example, if pushing a single new branch named `feat/example`, the script would set HEAD to `feat` and remain dangling. Signed-off-by: Malfurious <m@lfurio.us>
2024-03-11gitolite: Create separate config for normalmode repository semanticsMalfurious2-10/+12
The previous content of gitolite.conf defined the standard access rules for normalmode. These are now moved to a new file which will be baked into the gitolite docker image and not managed by the gitolite-admin repository. This will allow for easier management of the normalmode rules via this git repository (aka, part of the normalmode distribution) and prevent the need for user intervention and to stomp on gitolite-admin to adopt new updates. The goal is to give users nearly complete ownership of their gitolite.conf file. Added to the gitolite.conf template is a definition for a new @creators group. The normalmode rules are updated to permit only users from this group to create and own new wildcard repositories. This allows creating new users which can only contribute to other's repos (as either a MAINTAINER or CONTRIBUTOR), or access private repos. As alluded by the previous paragraph, administrators may define private repos within gitolite using normalmode. This is done by manually configuring them in gitolite.conf. This use-case has always been possible, but has only recently been tested to confirm that the access restrictions are compatible with the rest of normalmode's operations. (aka: Nothing is leaked via cgit, and the normalmode access rules don't break anything). Easing this use-case is another reason for the clean separation of config files. Signed-off-by: Malfurious <m@lfurio.us>
2023-09-16gitolite: Prevent repo auto-creation on clone/fetchv0.2.0Malfurious1-1/+1
I'm considering this default behavior as a bug for normalmode. The creation of a repository via a read activity seems far too accidental for my taste. Repositories are created by pushing to them. This does mean that: git clone <new-url> ... git push is no longer a shorthand for: git init git remote add origin <new-url> ... git push I'm ok with that. Signed-off-by: Malfurious <m@lfurio.us>
2023-09-16gitolite: Fix bug in default branch push triggerMalfurious1-2/+1
Since it is now allowed to remove the remote default branch, this script needs to handle cases where there are no branches following a push. In this case, the `git symbolic-ref` command will fail, and we return our standard warning for when HEAD is dangling. Signed-off-by: Malfurious <m@lfurio.us>
2023-09-16Add host script for initial configuration flowMalfurious1-1/+5
The new installation procedure is to start with ./configure to set your pubkey up for admin access. The initialize script is updated to use an active prompt, since as-is, CTRL-C won't properly terminate the script to cancel. Signed-off-by: Malfurious <m@lfurio.us>
2023-09-15gitolite: Add admin initialization scriptMalfurious2-1/+17
Per docker image changes, this serves as an alternative entrypoint for performing initial pubkey configuration. Signed-off-by: Malfurious <m@lfurio.us>
2023-09-15gitolite: Allow users to delete remote HEAD branchesMalfurious1-0/+2
This allows the branch considered the repo default to be deleted via push. I'm not totally opposed to allowing this, even though it's not entirely necessary. However, the ability to do this is now required by the docker image entrypoint script. Signed-off-by: Malfurious <m@lfurio.us>
2023-09-15gitolite: Remove hard-coded admin usernameMalfurious1-1/+1
The default gitolite.conf file is now patched in to the gitolite installation in the docker image. This is so that the intended version of the file is used in the gitolite-admin repo from the very beginning. This is made necessary by the decoupling of repo purposes. Instead of using (literal) 'admin', '%ADMIN' will be substituted with the actual admin username during `gitolite setup`. Signed-off-by: Malfurious <m@lfurio.us>
2023-09-15gitolite: Correct site-local code locationMalfurious1-2/+2
Per the previous commit, site-local code is now to be located directly in the git user's home directory, as static content in the docker image. Correct this setting in the RC file. Signed-off-by: Malfurious <m@lfurio.us>
2023-09-15gitolite: Refactor Dockerfile for debian baseMalfurious2-0/+66
Building from debian:latest will make for a smaller image, a faster build, and will make the image more accessible to a wider variety of platforms. The effort started by 19e7dc8932c is expanded upon such that the image cleanly bakes in all static config files into the image - ie. the entire hosting user's home directory, except for the repositories directory. This removal of config management from the gitolite-admin repo is part of the reason why it is being decoupled from this repo. The gitolite image will now never utilize a user pubkey during build. Instead, it can be invoked with an alternative entrypoint to interactively configure a new install. Signed-off-by: Malfurious <m@lfurio.us>
2023-09-15gitolite: Consolidate config files into a single directoryMalfurious5-0/+264
The repository is being reworked to decouple its roles as normalmode source and gitolite-admin config. The gitolite-admin repository will be entirely separate. So there is no need to keep the conf or local directories around where they are at. Signed-off-by: Malfurious <m@lfurio.us>