github-funding-yml-updater v1.2.2
github-funding-yml-updater 
Update multiple repositories's .github/FUNDING.yml at once via GitHub API.
It will help you to setup GitHub Sponsors for your repository.
Install
Install with npm:
npm install github-funding-yml-updater -g
# or
npx -p github-funding-yml-updater github-funding-yml-updater [opions]Usage
Usage
$ github-funding-yml-updater [options]
Options
--mode "add", "delete", or "overwrite"
--mode "add" and --mode "delete" require --user argument
--mode "overwrite" require --funding-file argument
--user GitHub account name
--list-file input list file path. list file includes line-separated repository list for updating
--funding-file input FUNDING.yml file path. It is for --mode overwrite
--write update GitHub repository if set it. Default: dry-run(no update)
--token GitHub Token(or env GITHUB_TOKEN=xxx)
Examples
# Dry-run by default
$ github-funding-yml-updater --mode add --user azu --list-file list.txt --token XXXX
# Add user to Repository
$ github-funding-yml-updater --mode add --user azu --list-file list.txt --token XXXX --write
# Delete user from Repository
$ github-funding-yml-updater --mode delete --user azu --list-file list.txt --token XXXX --write
# Overwrite using existing FUNDING.yml
$ github-funding-yml-updater --mode overwrite --funding-file ./FUNDING.yml --list-file list.txt --token XXXX --writeYou should get GitHub Token(has repo permission) from next url.
--write
github-funding-yml-updater dry-run by default.
If you want to update actual repository, you should run it --write options.
--mode
add: add--userto repositoriesdelete: delete--userfrom repositoriesoverwrite: overwrite by--funding-file
--file-list
--file-list specify text file that is following format:
owner/repo
owner/repo@branch
https://github.com/owner/repoExample of list.txt:
azu/example1@develop
azu/example2
example/example:memo: Tips
curl + jq can generate your repositories.
export GH_USER="azu"
curl -s "https://api.github.com/search/repositories?q=user:${GH_USER}&&per_page=100" | jq ".items[].full_name" > list.txtExamples
Add gh-user to each repositories:
github-funding-yml-updater --mode add --user gh-user --list-file list.txt --token $GITHUB_TOKEN --writeRemove gh-user from each repositories:
github-funding-yml-updater --mode delete --user gh-user --list-file list.txt --token $GITHUB_TOKEN --writeOverwrite .github/FUNDING.yml with a file.yml:
github-funding-yml-updater --mode overwrite --funding-file file.yml --list-file list.txt --token $GITHUB_TOKEN --writeNotice :warning:
Currently, only put .github/FUNDING.yml and does not show sponsor button.
You should turn on Sponsorships on your GitHub repository's settings:

This tools includes helper tool that show settings url from list file.
npm install github-funding-yml-updater -g
github-funding-yml-settings --list-file list.txtOr
npx -p github-funding-yml-updater github-funding-yml-settings --list-file list.txtThis tools output setting links from list.txt.
https://github.com/azu/example1/settings#repository-funding-links-feature
https://github.com/azu/example2/settings#repository-funding-links-featureReferences
Changelog
See Releases page.
Running tests
Install devDependencies and Run npm test:
npm testContributing
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request :D
Author
License
MIT © azu