gpt4 book ai didi

swift - 使用 vapor 导入多个私有(private)存储库时出错

转载 作者:可可西里 更新时间:2023-11-01 01:07:05 26 4
gpt4 key购买 nike

我在导入多个私有(private)存储库时遇到问题,我似乎可以使用 1.所以我想知道是否有人可以告诉我我做错了什么。我的项目结构是这样的:在 Package.swift 所在的项目的根目录中:

--.ssh
--config
--model
--model.pub
--service
--service.key

package.swift 的内容:

import PackageDescription

let package = Package(
name: "Server",
products: [
.library(name: "Seerver", targets: ["App"]),
],
dependencies: [
// 💧 A server-side Swift web framework.
.package(url: "https://github.com/vapor/vapor.git", from: "3.0.0"),

// 🔵 Swift ORM (queries, models, relations, etc) built on SQLite 3.
.package(url: "https://github.com/vapor/fluent-sqlite.git", from: "3.0.0"),

.package(url: "git@github.com:SwiftEverywhere/Model.git", .branch("master")),

.package(url: "git@service.github.com:SwiftEverywhere/Service.git", .branch("master"))
],
targets: [
.target(name: "App", dependencies: ["FluentSQLite", "Vapor", "Model", "Service"]),
.target(name: "Run", dependencies: ["App"]),
.testTarget(name: "AppTests", dependencies: ["App"])
]
)

配置内容:

Host github.com
HostName github.com
User git
IdentityFile ./.ssh/model
Host service.github.com
HostName github.com
User git
IdentityFile ./.ssh/service

我将 key 作为部署 key 添加到各自的存储库中。我无法在不同的存储库上使用相同的 key 。我以为我可以通过将主机更改为 service.github.com 以使其使用另一个 key 来做到这一点,但它似乎无法像这样工作。我还尝试更改用户和主机名,但没有成功。

我在运行“vapor update”时收到的错误是“无法从远程存储库读取。请确保您具有正确的访问权限并且存储库存在”

如果我删除服务依赖性它确实有效,所以那一定是我犯了错误的地方。提前致谢!

tldr;基本上我需要知道如何配置配置文件和/或 package.swift 以使用正确的部署 key 。

最佳答案

问题是,您不能在多个存储库上使用一个 key 作为部署 key ,这一点您已经注意到了。

根据 this gist and those comments你可以像这样解决:

在你的 Package.swift 中:

.package(url: "git@github.com-model:SwiftEverywhere/Model.git", .branch("master")),
.package(url: "git@github.com-service:SwiftEverywhere/Service.git", .branch("master"))

在您的 SSH 配置中(可能是 ~/.ssh/config):

Host github.com-model
HostName github.com
User git
IdentityFile ~/.ssh/model

Host github.com-service
HostName github.com
User git
IdentityFile ~/.ssh/service

另一种解决方法是创建一个部署用户,并将部署 key 作为用户范围的 ssh key 。然后将此部署用户作为协作者添加到您的私有(private)存储库。

关于swift - 使用 vapor 导入多个私有(private)存储库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56871705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com