Reusables CLI
Helpful CLI tool for making it easier to work with data/reusables.
Helps find where reusables are already used, and where they could be used.
Usage
npm run reusables -- --help to see commands
Commands:
npm run reusables --:
Command: npm run reusables -- find used <reusable-path>
Find where a specific reusable is used
Example
npm run reusables -- find used copilot/signup-procedure.md
Searching for content files that use data/reusables/copilot/signup-procedure.md...
Found 2 files that use data/reusables/copilot/signup-procedure.md.
In content/billing/managing-billing-for-github-copilot/managing-your-github-copilot-individual-subscription.md on:
Line 35
In content/copilot/quickstart.md on:
Line 29
Command: npm run reusables -- find top-used [number-of-most-used-to-find]
Find top X (default 10) most used reusables and the number of times they are used.
Example
npm run reusables -- find top-used 5
Searching for the top 5 most used reusables...
0/3225 reusables checked...
100/3225 reusables checked...
(etc, etc)
3225/3225 reusables checked...
Top 5 most used reusables:
#1. 318 uses of data/reusables/repositories/navigate-to-repo.md
#2. 286 uses of data/reusables/profile/access_org.md
#3. 212 uses of data/reusables/enterprise-accounts/access-enterprise.md
#4. 193 uses of data/reusables/profile/org_settings.md
#5. 171 uses of data/reusables/actions/action-checkout.md
Command: npm run reusables -- find unused
Find which reusables aren't used in any content files.
This will take ~10+ minutes to run locally. You will be updated at each 5% interval.
Example
npm run reusables -- find unused
Searching 6468 files and 3225 reusables...
Progress: 5% done
Progress: 10% done
Progress: 15% done
...
Found 111 unused reusables:
data/reusables/actions/action-labeler.md
data/reusables/actions/actions-audit-events-for-enterprise.md
data/reusables/actions/actions-audit-events-workflow.md
data/reusables/actions/cache-no-org-policy.md
data/reusables/actions/configure-runner-group-access.md
...
Command: npm run reusables -- find potential-uses
Find which files that reusables might be used in.
The command does this by searching every content/ & data/ file for strings that match every reusable that isn't ignored in src/content-render/scripts/reusables-cli/ignore-reusables.ts.
Example
npm run reusables -- find potential-uses
Searching 6468 files for potential reusable use...
0/3225 reusables checked...
100/3225 reusables checked...
(etc, etc)
3223/3225 reusables checked...
Found 13 files that could use reusables.
Reusable data/reusables/actions/action-labeler.md can be used
In content/actions/using-workflows/reusing-workflows.md on:
Line 146
Line 188
(cont.)
Ignoring reusables
Some reusables might not make sense to "reuse" everywhere they could be reused. For instance, at the time of writing there is a reusable that is just the number "30" which shows up in certain files, but doesn't make sense to be replaced with a reusable.
In these cases you can skip these reusables from being checked by the find potential-uses command by adding their paths to the array in src/content-render/scripts/reusables-cli/ignore-reusables.ts
Similarity search
This may or may not be a useful search. It does a looser search to find places where the reusable may be usable. You can include this type of search with the -s flag. You can alter the "threshold" used by the scoring algorithm to show more (higher number) or less (lower number) potential results with the -t flag.
The threshold is a number that finds how similar the words in the reusable are to the words in a given article.
A good default threshold number is 15000. You can experiment with a higher/lower number if you aren't getting good results.
e.g. npm run reusables -- find potential-uses -s -t 15000