diff --git a/roles/basessh/templates/sshd_config b/roles/basessh/templates/sshd_config index 840121a2b3..45f316a1db 100644 --- a/roles/basessh/templates/sshd_config +++ b/roles/basessh/templates/sshd_config @@ -43,6 +43,13 @@ AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS +{% if sshd_keyhelper %} +# For repospanner/git +AuthorizedKeysCommandUser git +AuthorizedKeysCommand /usr/libexec/pagure/keyhelper.py "%u" "%h" "%t" "%f" +{% endif %} + + {% if sshd_sftp %} Subsystem sftp internal-sftp {% endif %} diff --git a/roles/distgit/pagure/templates/pagure_shared.cfg b/roles/distgit/pagure/templates/pagure_shared.cfg index 8eb67409b8..01f4377e4a 100644 --- a/roles/distgit/pagure/templates/pagure_shared.cfg +++ b/roles/distgit/pagure/templates/pagure_shared.cfg @@ -86,6 +86,17 @@ PDC_URL = 'https://pdc{{ env_suffix }}.fedoraproject.org/rest_api/v1/' SSH_KEYS_USERNAME_LOOKUP = True SSH_KEYS_OPTIONS = 'restrict,command="/usr/libexec/pagure/aclchecker.py %(username)s"' + +SSH_COMMAND_REPOSPANNER = ([ + "/usr/libexec/repobridge", + "--extra", "username", "%(username)s", + "--extra", "repotype", "%(repotype)s", + "--extra", "project_name", "%(project_name)s", + "--extra", "project_user", "%(project_user)s", + "--extra", "project_namespace", "%(project_namespace)s", + "%(cmd)s", + "'pagure/%(repotype)s/%(reponame)s'", +], {"REPOBRIDGE_CONFIG": "/etc/repobridge/rpms.json"}) SSH_COMMAND_NON_REPOSPANNER = ([ "/usr/libexec/git-core/%(cmd)s", "%(repopath)s", diff --git a/roles/pagure/frontend/templates/pagure.cfg b/roles/pagure/frontend/templates/pagure.cfg index 7cf52ded02..2108abeaad 100644 --- a/roles/pagure/frontend/templates/pagure.cfg +++ b/roles/pagure/frontend/templates/pagure.cfg @@ -332,12 +332,23 @@ MIRROR_SSHKEYS_FOLDER='/srv/mirror/ssh' SSH_KEYS_USERNAME_EXPECT = "git" SSH_KEYS_OPTIONS = 'restrict,command="/usr/libexec/pagure/aclchecker.py %(username)s"' +SSH_COMMAND_REPOSPANNER = ([ + "/usr/libexec/repobridge", + "--extra", "username", "%(username)s", + "--extra", "repotype", "%(repotype)s", + "--extra", "project_name", "%(project_name)s", + "--extra", "project_user", "%(project_user)s", + "--extra", "project_namespace", "%(project_namespace)s", + "%(cmd)s", + "'%(repotype)s/%(reponame)s'", +], {"REPOBRIDGE_CONFIG": "/etc/pagure/repobridge_ansible.json"}) SSH_COMMAND_NON_REPOSPANNER = ([ "/usr/bin/%(cmd)s", "/srv/git/repositories/%(reponame)s", ], {"GL_USER": "%(username)s"}) + GIT_AUTH_BACKEND = 'pagure' HTTP_REPO_ACCESS_GITOLITE = None