GitHub Action that syncs package.json with the repository metadata.
There are values that are meant to be the same. Why not automatically keep them synchronized?
Example workflow that runs whenever commits are pushed on branch master
.
This will overwrite the package.json
file if it differs from the GitHub repository info.
This is the recommended syncing direction, because of the more simple setup (no need to manually add a secret to the repository settings) and the adventages of git commits (better monitoring, revertability).
.github/workflows/example.yml
name: Sync package.json with repository info
on:
push:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: actions/checkout
uses: actions/checkout@v2.0.0
- name: actions/setup-node
uses: actions/setup-node@v1.4.1
with:
node-version: "13.9.0"
- name: action-sync-node-meta
uses: brendt-napp/action-sync-node-meta@master
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
Example workflow that runs whenever commits are pushed on branch master
.
This will change the GitHub repository info whenever it differs from the content of package.json
.
The secret customGithubToken
is forwarded to the input githubToken
. It has to be a personal access token with scope "repo" added in your repository's secrets settings.
.github/workflows/example2.yml
name: Sync repository info with package.json
on:
push:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: actions/checkout
uses: actions/checkout@v2.0.0
- name: actions/setup-node
uses: actions/setup-node@v1.4.1
with:
node-version: "13.9.0"
- name: action-sync-node-meta
uses: brendt-napp/action-sync-node-meta@master
with:
direction: overwrite-github
githubToken: ${{ secrets.customGithubToken }}
Default | Info | ||
---|---|---|---|
githubToken | * | Repository token for allowing the action to make commits or change the repository info. If direction is "overwrite-file", this input be set from forwarding secrets.GITHUB_TOKEN in the workflow file. If direction is "overwrite-github", a custom personal access token with "repo" scope has to be created. | |
approve | true | If true and direction is "overwrite-file", pull requests created by this action are automatically approved and merged. | |
commitMessagePrefix | autofix: | Prefix string used in messages for automatically generated commits | |
direction | overwrite-file | The syncing direction, can be "overwrite-file" or "overwrite-github". If "overwrite-file", the file package.json will be edited in a pull request according to the GitHub repository info. If "overwrite-github", the GitHub repository info will be changed according to the content of the package.json file. | |
path | package.json | The path of the package.json file | |
removeBranch | true | If true and direction is "overwrite-file" and approve is also true, automatically merged pull requests will delete their branch afterwards. | |
syncDescription | true | If true, package.json[description] will be synced with GitHub repository description. | |
syncHomepage | true | If true, package.json[homepage] will be synced with GitHub repository homepage. | |
syncKeywords | true | If true, package.json[keywords] will be synced with GitHub repository topics. |
Setting up:
git clone https://github.com/brendt-napp/action-sync-node-meta.git
cd action-sync-node-meta
npm install
MIT License
Copyright © 2020, Jaid <jaid.jsx@gmail.com> (https://github.com/jaid)