promisor-remote: refactor accept_from_server()

In future commits, we are going to add more logic to filter_promisor_remote() which is already doing a lot of things. Let's alleviate that by moving the logic that checks and validates the value of the `promisor.acceptFromServer` config variable into its own accept_from_server() helper function. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Christian Couder committed Apr 7, 2026 at 13:52 UTC 7557a562434804d27f1417fe94c4081e2ee7e68b
1 file changed +17 -10
promisor-remote.c
+17 -10
@@ -862,20 +862,12 @@ static bool promisor_store_advertised_fields(struct promisor_info *advertised,
862 return reload_config;
863 }
864
865 -static void filter_promisor_remote(struct repository *repo,
866 - struct strvec *accepted,
867 - const char *info)
865 +static enum accept_promisor accept_from_server(struct repository *repo)
866 {
867 const char *accept_str;
868 enum accept_promisor accept = ACCEPT_NONE;
871 - struct string_list config_info = STRING_LIST_INIT_NODUP;
872 - struct string_list remote_info = STRING_LIST_INIT_DUP;
873 - struct store_info *store_info = NULL;
874 - struct string_list_item *item;
875 - bool reload_config = false;
876 - struct string_list accepted_filters = STRING_LIST_INIT_DUP;
869
878 - if (!repo_config_get_string_tmp(the_repository, "promisor.acceptfromserver", &accept_str)) {
870 + if (!repo_config_get_string_tmp(repo, "promisor.acceptfromserver", &accept_str)) {
871 if (!*accept_str || !strcasecmp("None", accept_str))
872 accept = ACCEPT_NONE;
873 else if (!strcasecmp("KnownUrl", accept_str))
@@ -889,6 +881,21 @@ static void filter_promisor_remote(struct repository *repo,
881 accept_str, "promisor.acceptfromserver");
882 }
883
884 + return accept;
885 +}
886 +
887 +static void filter_promisor_remote(struct repository *repo,
888 + struct strvec *accepted,
889 + const char *info)
890 +{
891 + struct string_list config_info = STRING_LIST_INIT_NODUP;
892 + struct string_list remote_info = STRING_LIST_INIT_DUP;
893 + struct store_info *store_info = NULL;
894 + struct string_list_item *item;
895 + bool reload_config = false;
896 + struct string_list accepted_filters = STRING_LIST_INIT_DUP;
897 + enum accept_promisor accept = accept_from_server(repo);
898 +
899 if (accept == ACCEPT_NONE)
900 return;
901