feat: Add `symlink-map` action
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
调研方向
从仓库的 GitHub Action 入口点开始,检查 links 和 mapping_file 输入,包括发布于 https://schemas.arusty.dev/gha/symlink-map/v1.schema.json 的 schema。将行为与 sparse-checkout-aggregate 的输出进行比较,并验证 validation、相对 symlink、父目录创建和 clean 模式是否符合规范。
由索引模型根据 Issue 内容生成。
描述
Summary
Create a reusable GitHub Action that creates symlinks from an explicit list or mapping file.
Use Case
After sparse-checkout-aggregate clones documentation sources, create symlinks to make them accessible to the build tool (e.g., mdbook).
Specification
Inputs
| Input | Required | Default | Description |
|---|---|---|---|
links |
No* | — | JSON array of { source, target } |
mapping_file |
No* | — | Path to mapping file (must match schema) |
source_prefix |
No | — | Prefix for source paths (with mapping_file) |
target_prefix |
No | — | Prefix for target paths (with mapping_file) |
clean |
No | false |
Remove existing symlinks in target dirs first |
*One of links or mapping_file required.
Example Usage
# From job outputs (preferred)
- uses: arustydev/gha/symlink-map@v1
with:
links: ${{ steps.aggregate.outputs.symlinks }}
# OR from mapping file
- uses: arustydev/gha/symlink-map@v1
with:
mapping_file: sources.yml
source_prefix: .sources
target_prefix: books
Links Format
[
{ "source": ".sources/ai/docs/src", "target": "books/ai" },
{ "source": ".sources/just/docs/src", "target": "books/just" }
]
Implementation Notes
- Validate source paths exist before creating symlinks
- Create parent directories for targets if needed
- Use relative symlinks where possible
- Support
cleanmode to remove stale symlinks - Validate against schema when using mapping_file
Schema
Schema will be published at https://schemas.arusty.dev/gha/symlink-map/v1.schema.json
See: arustydev/schemas for schema definition.
Related
- Part of docs aggregation workflow extraction
- Consumes outputs from
sparse-checkout-aggregateaction - Schema tracked in arustydev/schemas
- 主要语言
- Shell
- 星标
- 0
- 派生
- 0
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
aRustyDev/gh 的其他 Issue
-
dependencies github-actions
难度 1/5 1 小时以内 新手友好度 10/100
-
dependencies github-actions
难度 1/5 1 小时以内 新手友好度 15/100
-
dependencies github-actions
难度 1/5 1 小时以内 新手友好度 50/100
-
dependencies github-actions
难度 2/5 1-3 小时 新手友好度 20/100
-
dependencies github-actions
难度 2/5 1-3 小时 新手友好度 10/100
相似的 Issue
-
area: harness bug status: needs-triage
难度 2/5 1-3 小时 新手友好度 75/100
Human-Agent-Society/reef#625 ·
-
module: core
难度 2/5 1-3 小时 新手友好度 75/100
bigbluebutton/bigbluebutton#25849 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
vercel-labs/just-bash#464 ·
-
area:sandbox documentation enhancement platform:linux
难度 1/5 1 小时以内 新手友好度 85/100
anthropics/claude-code#96664 ·
-
cost:cheap severity:medium
难度 2/5 1-3 小时 新手友好度 70/100
fairagro/m4.2_sql_to_arc#227 ·