One of my (open source) hobby projects is a backup tool which makes offline backups of repositories from GitHub, Bitbucket etc.
It calls the hoster's API to get a list of repositories, and then it uses Git/Mercurial/whatever to clone/pull the repositorysrepositories to the local computer.
Problem: I can't just hard-code the passwords somewhere in the source code, because it's open source, and the code is public on GitHub.
The problem is that my application will be able to backup multiple source code hosters.
Right now, it supports GitHub only, but it will be easy to add support for more hostersholsters by adding a few classes which implement the right interfaces.
So when I implement support for more hosters later, the number of environment variables will grow.
To be able to execute all integration tests, a potential contributor would create his own users, organizations and test repositories at GitHub, Bitbucket, GitLab, .... and who knows how manymuch more, and add all of them to his environment-variables.bat version.
Is there a better solution how to do this inon a project where the code is public?
Maybe I don't need a solution which enables a contributor to actually run all integration tests.
For example, if someone would want to contribute to my project's GitHub support, he would only need to be able to run the GitHub integration tests.
So maybe I just need a sane way to be able to divide my integration tests into an infinite number of "groups"(?) and then to say "and now execute all tests which belong to group 'github'"'Github'".