Skip to main content

软件模板配置

Backstage软件模板会创建源代码,因此您的Backstage应用程序需要设置为允许创建资源库。

在您的app-config.yaml加入Backstage集成查找适合贵组织的源代码库。

注意:集成可能已经设置为 app-config.yaml 的一部分。

下一步是添加模板到您的 Backstage 应用程序。

发布默认值

软件模板可以定义出版行动,例如publish:github来创建新版本库或向现有版本库提交拉取/合并请求。 您可以通过scaffolder中的配置app-config.yaml:

scaffolder:
defaultAuthor:
name: M.C. Hammer # Defaults to `Scaffolder`
email: [email protected] # Defaults to `[email protected]`
defaultCommitMessage: "U can't touch this" # Defaults to 'Initial commit'

要配置谁可以查看从软件模板创建的新版本库,请添加repoVisibility键:

- id: publish
name: Publish
action: publish:github
input:
repoUrl: '{{ parameters.repoUrl }}'
repoVisibility: public # or 'internal' or 'private'

在 Docker 情况下禁用 Docker(可选)

软件模板使用fetch:template默认情况下,该操作不需要外部依赖性,并提供一个Cookiecutter 兼容模式还有一个fetch:cookiecutter动作,它使用Cookiecutter默认情况下,......fetch:cookiecutter操作将使用scaffolder-backend/Cookiecutterdocker 映像。

如果你是从 Docker 容器运行 backstage,又想避免在容器内调用容器,可以在自己的镜像中设置 Cookiecutter,这将使用本地安装来代替。

要做到这一点,您可以在最后一步的Dockerfile:

RUN apt-get update && apt-get install -y python3 python3-pip
RUN pip3 install cookiecutter

使用分组和筛选功能自定义 ScaffolderPage

一旦你拥有了几个以上的软件模板,你可能想自定义你的ScaffolderPage您可以通过创建groups并将它们传递给您的ScaffolderPage如下

<ScaffolderPage
groups={[
{
title: "Recommended",
filter: entity =>
entity?.metadata?.tags?.includes('recommended') ?? false,
},
]}
/>

这段代码会将所有带有 "推荐 "标签的模板分组放在页面顶部,高于未被该组或其他组过滤的其他模板。

您还可以通过传递titleComponent而不是title组件,而不仅仅是默认的ContentHeadertitle设置为其值。Grouped Templates

您还可以选择隐藏某些模板,这样做有多种用途:

  • 它仍处于试验阶段,因此您可以将其与功能标记等结合起来 * 您不想让它们从模板列表中访问,而只想在某些操作中打开它,并预先填充数据 * 根据目标环境显示不同的模板集
<ScaffolderPage
templateFilter={entity =>
entity?.metadata?.tags?.includes('experimental') ?? false
}
/>