Git从composer.json保存部署令牌url,防止推送到repo

Posted

技术标签:

【中文标题】Git从composer.json保存部署令牌url,防止推送到repo【英文标题】:Git saving deploy token url from composer.json preventing pushing to repo 【发布时间】:2019-07-28 04:52:06 【问题描述】:

我正在开发基于模块的 Laravel CMS。 这是私有的,这意味着我需要使用 git deploy 令牌,以便我可以使用 composer 来安装/管理这些模块。

例子:

"repositories"      : 
"repo-name": 
  "type": "vcs",
  "url": "https://gitlab+deploy-token-xxxxx:password@gitlab.com/url-to-repo.git"
,

这通常工作得很好,这意味着当我创建一个新项目时,我可以安装我的模块。 但是 Windows / Git 将部署令牌保存为 Windows 中的 Git 凭据,覆盖了我的正常登录。

这意味着,当我正在开发我的模块并想要推送更改时,Gitlab 会拒绝它,因为 Git 正在尝试使用部署密钥而不是我的正常 Git 凭据上传我的更改。

我的问题:是否有可能以某种方式阻止 Git 将此部署令牌保存为全局 Git 凭据,这样它就不会覆盖我通常的 Git 凭据?

提前致谢!

【问题讨论】:

也许api-credentials 有帮助吗? 我没有看到任何方法可以阻止部署令牌与此 api-credentials 一起保存? 【参考方案1】:

当我开发我的模块并想要推送更改时,Gitlab 拒绝它,因为 Git 试图使用部署密钥而不是我的正常 Git 凭据上传我的更改。

检查GitLab 14.6(2021 年 12 月)是否适用于您的情况:

使用 Deploy Tokens 下载 Composer 依赖项

您现在可以使用deploy tokens 来验证与 Composer 存储库交互的用户。以前,personal access tokens 和作业令牌用于对从 GitLab Composer 存储库发布和下载作曲家依赖项的用户进行身份验证。 这些令牌与特定用户绑定。

Deploy tokens 提供一种与特定用户无关的身份验证方法,确保您的生产工作流程更加高效和安全。

请参阅 Documentation 和 Issue。

【讨论】:

【参考方案2】:

尝试在您的网址中删除 .git

"url": "https://gitlab+deploy-token-xxxxx:password@gitlab.com/url-to-repo"

【讨论】:

您的回复并未说明如何解决问题。

以上是关于Git从composer.json保存部署令牌url,防止推送到repo的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Composer 从本地 Git 存储库安装标记提交?

composer引用私有git

git版本控制文件提交到composer应用市场

更改包的 Composer git 源

Laravel - 在部署自定义 Artisan 命令时未部署 composer.json 文件

通过composer发布自己的包