Compare commits

...

6 Commits

Author SHA1 Message Date
keypair
3a30ff9fe9 Merge branch 'master' into 'master'
feat(pkgctl_auth_login): generate the login token via SSH

Closes #262

See merge request archlinux/devtools!309
2025-08-20 13:36:30 +00:00
Aaron Liu
3f0ebbc6d2 fix(license): add .gitignore to REUSE defaults
36 packages use this while 26 use *.pam and 21 use *.logrotate. Seems
anecdotally common enough to add this here.
2025-08-08 14:13:32 +02:00
Jakub Klinkovský
fc56ebedf3 fix(completion): fix bash completion for the license subcommand
Signed-off-by: Jakub Klinkovský <lahwaacz@archlinux.org>
2025-08-05 17:48:12 +02:00
Christian Heusel
01757e6904 fix(commitpkg): Quiet git ls-files output
So far all files in `needsversioning=(...)` have been printed to the
command line if they were found, which is not useful, especially now
that we have more files present there.

It makes sense however to keep the standard error output, as this gives
a actionable suggestion what one should to to fix the issue:

    > error: pathspec 'PKGBUILD' did not match any file(s) known to git
    > Did you forget to 'git add'?

Fixes #281

Signed-off-by: Christian Heusel <christian@heusel.eu>
2025-08-01 11:26:57 +02:00
Daniel M. Capella
c5fe8ff3e6 feat(license): Extend matches for sysusers/tmpfiles configs
Eg. to match:
- sysusers.conf
- $pkgname.sysusers
- $pkgname.sysusers.conf
2025-07-28 23:38:32 -04:00
keypair
34c7f0053f feat(pkgctl_auth_login): generate the login token via SSH 2025-03-05 05:36:28 +00:00
4 changed files with 27 additions and 9 deletions

View File

@@ -150,6 +150,7 @@ _pkgctl_cmds=(
db db
diff diff
issue issue
license
release release
repo repo
search search

View File

@@ -155,7 +155,7 @@ if (( ${#needsversioning[*]} )); then
if [[ ! -f "${file}" ]]; then if [[ ! -f "${file}" ]]; then
continue continue
fi fi
if ! git ls-files --error-unmatch "$file"; then if ! git ls-files --error-unmatch "$file" >/dev/null; then
die "%s is not under version control" "$file" die "%s is not under version control" "$file"
fi fi
done done

View File

@@ -33,11 +33,13 @@ pkgctl_auth_login_usage() {
OPTIONS OPTIONS
-g, --gen-access-token Open the URL to generate a new personal access token -g, --gen-access-token Open the URL to generate a new personal access token
-s, --gen-ssh-token Directly generate the token via SSH (only works if your gitlab is already configured with SSH)
-h, --help Show this help text -h, --help Show this help text
EXAMPLES EXAMPLES
$ ${COMMAND} $ ${COMMAND}
$ ${COMMAND} --gen-access-token $ ${COMMAND} --gen-access-token
$ ${COMMAND} --gen-ssh-token
_EOF_ _EOF_
} }
@@ -53,6 +55,10 @@ pkgctl_auth_login() {
pkgctl_auth_login_usage pkgctl_auth_login_usage
exit 0 exit 0
;; ;;
-s|--gen-ssh-token)
USE_SSH=1
shift
;;
-g|--gen-access-token) -g|--gen-access-token)
GEN_ACESS_TOKEN=1 GEN_ACESS_TOKEN=1
shift shift
@@ -76,17 +82,25 @@ pkgctl_auth_login() {
environment variable using a vault, see pkgctl-auth-login(1) for details. environment variable using a vault, see pkgctl-auth-login(1) for details.
_EOF_ _EOF_
if (( GEN_ACESS_TOKEN )); then if (( USE_SSH )); then
xdg-open "${personal_access_token_url}" 2>/dev/null token=$(ssh git@gitlab.archlinux.org personal_access_token pkgctl api,write_repository 30)
if [[ $? -ne 0 ]]; then
msg_error " Failed to generate token via SSH"
exit 1
fi
token=$(echo "$token" | grep 'Token:' | awk '{print $2}')
fi fi
# read token from stdin if (( GEN_ACESS_TOKEN )); then
read -s -r -p "${GREEN}?${ALL_OFF} ${BOLD}Paste your authentication token:${ALL_OFF} " token xdg-open "${personal_access_token_url}" 2>/dev/null
echo # read token from stdin
read -s -r -p "${GREEN}?${ALL_OFF} ${BOLD}Paste your authentication token:${ALL_OFF} " token
echo
if [[ -z ${token} ]]; then if [[ -z ${token} ]]; then
msg_error " No token provided" msg_error " No token provided"
exit 1 exit 1
fi
fi fi
# check if the passed token works # check if the passed token works

View File

@@ -188,10 +188,13 @@ path = [
"README.md", "README.md",
"keys/**", "keys/**",
".SRCINFO", ".SRCINFO",
".gitignore",
".nvchecker.toml", ".nvchecker.toml",
"*.install", "*.install",
"*.sysusers", "*.sysusers",
"*sysusers.conf",
"*.tmpfiles", "*.tmpfiles",
"*tmpfiles.conf",
"*.logrotate", "*.logrotate",
"*.pam", "*.pam",
"*.service", "*.service",