Support excluding and including branches from a repository

So that you can have the Guix Data Service only pay attention to some of the
branches.
This commit is contained in:
Christopher Baines 2020-02-08 12:03:41 +00:00
parent bb271c366b
commit c31c9575e0
6 changed files with 70 additions and 15 deletions

View file

@ -16,6 +16,8 @@
;;; <http://www.gnu.org/licenses/>.
(define-module (guix-data-service branch-updated-emails)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-19)
#:use-module (email email)
#:use-module (guix-data-service model git-repository)
@ -42,6 +44,18 @@
x-git-repo)))
(when git-repository-id
(let-values
(((included-branches excluded-branches)
(select-includes-and-excluded-branches-for-git-repository
conn
git-repository-id)))
(let ((excluded-branch?
(member branch-name excluded-branches string=?))
(included-branch?
(member branch-name included-branches string=?)))
(when (and (not excluded-branch?)
(or (null? included-branches)
included-branch?))
(insert-git-branch-entry conn
branch-name
(if (string=? "0000000000000000000000000000000000000000"
@ -57,4 +71,4 @@
conn
git-repository-id
x-git-newrev
(string-append x-git-repo " " x-git-refname " updated"))))))))
(string-append x-git-repo " " x-git-refname " updated")))))))))))

View file

@ -19,9 +19,11 @@
#:use-module (ice-9 match)
#:use-module (json)
#:use-module (squee)
#:use-module (guix-data-service model utils)
#:export (all-git-repositories
select-git-repository
git-repository-id->url
select-includes-and-excluded-branches-for-git-repository
count-git-repositories-with-x-git-repo-header-values
git-repository-x-git-repo-header->git-repository-id
git-repository-url->git-repository-id
@ -61,6 +63,22 @@
(list id))
(((url)) url)))
(define (select-includes-and-excluded-branches-for-git-repository conn id)
(match (exec-query
conn
"
SELECT included_branches, excluded_branches
FROM git_repositories WHERE id = $1"
(list (number->string id)))
(((included_branches excluded_branches))
(values
(if (string=? included_branches "")
'()
(parse-postgresql-array-string included_branches))
(if (string=? excluded_branches "")
'()
(parse-postgresql-array-string excluded_branches))))))
(define (count-git-repositories-with-x-git-repo-header-values conn)
(match (exec-query
conn

View file

@ -0,0 +1,8 @@
-- Deploy guix-data-service:allow_including_and_excluding_branches_for_repositories to pg
BEGIN;
ALTER TABLE git_repositories ADD COLUMN included_branches varchar[];
ALTER TABLE git_repositories ADD COLUMN excluded_branches varchar[];
COMMIT;

View file

@ -0,0 +1,7 @@
-- Revert guix-data-service:allow_including_and_excluding_branches_for_repositories from pg
BEGIN;
-- XXX Add DDLs here.
COMMIT;

View file

@ -48,3 +48,4 @@ change_package_derivations_target 2020-02-07T19:29:50Z Christopher Baines <mail@
remove_old_cross_derivations 2020-02-07T19:42:54Z Christopher Baines <mail@cbaines.net> # Remove old cross derivations
increase_fillfactor_for_some_indexes 2020-02-07T20:49:17Z Christopher Baines <mail@cbaines.net> # Increase the fillfactor for some btree indexes
change_package_derivations_by_guix_revision_range_target 2020-02-08T10:13:07Z Christopher Baines <mail@cbaines.net> # Change the values for package_derivations_by_guix_revision_range target
allow_including_and_excluding_branches_for_repositories 2020-02-08T11:30:02Z Christopher Baines <mail@cbaines.net> # Allow including and excluding branches for repositories

View file

@ -0,0 +1,7 @@
-- Verify guix-data-service:allow_including_and_excluding_branches_for_repositories on pg
BEGIN;
-- XXX Add verifications here.
ROLLBACK;