我想使用诗歌将多个私有 Github 存储库作为 python 包安装到我的存储库中。这在poetry install本地运行时效果很好,因为我将公共 SSH 密钥添加到 Github,这允许诗歌访问私有存储库。问题是我想在我的 CI/CD 管道中安装这些相同的私有包,为此我需要为每个 repo 添加一个部署密钥。正确的部署密钥需要用于正确的存储库,为了使其工作,我需要使用以下格式的一些别名设置一个配置(我实际上还没有知道这是否真的有效) ):
// /.ssh/config
Host repo-1.github.com
IdentityFile ~/.ssh/repo-1-deploy-key
Host repo-2.github.com
IdentityFile ~/.ssh/repo-2-deploy-key
Run Code Online (Sandbox Code Playgroud)
凡repo-1和repo-2是私有仓库我需要安装的名称。在本地运行时,pyproject.toml需要按以下格式设置包:
// pyproject.toml
...
[tool.poetry.dependencies]
repo-1 = { git = "ssh://git@github.com/equinor/repo-1.git" }
repo-2 = { git = "ssh://git@github.com/equinor/repo-2.git" }
...
Run Code Online (Sandbox Code Playgroud)
因为这将允许开发人员在没有任何配置的情况下安装软件包(假设他们有权访问)。然而,对于 CI/CD 管道,URL 需要匹配 SSH 配置文件中的别名,因此它需要看起来像这样:
// pyproject.toml
...
[tool.poetry.dependencies]
repo-1 = { git = "ssh://git@repo-1.github.com/equinor/repo-1.git" }
repo-2 = { git = "ssh://git@repo-2.github.com/equinor/repo-2.git" }
...
Run Code Online (Sandbox Code Playgroud)
现在,我似乎陷入困境的是如何在同一个 pyproject …
我似乎无法找出使用 Typescript 和类组件库将数组作为道具传递给 Vue 组件的正确方法。按照官方模板,我尝试执行以下操作:
<script lang="ts">
import { Component, Vue} from 'vue-property-decorator';
const AppProps = Vue.extend({
props: {
propsMessage: String,
},
});
@Component({})
export default class Table extends AppProps {
mounted() {
console.log(this.propsMessage);
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
将其包含在一些模板中:
<template>
<Table :propsMessage="['This', 'is', 'Bob']" />
</template>
Run Code Online (Sandbox Code Playgroud)
确实有效,并提供以下输出:
[“这个”,“是”,“鲍勃”]
这是我想要的,但这肯定不是将数组作为道具传递的正确方法?我什至没有定义propsMessageas String[]。做了一些研究,我发现这篇文章提到有一个与此问题相关的错误。此问题已修复,最近才合并。所以,现在应该有一种方法可以做到这一点,但我找不到任何有关如何正确执行此操作的文档。