From: Romain GARBAGE <romain.garbage@inria.fr>
To: 75407@debbugs.gnu.org
Cc: ludovic.courtes@inria.fr, Romain GARBAGE <romain.garbage@inria.fr>
Subject: [bug#75407] [PATCH Cuirass] base: Add support for disabling channel authentication.
Date: Mon, 6 Jan 2025 15:59:37 +0100 [thread overview]
Message-ID: <20250106145937.17780-1-romain.garbage@inria.fr> (raw)
* src/cuirass/base.scm (channel-update-service, jobset-monitor): Add support
for disabling Guix channel authentication.
* doc/cuirass.texi (Specifications): Add documentation.
---
doc/cuirass.texi | 4 ++++
src/cuirass/base.scm | 19 ++++++++++++++-----
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/doc/cuirass.texi b/doc/cuirass.texi
index 4c160c3..b3ab4c5 100644
--- a/doc/cuirass.texi
+++ b/doc/cuirass.texi
@@ -248,6 +248,10 @@ You can store any information you like in properties, but you must make
sure that this is serializable. For example, the properties alist
cannot contain records.
+The special @code{authenticate-channels?} property, when set to
+@code{#f}, disables authentication of @emph{all} the channels declared in the
+specification, including the Guix channel.
+
@end table
@end deftp
diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index 837de51..89fff82 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -507,7 +507,7 @@ to update Git checkouts, effectively serializing all Git operations."
;; Note: All Git operations are serialized when in fact it would be enough
;; to serialize operations with the same URL (because they are cached in the
;; same directory).
- (define (fetch store channels)
+ (define (fetch store channels authenticate?)
(let/ec return
(with-exception-handler
(lambda (exception)
@@ -533,16 +533,17 @@ to update Git checkouts, effectively serializing all Git operations."
(lambda ()
(non-blocking
(set-thread-name "git-checkout")
- (latest-channel-instances* store channels))))))
+ (latest-channel-instances* store channels
+ #:authenticate? authenticate?))))))
(lambda ()
(with-store store
(let loop ()
(match (get-message channel)
- (`(fetch ,channels ,reply)
+ (`(fetch ,channels ,authenticate? ,reply)
(log-info "fetching channels:~{ '~a'~}"
(map channel-name channels))
- (let ((result (fetch store channels)))
+ (let ((result (fetch store channels authenticate?)))
(if result
(log-info "pulled commits~{ ~a~}"
(zip (map (compose channel-name
@@ -741,6 +742,14 @@ concurrently; it sends derivation build requests to BUILDER."
(define channels
(specification-channels spec))
+ (define authenticate?
+ (match (assq 'authenticate-channels?
+ (specification-properties spec))
+ (#f #t) ; Authenticate by default.
+ ((_ . authenticate?)
+ ;; Ensure the return value is a boolean.
+ (->bool authenticate?))))
+
(define (perform-update)
(let* ((timestamp (time-second (current-time time-utc)))
(recent? (lambda (time)
@@ -762,7 +771,7 @@ concurrently; it sends derivation build requests to BUILDER."
(match (let ((reply (make-channel)))
(log-info "fetching channels for spec '~a'" name)
(put-message update-service
- `(fetch ,channels ,reply))
+ `(fetch ,channels ,authenticate? ,reply))
(get-message reply))
(#f
;; TODO: Send the error to CHANNEL so the web interface
base-commit: e1a4675ec417db3e7f97c05c3f2642ab8acb9210
--
2.46.0
next reply other threads:[~2025-01-06 15:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-06 14:59 Romain GARBAGE [this message]
2025-01-09 14:41 ` bug#75407: [PATCH Cuirass] base: Add support for disabling channel authentication Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250106145937.17780-1-romain.garbage@inria.fr \
--to=romain.garbage@inria.fr \
--cc=75407@debbugs.gnu.org \
--cc=ludovic.courtes@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.