如何克隆TFS-2018 nuget feed?

问题描述 投票:0回答:2

我有本地公司 TFS 2018 服务器和 Nuget。 我创建了一个 nuget-feed。 我将使用此提要进行 1 次迭代。 然后,我需要为下个月创建下一个提要。这是业务流程。

那么,如何将 nuget 包从旧的 feed 克隆到新的呢?或者,我可以克隆提要吗?

谢谢!

tfs nuget nuget-server
2个回答
1
投票

您必须使用 REST API 编写一些脚本才能完成它。目前无法克隆 feed。

我建议不要这样做并纠正您的业务流程。没有理由这样做。如果这是您的最终目标,您可以将标签添加到特定的软件包版本以与版本相对应。


0
投票

有同样的问题,用JS脚本“nuget-clone.js”解决了它:

const execSync = require("node:child_process").execSync;

const nugetPackages = require("./packages.json");

const source = "https://example.org/_packaging/shared/nuget/v3/index.json";

const clonePackage = ({ source, name, version }) => {
  const cmd = `nuget install ${name} -Version ${version} -Source ${source} -OutputDirectory .\\packages -DependencyVersion Ignore`;
  const result = execSync(cmd);
  return result.toString("utf8");
}

const cloneJob = ({source, packages}) => {
    console.log(`Cloning ${packages.length} using source ${source}\n`);
    packages.forEach(({name, version}) => {
        console.log(`Cloning ${name}.${version}.nupkg`);
        const result = clonePackage({source, name, version});
        console.log(result);
    });
}

cloneJob({ source, packages: nugetPackages });

提供来自

的包裹

nuget 列表-AllVersions-NonInteractive-Source https://example.org/_packaging/shared/nuget/v3/index.json>packages.csv

并将 packages.csv 转换为 JSON 数组

[
    { "name": "package name", "version": "package version" }
]

(还没有时间写一个脚本来直接解析csv,也许我稍后会更新帖子......)

将源替换为您的服务器,确保 nuget 已存储凭据。

最后运行“node nuget-clone.js”。

该脚本会将所有 nupkg 文件克隆到子文件夹 .\packages 中。

© www.soinside.com 2019 - 2024. All rights reserved.