Update multiple repositories's .github/FUNDING.yml
at once via GitHub API.
It will help you to setup GitHub Sponsors for your repository.
- Setup
.github/FUNDING.yml
for GitHub Sponsors - No need to clone git repository in local
- This tools using GitHub API
Install with npm:
npm install github-funding-yml-updater -g
# or
npx -p github-funding-yml-updater github-funding-yml-updater [opions]
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 --write
You should get GitHub Token(has repo
permission) from next url.
github-funding-yml-updater
dry-run by default.
If you want to update actual repository, you should run it --write
options.
add
: add--user
to repositoriesdelete
: delete--user
from repositoriesoverwrite
: overwrite by--funding-file
--list-file
specify text file that is following format:
owner/repo
owner/repo@branch
https://github.com/owner/repo
Example of list.txt
:
azu/example1@develop
azu/example2
example/example
📝 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.txt
Add gh-user
to each repositories:
github-funding-yml-updater --mode add --user gh-user --list-file list.txt --token $GITHUB_TOKEN --write
Remove gh-user
from each repositories:
github-funding-yml-updater --mode delete --user gh-user --list-file list.txt --token $GITHUB_TOKEN --write
Overwrite .github/FUNDING.yml
with a file.yml
:
github-funding-yml-updater --mode overwrite --funding-file file.yml --list-file list.txt --token $GITHUB_TOKEN --write
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.txt
Or
npx -p github-funding-yml-updater github-funding-yml-settings --list-file list.txt
This 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-feature
See Releases page.
Install devDependencies and Run npm test
:
npm test
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
MIT © azu