diff --git a/guix-data-service/model/git-repository.scm b/guix-data-service/model/git-repository.scm index 8efedcd..f6cceb1 100644 --- a/guix-data-service/model/git-repository.scm +++ b/guix-data-service/model/git-repository.scm @@ -225,7 +225,11 @@ FROM git_repositories WHERE id = $1" (((id)) (string->number id)))) -(define (git-repository-url->git-repository-id conn url) +(define* (git-repository-url->git-repository-id conn url + #:key (authenticate? #t)) + (define (->boolean value) + (if value "TRUE" "FALSE")) + (let ((existing-id (exec-query conn @@ -233,15 +237,21 @@ FROM git_repositories WHERE id = $1" "SELECT id FROM git_repositories WHERE url = '" url "'")))) (string->number (match existing-id - (((id)) id) + (((id)) + (exec-query conn + (string-append "UPDATE git_repositories \ +SET fetch_with_authentication = " + (->boolean authenticate?) + " WHERE id = " id ";")) + id) (() (caar (exec-query conn (string-append "INSERT INTO git_repositories " - "(url) " + "(url, fetch_with_authentication) " "VALUES " - "('" url "') " + "('" url "', " (->boolean authenticate?) ") " "RETURNING id")))))))) (define (guix-revisions-and-jobs-for-git-repository conn git-repository-id)