AbdulElahGwaith's picture
Upload folder using huggingface_hub
88df9e4 verified

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