私のgitリポジトリをGitlabからGogsに移行し、いくつかの組織/グループ名を変更し、リポジトリを再構成する機会を得ました。
Composerや他のパッケージャを使用するプロジェクトの場合は、現在Git + SSH URLが機能し続けたいと思います。
Gogsで方法を見つけましたが、何も達成できなかったようです。 Apacheがmod_rewriteを使用しているかのように、サーバー上のSSHパスを再構築します。 SSHを使用してこれを行う方法はありますか?.authorized_keys
Gogsはすでにコマンドを介してリポジトリへのアクセスを調整するためにコマンドを使用しているため、コマンドを追加するのは少し面倒です。
答え1
だから多くの調整の終わりに、私はmod_rewriteがApache2に対して何をするかをSSHに組み込んでいないという結論に達しました。おそらく良い理由があるでしょう。
だから私はSSH(環境変数SSH_ORIGINAL_COMMANDをオーバーライドしてファイルgogs
から)から呼び出されたコマンドを置き換えてから、実際のgogs実行可能ファイルを呼び出すスクリプトに切り替えました。.authorized_keys
SSH_ORIGINAL_COMMANDは、SSHが作成されたコマンドを呼び出す前にサーバーに送信されたコマンド.authorized_keys
(存在する場合)を作成する変数です。 gogsの場合、この変数はリポジトリがあることを確認し、ログインしたSSHユーザーなどに属していることを確認し、最後にリポジトリに対してgit操作を実行するために使用されます。この変数の記憶域パスを変更して、別名を記憶域に動的に追加できます。