Add Set Repository Secret From CLI as a GitHub Actions TIL

This commit is contained in:
jbranchaud
2026-10-07 22:50:13 -05:00
parent 29676e0d5a
commit 8129ad0eaa
2 changed files with 33 additions and 1 deletions
+2 -1
View File
@@ -10,7 +10,7 @@ working across different projects via [VisualMode](https://www.visualmode.dev/).
For a steady stream of TILs, [sign up for my newsletter](https://visualmode.kit.com/newsletter).
_1887 TILs and counting..._
_1888 TILs and counting..._
See some of the other learning resources I work on:
@@ -495,6 +495,7 @@ If you've learned something here, support my efforts writing daily TILs by
- [Disable A Workflow With The gh CLI](github-actions/disable-a-workflow-with-the-gh-cli.md)
- [Reference An Encrypted Secret In An Action](github-actions/reference-an-encrypted-secret-in-an-action.md)
- [Run Schedule Action To Commit Regular Updates](github-actions/run-scheduled-action-to-commit-regular-updates.md)
- [Set Repository Secret From CLI](github-actions/set-repository-secret-from-cli.md)
- [Trigger A Workflow Via An API Call](github-actions/trigger-a-workflow-via-an-api-call.md)
- [Use Labels To Block PR Merge](github-actions/use-labels-to-block-pr-merge.md)
@@ -0,0 +1,31 @@
# Set Repository Secret From CLI
I set up a GitHub Action that will run daily and potentially push data up to a
3rd-party API. To be able to post to that API, the action must include a secret
as the bearer token in the requests. I need to securely include that secret in
the GitHub Actions environment for this repo.
I can do that from the CLI with `gh` like so:
```bash
❯ gh secret set TIL_SYNC_TOKEN
? Paste your secret: ****************************************************************
```
Notice that it prompts me for the secret and stars out what I paste in. That way
the secret doesn't end up in my bash history and isn't visible on my screen.
After I've run this, I can see that the secret is set by opening up the repo in
the GitHub web UI, clicking on _Settings_ > _Secrets and Variables_ > _Actions_.
I should see `TIL_SYNC_TOKEN` listed under the _Repository Secrets_ section.
Here is an excerpt from my workflow action sync script where that secret is
referenced -- notice the `${{ secrets.TIL_SYNC_TOKEN }}`.
```yaml
- name: Sync posts
env:
TIL_SYNC_URL: ${{ vars.TIL_SYNC_URL }}
TIL_SYNC_TOKEN: ${{ secrets.TIL_SYNC_TOKEN }}
run: ruby script/til_sync/til_sync.rb --repo til ${{ inputs.all && '--all' || '--days 3' }}
```