我的项目中有一个棘手的问题。我有一个在VDS上运行的应用程序。我使用git和composer安装了此应用程序。这个项目有git仓库,就像本地的。
我正在尝试制作一个自动更新机器人,该机器人将从gitlab获取最后的提交/标签并获取它。
我可以使用nodejs或php cron作业。
但是git pull
命令要求输入我的用户名和密码。
我无法安装php_expect扩展名。尝试过此yuloh/expect
库,但未捕获用户名输入。
这是我的问题:
我应该如何以及通过哪种方法来运行此git pull
命令并传递用户名和密码?
答案 0 :(得分:1)
要获取新的更新...
git pull https://username:password@gitprovider/vendor/repository "version_code":"version_code"
用于将更新与最终用户应用程序合并。
git merge "version_code":master
这两个一起完全用新版本更新了应用程序。
关于密码保护,我们将使用ioncube来存储cron文件。
答案 1 :(得分:-1)
如果我完全理解您的问题,可以尝试以下操作:
您可以将密码放入.netrc文件(Windows上为_netrc)。从那里它将被自动拾取。它将进入具有600个权限的主文件夹。
您也可以只使用https://user:pass@domain/repo
克隆存储库,但这并不是真正推荐的做法,因为它会在很多地方显示您的用户/密码...
一个新选项是使用credential helper。请注意,凭据将使用标准凭据帮助程序以明文形式存储在本地配置中。带有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密钥。这将需要在计算机上生成密钥,将公钥存储在远程服务器上,并将私钥添加到相关的密钥库中。