feat: Add `symlink-map` action
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
調査の方向性
リポジトリの GitHub Action エントリーポイントから始め、公開されているスキーマ https://schemas.arusty.dev/gha/symlink-map/v1.schema.json を含めて、links と mapping_file の入力を確認してください。sparse-checkout-aggregate の出力と動作を比較し、バリデーション、相対 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 はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- 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
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
NuSkooler/enigma-bbs#907 ·
メンテナーはふだん 1 日以内に返信
-
initramfs: -type f (#18686) skips the libcurl.so.4 symlink, libcurl no longer copied into initramfsオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 2 日以内に返信
-
bug
難易度 2/5 1時間未満 初心者へのやさしさ 85/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
mesonbuild/wrapdb#2961 ·
メンテナーはふだん 1 日以内に返信
-
package-update
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
oSoWoSo/vOid_Community_repOsitory#330 ·
メンテナーはふだん 1 日以内に返信