guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 05332843546c8c7731994ca68a581b1becd99b6b
Author: Nicolas Graves <[email protected]>
AuthorDate: Tue Sep 16 15:55:50 2025 +0200
import: utils: Add git-repository-url? procedure.
* guix/import/utils.scm (git-repository-url?): Add procedure.
Signed-off-by: Ludovic Courtès <[email protected]>
---
guix/import/utils.scm | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 0590ed1990..2d2d78ad15 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -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."