Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

feat: Add `symlink-map` action

未关闭
#5 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
停滞
技术栈
github-actions, shell
领域
ci-cd, devops

调研方向

从仓库的 GitHub Action 入口点开始,检查 links 和 mapping_file 输入,包括发布于 https://schemas.arusty.dev/gha/symlink-map/v1.schema.json 的 schema。将行为与 sparse-checkout-aggregate 的输出进行比较,并验证 validation、相对 symlink、父目录创建和 clean 模式是否符合规范。

由索引模型根据 Issue 内容生成。

描述

enhancement new-action

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 clean mode 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-aggregate action
  • Schema tracked in arustydev/schemas
主要语言
Shell
星标
0
派生
0
PR 合并指标
30 天内没有已合并 PR

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

aRustyDev/gh 的其他 Issue

查看 aRustyDev/gh 的全部 Issue

相似的 Issue

更多 Shell/Bash Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。