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."

Reply via email to