https://github.com/devlooped/actions-bot
A GitHub Action that sets bot secrets as git defaults if present
https://github.com/devlooped/actions-bot
actions github github-actions
Last synced: 3 months ago
JSON representation
A GitHub Action that sets bot secrets as git defaults if present
- Host: GitHub
- URL: https://github.com/devlooped/actions-bot
- Owner: devlooped
- License: mit
- Created: 2022-08-09T17:32:24.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-18T00:30:52.000Z (4 months ago)
- Last Synced: 2025-03-25T03:34:04.849Z (4 months ago)
- Topics: actions, github, github-actions
- Size: 28.3 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
- License: license.txt
Awesome Lists containing this project
README
# 🤖 defaults
A GitHub action that sets git defaults (name, email, author) for
automated bot workflows from secrets or environment variables.Also defaults `GH_TOKEN` to `GITHUB_TOKEN` if empty.
## Usage
```
- name: 🤖 defaults
uses: devlooped/actions-bot@v1
with:
# The default name of the bot account.
# Defaults to $GITHUB_ACTOR.
# Set as $BOT_NAME environment variable after run, and as bot-name output.
name: ''# The default email of the bot account.
# Defaults to [email protected].
# Set as $BOT_EMAIL environment variable after run, and as bot-email output.
email: ''# The token to set as $GH_TOKEN environment variable. If empty,
# uses the github_token input as a fallback.
# Defaults to ''. Typically set to ${{ secrets.GH_TOKEN }}.
# Set as $GH_TOKEN and BOT_TOKEN environment variables after run,
# and as bot-token output.
gh_token: ''# Fallback token to use for $GH_TOKEN if it's empty.
# Defaults to ''. Typically set to ${{ secrets.GITHUB_TOKEN }}.
github_token: ''
```If both `gh_token` and `github_token` have empty values, the action will fail.
The additional `BOT_AUTHOR` environment variable is set to `"$BOT_NAME <$BOT_EMAIL>"`
as well as the `bot-author` output for easy consumption.The action also runs:
```
git config --global user.name $BOT_NAME
git config --global user.email $BOT_EMAIL
```so that git commands can be run with the resulting defaults already applied.
## Example
To run the action and automatically create a PR with the resolved bot defaults:
```yml
on:
push:
branches:
- mainjobs:
includes:
runs-on: ubuntu-latest
steps:
- name: 🤖 defaults
uses: devlooped/actions-bot@v1
with:
name: ${{ secrets.BOT_NAME }}
email: ${{ secrets.BOT_EMAIL }}
gh_token: ${{ secrets.GH_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}- name: 🤘 checkout
uses: actions/checkout@v2
with:
token: ${{ env.GH_TOKEN }}# add some step that changes files
- name: ✍ pull request
uses: peter-evans/create-pull-request@v3
with:
base: main
branch: bot-updates
author: ${{ env.BOT_AUTHOR }}
committer: ${{ env.BOT_AUTHOR }}
commit-message: ⬆️ Bot file updates
title: ⬆️ Bot file updates
body: Updates made by @${{ env.BOT_NAME }}.
token: ${{ env.GH_TOKEN }}
```In a repository that doesn't define any of the custom secrets passed to
the `devlooped/actions-bot@v1` action, all environment variables will be
properly defaulted, since at least `${{ secrets.GITHUB_TOKEN }}` *will*
be present, as well as the `$GITHUB_ACTOR` which is used to default
`BOT_NAME`, `BOT_EMAIL` and `BOT_AUTHOR`.It would also be possible to just run `git` commands from a shell and
get the same defaults automatically.# Sponsors
[](https://github.com/clarius)
[](https://github.com/KirillOsenkov)
[](https://github.com/MFB-Technologies-Inc)
[](https://github.com/decriptor)
[](https://github.com/torutek-gh)
[](https://github.com/drivenet)
[](https://github.com/davkean)
[](https://github.com/chiluap)
[](https://github.com/dgnaegi)
[](https://github.com/AshleyMedway)
[](https://github.com/Keflon)
[](https://github.com/bitbonk)
[](https://github.com/tbolon)
[](https://github.com/yrashk)
[](https://github.com/kfrancis)
[](https://github.com/wdolek)
[](https://github.com/SeanKilleen)
[](https://github.com/twenzel)
[](https://github.com/Giorgi)
[](https://github.com/mckhendry)
[](https://github.com/aritchie)
[](https://github.com/MikeCodesDotNET)
[](https://github.com/unoplatform)
[](https://github.com/dansiegel)
[](https://github.com/rbnswartz)
[](https://github.com/jeremysimmons)
[](https://github.com/jfoshee)
[](https://github.com/Mrxx99)
[](https://github.com/eajhnsn1)
[](https://github.com/mackayn)
[](https://github.com/certifytheweb)
[](https://github.com/lavahot)
[](https://github.com/mrange)
[](https://github.com/davidpetric)
[](https://github.com/richlee)
[](https://github.com/dannevesdantas)
[](https://github.com/nietras)
[](https://github.com/garywoodfine)
[](https://github.com/kristinnstefansson)
[](https://github.com/DarrenAtConexus)
[](https://github.com/kazo0)
[](https://github.com/IxTechnologies)
[](https://github.com/newrelic)
[](https://github.com/Chris-Johnston)
[](https://github.com/davidjenni)
[](https://github.com/ehonda)
[](https://github.com/Jonathan-Hickey)
[](https://github.com/okyrylchuk)
[](https://github.com/juanfranblanco)
[](https://github.com/LosManos)
[](https://github.com/MariuszKogut)
[](https://github.com/akunzai)
[](https://github.com/meisenring)
[](https://github.com/Tdue21)
[](https://github.com/jakobt)
[](https://github.com/seanalexander)
[](https://github.com/tinohager)
[](https://github.com/pedrobsaila)
[](https://github.com/ploeh)
[](https://github.com/angelobelchior)
[](https://github.com/tonyqus)
[](https://github.com/danielrmay)
[ Ltd")](https://github.com/BlauhausTechnology)
[](https://github.com/rcollette)
[](https://github.com/bngv)
[](https://github.com/KenBonny)
[](https://github.com/SimonCropp)[](https://github.com/sponsors/devlooped)
[Learn more about GitHub Sponsors](https://github.com/sponsors)