forgejo: Enqueue the repository URL, not the pull request URL.

Previously the pull request URL (say,
https://codeberg.org/guix/guix/pulls/123) would be mistaken for the Git
repository URL.
This commit is contained in:
Ludovic Courtès 2025-07-16 20:24:33 +02:00
parent b35c26a74e
commit eec7715928
2 changed files with 22 additions and 12 deletions

View file

@ -106,16 +106,17 @@
(if (forgejo-pull-request-draft? pull-request)
(format #t "skipping Forgejo pull request draft ~s~%"
(forgejo-pull-request-url pull-request))
(let* ((url (forgejo-pull-request-url pull-request))
(let* ((date (time-utc->date (current-time time-utc))) ;XXX: approximate?
(reference (forgejo-pull-request-head pull-request))
(repository (forgejo-repository-reference-repository reference))
(url (forgejo-repository-url repository))
(branch (forgejo-repository-reference-ref reference))
(commit (forgejo-repository-reference-sha reference))
(label (forgejo-repository-reference-label reference))
(repository-id (git-repository-url->git-repository-id
conn url
;; Disable channel authentication for PRs.
#:authenticate? #f))
(date (time-utc->date (current-time time-utc))) ;XXX: approximate?
(reference (forgejo-pull-request-head pull-request))
(branch (forgejo-repository-reference-ref reference))
(commit (forgejo-repository-reference-sha reference))
(label (forgejo-repository-reference-label reference))
(branch-id (or (git-branch-for-repository-and-name
conn repository-id branch)
@ -124,13 +125,18 @@
(unless (git-commit-exists? conn commit)
(insert-git-commit-entry conn branch-id commit date))
(format #t "queuing commit ~a of branch '~a' of repository ~a for PR #~a~%"
commit branch url
(forgejo-pull-request-number pull-request))
(enqueue-load-new-guix-revision-job conn repository-id
commit label))))
(define (mark-pull-request-branch-for-deletion conn pull-request)
"Mark the branch associated with @var{pull-request}, a pull request being
closed, for deletion."
(let* ((url (forgejo-pull-request-url pull-request))
(let* ((reference (forgejo-pull-request-head pull-request))
(repository (forgejo-repository-reference-repository reference))
(url (forgejo-repository-url repository))
(repository-id (git-repository-url->git-repository-id
conn url #:create-if-missing? #f)))
(when repository-id
@ -142,6 +148,7 @@ closed, for deletion."
(when branch-id
;; Insert a commit entry with the empty string: this is interpreted
;; as BRANCH-ID being a candidate for deletion.
(format #t "marking pull request branch ~s of ~s for deletion~%"
branch url)
(format #t "marking branch '~a' of ~a (PR #~a) for deletion~%"
branch url
(forgejo-pull-request-number pull-request))
(insert-git-commit-entry conn branch-id "" date))))))