Discover the geography of open-source software. Explore the geographic locations of software developers associated with a GitHub repository or a Python (PyPI) package.
See, for instance, the geography of the contributors to the Python package requests.
- Curiosity
- Open source software community management
- Research on open source software ecosystems
- IT security compliance
pip install gitgeo
Or:
git clone https://github.com/IQTLabs/GitGeo
(requires internet connection)
First, create one or more GitHub personal access tokens.
Second, run these commands in the command line to set environmental variables:
export GITHUB_USERNAME='[github_username]' export GITHUB_TOKEN='[github_token]'
Alternatively, to use multiple tokens, create a file called tokens.txt in the code's directory and enter a GitHub personal access token on each line.
Third, run these commands in the command line:
gitgeo --package [package_name]
gitgeo --repo [github_repo_url]
For example:
>>> gitgeo --package requests
----------------- PACKAGE: requests ----------------- CONTRIBUTOR, LOCATION * indicates PyPI maintainer --------------------- kennethreitz42 | Virginia, USA Lukasa * | London, England sigmavirus24 | Madison, WI nateprewitt * | None slingamn | None BraulioVM | Malaga & Granada, Spain dpursehouse | Kawasaki jgorset | Oslo, Norway ...
Or:
>>> gitgeo --repo www.github.com/psf/requests
----------------- GITHUB REPO: psf/requests ----------------- CONTRIBUTOR, LOCATION --------------------- kennethreitz42 | Virginia, USA | United States Lukasa | London, England | United Kingdom sigmavirus24 | Madison, WI | United States nateprewitt | None | None ...
There are other command line options too:
Add --summary
to get the results summarized by country. e.g.
>>> gitgeo --package requests --summary
----------------- PACKAGE: requests GITHUB REPO: psf/requests ----------------- COUNTRY | # OF CONTRIBUTORS --------------------------- United States 37 None 23 United Kingdom 4 Canada 4 Germany 4 Switzerland 4 Spain 2 Russia 2 ...
Add --map
when using the --repo
option to create an html map
saved in the results folder. See image above for static example. Real map
includes zooming and tooltip capability.
Add --ouput_csv
to output csv of results to results folder.
To create a csv of contributors from many repositories, enter repositories
on separate lines in the repos.txt file. Then use the --multirepo
flag.
Add multirepo_map
and then a filename to create a map of csv ouput. csv output must be located in the results folder.
Add --num
and specify a multiple of 100 from 100 (default) to 500 to
specify the number of contributors analyzed per repo.
pytest
- Open a PR. We are glad to accept pull requests. We use black and pylint and pydocstyle, though we are glad to help if you haven't used those tools before.
- Open an issue. Tell us your problem or a functionality you want.
- Want to help build a community related to GitGeo and similar open source software ecosystem exploration tools? Please send an email to [email protected].