Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/src/lib/repo
AgeCommit message (Collapse)Author
2024-04-28feat(repo): add repo clean command to remove untracked filesRobin Candau
This introduces the `pkgctl repo clean` command which removes every untracked files from local package repositories (via `git clean`). The usage is as simple as `pkgctl repo clean [OPTION] [PATH]` (where "[PATH]" can be equal to a wildcard "*"). Component: pkgctl repo clean
2024-03-09fix(pkgctl): skip path arguments that are not directoriesMorten Linderud
Several subcommands accept multiple paths in a way that passing a wildcard is an expected use case. Previously this wasn't possible if the main directory contained any text files or scripts. Fix this by skipping none directory paths for such commands. Component: pkgctl Signed-off-by: Morten Linderud <foxboron@archlinux.org>
2023-12-19feat(configure): ship default ignore via excludeLevente Polyak
BREAKING CHANGE: Increments the repo spec version which requires to reconfigure all existing packaging repo clones. Fixes #129 Component: pkgctl repo configure Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-12-03feat(clone): speedup maintainer and universe clone queryLevente Polyak
There is a single endpoint now to list all pkgbases and their current maintainers. Use this endpoint for speeding up the clone of all packages of a maintainer by only issuing a single API call. Component: pkgctl repo clone Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-11-26feat(web): implement option to print the URL instead of opening itChristian Heusel
In certain situations, users may encounter limitations when unable to utilize xdg-open (e.g., when connected to an Arch machine via SSH). Consequently, this commit introduces the option to simply print the repository link to copy or click on it. Signed-off-by: Christian Heusel <christian@heusel.eu> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-26fix(clone): ssh connection may require user input (key unlocking etc)Levente Polyak
Anything that requires user input (such as a key unlock or hostkey verify) will block the terminal and wait for input which will never come. When cloning or configuring a repo via ssh we therefore initially connect to gitlab to warm the connection. Afterwards users are expected to either have setup a ssh ControlMaster or use something like a ssh agent. Fixes #148 Component: pkgctl repo clone/configure Co-Authored-by: Christian Heusel <christian@heusel.eu> Signed-off-by: Christian Heusel <christian@heusel.eu> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-27chore(doc): remove duplicate subcommand from example help textDaniel M. Capella
2023-05-24feature(clone): add protocol option to force cloning over HTTPSLevente Polyak
This is a rather quick and simple implementation to override the current logic and force clone with HTTPS. Allowing to explicitly clone over HTTPS is currently required to unblock reproducible builds where no ssh keys and GitLab user accounts are set up as of now. Hence this quick solution comes into play to mitigate the regression on reproducible builds builders. Revisit the overall auto detection and protocol logic approach for a later release related to some ideas floating around in pending merge-requests. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20feature(parallel): run up to N jobs in parallel for repo clone/configureLevente Polyak
Run up to N jobs in parallel. By default the number of jobs is equal to the number of available processing units. For sequential processing this option needs to be passed with 1. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20pkgctl repo clone: add option to switch working treeChristian Heusel
Add an option to call the switch command after clone. Switch to a specified version. The working tree and the index are updated to match the version. Signed-off-by: Christian Heusel <christian@heusel.eu> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20pkgctl repo: introduce the switch subcommandChristian Heusel
Signed-off-by: Christian Heusel <christian@heusel.eu> Co-Authored-By: Levente Polyak <anthraxx@archlinux.org>
2023-05-20gitlab: add project path function to map special charsLevente Polyak
Automatic path conversion is limited to GitLab API v4 and will be removed in the future. It's expected that the caller does the path conversion on caller side and only passes a valid path to the API within its limitations. Hence convert project names to valid paths: 1. replace single '+' between word boundaries with '-' 2. replace any other '+' with literal 'plus' 3. replace any special chars other than '_', '-' and '.' with '-' 4. replace consecutive '_-' chars with a single '-' 5. replace 'tree' with 'unix-tree' due to GitLab reserved keyword Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20repo-configure: automatically determine protocol from packager identityLevente Polyak
The remote protocol is automatically determined from the author email address by choosing SSH for all official packager identities and read-only HTTPS otherwise. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19repo: added command to create a new packaging repositoryLevente Polyak
2023-05-19src: modularize repo layout into a libraryLevente Polyak
This will greatly help us to structure the functionality and commands in a more sane way. We will distribute the sources as actual libraries and reuse code with imports instead of processing everything with m4 and duplicating a lot of code.