import: utils: Add git-repository-url? procedure.

* guix/import/utils.scm (git-repository-url?): Add procedure.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Nicolas Graves 2025-09-16 15:55:50 +02:00 committed by Ludovic Courtès
parent 6aaed933bf
commit 0533284354
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -74,6 +74,7 @@
peekable-lambda
peek-body
git-repository-url?
download-git-repository
git-origin
git->origin
@ -187,6 +188,19 @@ thrown."
(define (peek-body proc)
(procedure-property proc 'body))
(define (git-repository-url? url)
"Guess if the URL looks like a Git repository."
(or (string-prefix? "https://github.com/" url) ; Most common.
(string-prefix? "https://cgit." url)
(string-prefix? "https://git." url)
(string-prefix? "https://gitlab." url)
(string-prefix? "https://codeberg.org/" url)
(string-prefix? "https://git.sr.ht/" url)
(string-prefix? "https://bitbucket.org/" url)
(string-prefix? "https://framagit.org/" url)
;; Fallback.
(string-suffix? ".git" url)))
(define (download-git-repository url ref)
"Fetch the given REF from the Git repository at URL. Return three values :
the commit hash, the downloaded directory and its content hash."