Skip to content
Update multiple repositories's `.github/FUNDING.yml` via GitHub API
TypeScript JavaScript
Branch: master
Clone or download
Latest commit 0da181a Nov 2, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update .github/FUNDING.yml Oct 27, 2019
bin feat(bin): add helper tool Oct 27, 2019
src fix bug: Use shouldUpdate flag on delete mode (#5) Oct 28, 2019
test fix(repo): support quote pattern Oct 27, 2019
.gitignore fix(cli): fix cli run Oct 26, 2019
.travis.yml initial commit Oct 26, 2019
LICENSE initial commit Oct 26, 2019 Update Nov 2, 2019
package.json 1.2.2 Oct 28, 2019
tsconfig.json initial commit Oct 26, 2019
yarn.lock initial commit Oct 26, 2019

github-funding-yml-updater Build Status

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]


  $ github-funding-yml-updater [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)

  # 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 repositories
  • delete: delete --user from repositories
  • overwrite: overwrite by --funding-file


--list-file specify text file that is following format:


Example of list.txt:


📝 Tips

curl + jq can generate your repositories.

export GH_USER="azu"
curl -s "${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

Notice ⚠️

Currently, only put .github/FUNDING.yml and does not show sponsor button.

You should turn on Sponsorships on your GitHub repository's settings:

Sponsorship check

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


npx -p github-funding-yml-updater github-funding-yml-settings --list-file list.txt

This tools output setting links from list.txt.



See Releases page.

Running tests

Install devDependencies and Run npm test:

npm test


Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D



MIT © azu

You can’t perform that action at this time.