Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat: Add `symlink-map` action

Open
#5 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
github-actions, shell
Domain
ci-cd, devops

Research direction

Start with the repository's GitHub Action entrypoint and review the links and mapping_file inputs, including the published schema at https://schemas.arusty.dev/gha/symlink-map/v1.schema.json. Compare behavior with the sparse-checkout-aggregate outputs and verify that validation, relative symlinks, parent-directory creation, and clean mode meet the specification.

Written by the indexing model from the issue text.

Description

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
Dominant language
Shell
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from aRustyDev/gh

All issues in aRustyDev/gh

Similar issues

More Shell/Bash issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.