git - 使用 ColdFusion 的 Git 拉取/获取超时
问题描述
我必须编写一个简单的 ColdFusion 网页,显示多个 Git 存储库的可点击 Git 功能分支。这适用于一组测试人员,因此他们可以轻松地签出远程服务器上的分支以进行测试。我的<cfexecute>
作品用于显示分支、签出分支和签出标签。问题是新功能分支/提交永远不会出现在他们面前,因为我无法获得$ git fetch
或$ git pull
工作。出于某种原因,那些超时。我知道这不是 ColdFusion 超时设置。我可以在远程服务器上使用 Git Bash 手动运行 fetch 和 pull,它们会在几秒钟内运行。远程服务器上的 Git 将凭据存储在 Window Credential Manager 中,因此在服务器本身的命令行上使用 Git 时,我永远不会被提示登录。那么为什么会$ git checkout <branch>
和$ git branch -a
命令有效,但不使用此代码获取和拉取...
<cffunction name="execute" access="public" returnformat="JSON">
<cfargument name="command" type="string" required="true">
<cfargument name="directory" type="string" required="true">
<cfexecute name = "C:\Windows\System32\cmd.exe"
arguments = '/C cd "#arguments.directory#" && "c:\Program Files\Git\cmd\git.exe" #arguments.command#'
timeout = "600" variable="message" errorVariable="error_message">
</cfexecute>
<cfreturn [arguments.directory, arguments.command, message, error_message]>
</cffunction>
谢谢!
解决方案
CFexecute 失败的原因是 git pull 命令在进行拉取时正在等待用户指定用户名和密码。要解决此问题,请转到https://github.com/settings/tokens以生成和访问令牌,然后使用该令牌将其传递给拉取 URL,如下所示:
git pull https://MY_TOKEN_GOES_HERE:x-oauth-basic@github.com/myUser/myRepository master
何塞·埃利亚斯
推荐阅读
- wordpress - 所有链接都失效了
- kubernetes - Kubernetes 对 restartPolicy 使用错误的值
- javascript - 使用 Django 模型嵌入散景
- c# - 如何在 .net Core API 项目中跨多个线程限制对 HttpClient 的所有传出异步调用
- javascript - 无法获取工具提示 innerHtml 元素的 DOM id
- javascript - 如何为textarea中匹配的数组项添加高亮背景
- javascript - 如何使用JS按范围从字符串中删除字符串
- roblox - 如何报告 Roblox Studio 中的错误?
- html - 使用 Rangy 库按字号选择范围
- websocket - 是否有必要压缩 Websocket 短消息?