You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在源代码管理中隐藏nuget.config中的明文密码?

解决方案:用GitHub Actions密钥替换NuGet明文密码

完全可以用GitHub Actions的加密密钥和环境变量替换明文密码,具体步骤如下:

1. 清理源代码中的明文密码

先修改仓库里的nuget.config,移除包含明文密码的packageSourceCredentials节点,修改后的文件如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
        <add key="github" value="https://nuget.pkg.github.com/mycompany/index.json" />
    </packageSources>

    <packageSourceMapping>
        <packageSource key="github">
            <package pattern="MyCompany.*" />
        </packageSource>

        <packageSource key="nuget.org">
            <package pattern="*" />
        </packageSource>
    </packageSourceMapping>
</configuration>

把修改后的文件提交并推送到仓库。如果之前已经提交过带明文密码的版本,建议用git filter-repo清理仓库历史中的敏感信息,彻底避免密码泄露。

2. 在GitHub仓库添加加密密钥

进入你的GitHub仓库,依次点击Settings -> Secrets and variables -> Actions,点击New repository secret添加两个密钥:

  • GITHUB_NUGET_USERNAME:填写你的GitHub用户名
  • GITHUB_NUGET_TOKEN:填写拥有read:packages权限的GitHub个人访问令牌(PAT)

3. 在GitHub Actions工作流中配置NuGet凭证

在你的构建工作流文件(比如.github/workflows/build.yml)中,添加步骤动态配置NuGet源的凭证,示例如下:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      # 配置GitHub NuGet源的凭证
      - name: 配置GitHub NuGet源凭证
        run: dotnet nuget update source github --username ${{ secrets.GITHUB_NUGET_USERNAME }} --password ${{ secrets.GITHUB_NUGET_TOKEN }} --store-password-in-clear-text

      # 执行依赖还原与构建
      - name: 还原依赖
        run: dotnet restore

      - name: 构建项目
        run: dotnet build --no-restore

这样GitHub Actions会在构建过程中自动注入加密的密钥,既不会暴露密码,也能正常访问私有NuGet源。

内容的提问来源于stack exchange,提问作者user246392

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:07:37