如何在运行时将输入传递给 cli 应用程序
how to pass input to cli application at runtime
我的项目中遇到了一个棘手的问题。我在 VDS 上有一个应用程序 运行s。我用 git 和作曲家安装了这个应用程序。该项目与本地项目一样具有 git 存储库。
我正在尝试制作一个自动更新程序 bot.This 机器人将从 gitlab 获取最后一个 commit/tag 并获取它。
我可以使用 nodejs 或 php cron 作业来完成。
但是 git pull
命令要求我提供用户名和密码。
我无法安装 php_expect 扩展。尝试了这个 yuloh/expect
库,但它没有捕捉到用户名输入。
所以这是我的问题:
对于 运行 这个 git pull
命令并传递用户名和密码,我应该如何以及使用哪种方法?
如果我完全理解你的问题,你可以试试这个:
您可以将密码放在 .netrc 文件中(windows 上的 _netrc)。从那里它会被自动拾取。它将以 600 权限转到您的主文件夹。
您也可以使用 https://user:pass@domain/repo
克隆回购协议,但不推荐这样做,因为它会在很多地方显示您的 user/pass...
一个新选项是使用credential helper。请注意,凭据将使用标准凭据帮助程序以明文形式存储在您的本地配置中。 credential-helper with wincred 也可以在 windows.
上使用
凭据助手的使用示例
git config credential.helper store - stores the credentials indefinitely.
git config credential.helper 'cache --timeout=3600'- stores for 60 minutes
对于基于 ssh 的访问,您将使用 ssh 代理,它会在需要时提供 ssh 密钥。这需要在您的计算机上生成密钥,将 public 密钥存储在远程服务器上并将私钥添加到相关密钥库。
已解决
为了获得新的更新...
git pull https://username:password@gitprovider/vendor/repository "version_code":"version_code"
用于将更新与最终用户应用程序合并。
git merge "version_code":master
这两个一起用新版本完全更新应用程序。
关于密码保护,我们将使用ioncube作为cron文件。
我的项目中遇到了一个棘手的问题。我在 VDS 上有一个应用程序 运行s。我用 git 和作曲家安装了这个应用程序。该项目与本地项目一样具有 git 存储库。
我正在尝试制作一个自动更新程序 bot.This 机器人将从 gitlab 获取最后一个 commit/tag 并获取它。
我可以使用 nodejs 或 php cron 作业来完成。
但是 git pull
命令要求我提供用户名和密码。
我无法安装 php_expect 扩展。尝试了这个 yuloh/expect
库,但它没有捕捉到用户名输入。
所以这是我的问题:
对于 运行 这个 git pull
命令并传递用户名和密码,我应该如何以及使用哪种方法?
如果我完全理解你的问题,你可以试试这个:
您可以将密码放在 .netrc 文件中(windows 上的 _netrc)。从那里它会被自动拾取。它将以 600 权限转到您的主文件夹。
您也可以使用
https://user:pass@domain/repo
克隆回购协议,但不推荐这样做,因为它会在很多地方显示您的 user/pass...一个新选项是使用credential helper。请注意,凭据将使用标准凭据帮助程序以明文形式存储在您的本地配置中。 credential-helper with wincred 也可以在 windows.
上使用
凭据助手的使用示例
git config credential.helper store - stores the credentials indefinitely.
git config credential.helper 'cache --timeout=3600'- stores for 60 minutes
对于基于 ssh 的访问,您将使用 ssh 代理,它会在需要时提供 ssh 密钥。这需要在您的计算机上生成密钥,将 public 密钥存储在远程服务器上并将私钥添加到相关密钥库。
已解决
为了获得新的更新...
git pull https://username:password@gitprovider/vendor/repository "version_code":"version_code"
用于将更新与最终用户应用程序合并。
git merge "version_code":master
这两个一起用新版本完全更新应用程序。
关于密码保护,我们将使用ioncube作为cron文件。