7

git コマンドが認識する URL は、HTTPS または SSH の形式にすることができます。

CMake では、git コマンドで認識される任意の URLExternalProject_Addを指定して使用できます。GIT_REPOSITORY

プライベート リポジトリを「複製」するには、HTTPS ユーザー資格情報を使用する必要があります。の場合ExternalProject_Add、そのようなメカニズムはHTTP_USERNAMEHTTP_PASSWORDを使用するときに存在しDOWNLOAD_COMMANDます。

そのGIT_REPOSITORYような方法はないようです。使用時:

include( ExternalProject )

ExternalProject_Add(test
    GIT_REPOSITORY git@github.com:myuser/myprivaterepo.git
    GIT_REMOTE_NAME origin
)

プライベート リポジトリでは、次のエラーが表示されます。

fatal: could not read Username for 'https://github.com': No such device or address

質問

GIT_REPOSITORYでプライベート リポジトリへの HTTPS 接続を使用する場合、CMake リクエストにパスワードを設定するにはどうすればよいExternalProject_Addですか?

4

1 に答える 1

0

CMake はユーザー資格情報を提供するための明示的な Git オプション (HTTP_USERNAMEや などHTTP_PASSWORD) を提供していませんが、こちら で説明されているように、ログイン パスワードの入力を求めるプロンプトが表示されるように Git URL を操作できます。URLusernameで aを使用して指定するだけです。@

ExternalProject_Add(test
    GIT_REPOSITORY https://username@github.com/myuser/myprivaterepo.git
    GIT_REMOTE_NAME origin
    USES_TERMINAL_DOWNLOAD ON 
)

USES_TERMINAL_DOWNLOAD端末入力で資格情報を入力できるようにするオプションを有効にする必要がある場合もあります。URL 自体にパスワードを直接指定することもできますが、ベスト プラクティスではこれはお勧めしません。

ExternalProject_Add(test
    GIT_REPOSITORY https://username:password@github.com/myuser/myprivaterepo.git
    GIT_REMOTE_NAME origin
    USES_TERMINAL_DOWNLOAD ON 
)

おまけとして、これは Bitbucket アカウントでも機能します。

于 2021-09-02T13:56:43.950 に答える