This action has the simple task of replacing the placeholders of Environment Variables with their values.
For example, you have a README.md file in a template repository, and you want to have a link that points to your new repository just after you 'fork' it.
So in your template repository, you may have a line like this:
And this will be translated (as in this repository) as:
In this link is the default list of environment variables that Github has set.
In addition, you may set your own variables in the workflow YAML file like this:
env:
MY_CUSTOM_VARIABLE: 'some value'
That's all it does.
Lastly, just three comments:
- I've created two new variables called
REPOSITORY_ACCOUNT
andREPOSITORY_ACCOUNT
that is derived from theGITHUB_REPOSITORY
variable, to make it easier to use in some use-cases. - The changes are by default
pushed
to the repository. If this action is part of a chain of steps, and you want to push the changes later, by yourself, you can disable this behavior with the parametercommit: 'false'
. - The input and output file can be either a
template -> definitive
ordefinitive -> definitive
; this just means that the input and output may be the same file. The later attempts to replace, by this action, will 'fail' safely without an Error code.
I know there are other actions that accomplish the same objective, but:
- This is self-contained (only needs to be preceded by actions/checkout)
- It is plain JavaScript, few lines of code, easy to inspect and see that this action only does what it does.
Create a YAML file at .github/workflows/myworkflow.yml
GITHUB_TOKEN must be set, otherwise this action cannot perform changes in your repository.
steps:
- uses: actions/checkout@v4
- uses: franzbischoff/replace_envs@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MY_CUSTOM_VARIABLE: 'some value'
with:
from_file: 'README.md'
to_file: 'README.md'
commit: 'true'
Please note that this project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
The scripts and documentation in this project are released under the MIT License
Contributions are welcome! See Contributor's Guide
👋 Be nice. See the code of conduct