用途
accept-element 是 Remotion 仓库中面向维护者的工作流技能,专门处理那些通过 submit-element 技能“外部路径”提交的 Remotion Element 贡献。它覆盖从审查确认到发布收尾的完整接收流程。
需要注意的是,本文档明确说明:本工作流不适用于仓库作者直接提交的贡献,因为直接提交已经有公开预览 URL,且没有已提交的预览资源。在使用前,应先完整阅读 Element 贡献指南、scaffold-element 技能和 submit-element 技能。
主要能力与使用方式
该流程分为五个阶段,均在外部贡献者的拉取请求分支上运行,不进行强制推送(force push)。对于来自 fork 的拉取请求,需确认已启用“Allow edits from maintainers”;若分支无法更新,则只能在批准后上传,并要求贡献者自行应用 URL 与资源清理。
1. 确认贡献可审阅
确认提交的单个 <category>/<slug> 满足以下条件:实现、页面、中心定义与侧边栏注册都在拉取请求中;页面 frontmatter 与中心定义使用 /elements/<category>-<slug>-preview.png 和 .mp4 审查 URL;对应文件已提交在 packages/docs/static/elements/<category>-<slug>-preview.png 与 .mp4;贡献者已明确在 Studio 中审阅该 Element 并批准这两个已提交的预览资源;拉取请求已通过针对 Element 贡献指南的代码审查。若元数据已指向缺失的 https://remotion.media 资源,或审查资源仅存在于拉取请求之外,则不应接受。
2. 对照最终代码校验已提交资源
运行聚焦测试并重新渲染 Element:
cd packages/docs
bun test src/test/elements.test.ts
bun run render-element-previews --element=<category>/<slug>
cd ../..
向维护者提供已提交资源路径(packages/docs/static/elements/ 下的 PNG 与 MP4)以及新渲染路径(packages/docs/.element-previews/<category>/<slug>/preview.png 与 preview.mp4),请其目视比对两者是否表示相同的海报帧和动画。必须停止并等待维护者对最终源码与两个已提交资源的显式批准后再上传;不得根据代理自身的检查推断批准。若被拒绝,则将贡献退回提交流程。
3. 上传经批准的确切文件
在 packages/docs/.env 中配置维护者 R2 凭证后运行:
cd packages/docs
bun run upload-element-preview \
--element=<category>/<slug> \
--source=submission
cd ../..
在 packages/docs 下运行可让 Bun 加载 packages/docs/.env。Element 预览上传不使用 packages/remotion-media/.env,也不应使用通用的 upload-r2 或 offload-r2 技能。该命令上传 packages/docs/static/elements 中的确切文件,不会重新渲染或删除它们;submission 来源会校验资源已提交且未修改,并检查本地路径、签名、合并体积、上传体积、公开 HTTP 响应与内容类型。只有在两个上传都验证通过后才能继续。命令会打印公开 URL:https://remotion.media/elements/<category>-<slug>-preview.png 与 .mp4。
4. 将贡献转换为已发布状态
仅在上传成功后:将 packages/docs/src/components/Elements/element-definitions.ts 中的本地 posterUrl 与 videoUrl 替换为打印出的 https://remotion.media URL;将 packages/docs/elements/<category>/<slug>/index.mdx 中的本地图片 URL 替换为公开海报 URL;从 packages/docs/static/elements 删除这两个文件;若该目录为空则删除它。上传与清理之间不得更改 slug 或扁平资源名称。
5. 验证并更新拉取请求
cd packages/docs
bun test src/test/elements.test.ts
cd ../..
bun run build
bun run stylecheck
git diff --check
git status --short
聚焦测试此时将校验元数据包含确切的公开 URL,且不存在匹配的本地审查资源。检查最终 diff,应包含 Element 源码、页面、定义、图库注册与公开 URL,但不含 PNG 或 MP4。将接收清理正常提交到同一拉取请求分支并以非强制方式推送,然后停止并报告该拉取请求已准备好审查。
适用场景与限制
该技能适用于 Remotion 仓库维护者处理外部 Element 贡献的接收与发布。限制包括:仅限维护者使用;不适用于仓库作者直接提交;不得强制推送;必须在维护者显式批准预览资源后才能上传;上传需维护者 R2 凭证;必须使用 upload-element-preview 及 submission 来源,而非通用 R2 技能。