Skip to main content

Discover the geography of open-source software. Explore the geographic locations of software developers associated with a GitHub repository or a Python (PyPI) package.

Project description

GitHub Actions Unit Tests codecov Codacy Badge pylint Score Python Versions Supported CodeQL security: bandit Code style: black

GitGeo

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.

map_image

Why use GitGeo?

  • Curiosity

  • Open source software community management

  • Research on open source software ecosystems

  • IT security compliance

Installation

pip install gitgeo

Or:

git clone https://github.com/IQTLabs/GitGeo

Usage

(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.

Run tests:

pytest

Want to contribute?

  • 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 jmeyers@iqt.org.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitgeo-1.0.2.tar.gz (490.9 kB view details)

Uploaded Source

Built Distribution

gitgeo-1.0.2-py2.py3-none-any.whl (506.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file gitgeo-1.0.2.tar.gz.

File metadata

  • Download URL: gitgeo-1.0.2.tar.gz
  • Upload date:
  • Size: 490.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for gitgeo-1.0.2.tar.gz
Algorithm Hash digest
SHA256 c8790d89a00a6fa4227cc85bf1835dd50a154199a8c21190a39edc7438376bcb
MD5 bd8974d77f3a867fe726626c329165bc
BLAKE2b-256 3ed3c193f4e3c8076c04b83392167721dd21442212f742aeda3f2a9b2f92722f

See more details on using hashes here.

File details

Details for the file gitgeo-1.0.2-py2.py3-none-any.whl.

File metadata

  • Download URL: gitgeo-1.0.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 506.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for gitgeo-1.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6115e4853f8127528b0130f2ac9962d001314e257de77684540188efc00881c5
MD5 ac42d3ba291301e3909864d798c19390
BLAKE2b-256 a3634b692464dcd015e6d2e77f489444ccc4cec25cf0add6520100525719124f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page