Шаги ==== Необходимо указать любой Git-хост (например, GitLab), его публичный ключ ssh-ed25519, путь к репозиторию на нём и токен пользователя: 1. # _host=git.host _host_key=AAAA... _path=path/to/repo _token=api-token apt-get install -y salt-master python3-module-GitPython && \ ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519 && \ cat ~/.ssh/id_ed25519.pub && \ echo -e "Host gitlab.basealt.space\n IdentityFile /root/.ssh/id_ed25519" > ~/.ssh/config && \ echo "$_host ssh-ed25519 $_host_key" > ~/.ssh/known_hosts && \ cat > /etc/salt/master.d/git.conf << EOF fileserver_backend: - gitfs gitfs_provider: gitpython gitfs_remotes: - "https://git:$_token@$_host/$_path" - "git://$_host/$_path.git" - "ssh://git@$_host/$_path.git" - "git@$_host:$_path.git" EOF 2. # systemctl enable --now salt-master && \ sleep 5 && \ journalctl -u salt-master | grep -iE 'bad url data' Фактический результат ===================== Согласно документации указание git:// поддерживается: * https://docs.saltproject.io/en/3007/topics/tutorials/gitfs.html#:~:text=git%20would%20work.-,Specify%20one%20or%20more,-git%3A//%2C Однако появляются предупреждения вида: > salt-master[2808]: [WARNING ] Found bad url data 'git://gitlab.basealt.space/qa-team/ansible/ansible-salt.git' Ожидаемый результат =================== Нет предупреждения о git://. Дополнительно ============= В p11 дополнительно могут быть предупреждения о git@ (но они исправлены в 3007.5 в задании 388710.1): > salt-master[2808]: [WARNING ] Found bad url data 'git@gitlab.basealt.space:qa-team/ansible/ansible-salt.git' * https://github.com/saltstack/salt/issues/68069 * https://github.com/saltstack/salt/issues/68072 * https://github.com/saltstack/salt/pull/68089 Воспроизводимость ================= Воспроизводится на виртуальных машинах: [sisyphus] ALT Workstation 11.0 x86_64 salt-master-3007.5-alt1.noarch [p11] ALT Server 11.0 x86_64 salt-master-3007.5-alt1.noarch
Проверил на salt-master-3008.1-alt2 (Sisyphus): воспроизводится. GitBase.validate_remote("git://h.example/p/r.git") → False GitBase.validate_remote("ssh://git@h.example/p/r.git") → True GitBase.validate_remote("git@h.example:p/r.git") → True GitBase.validate_remote("https://h.example/p/r.git") → True Причина: salt/utils/verify.py, класс URLValidator — в списке SCHEMES нет схемы «git», поэтому git:// отбрасывается с «Found bad url data». Апстримный PR 68089 починил только форму git@host:path (через remote_to_url → ssh://), git:// он не затронул.
Проверка актуальности. Состояние: Последнее изменение — 2026-09-08. В комментарии #1 воспроизведение подтверждено на salt-master-3008.1-alt2 в Sisyphus: URLValidator не содержит схему git. В Sisyphus и p11 опубликован salt-3008.1-alt2; исправление git:// в этой версии не подтверждено. Решение: Оставить открытым; требуется добавить схему git в проверку URL или применить эквивалентное upstream-исправление.