Skip to content

Repository files navigation

Github Star Gazers Analytics (GSA)

Get to know a GitHub repository's star-gazers, by using some simple analytics and visualizations of star-gazers data queried from GitHub.

The image below is a geographical snapshot of FastAI's star gazers at the beginning of November, 2018. It was created by executing the following:

$ python stars_analytics.py query-github --user=<YOUR USER> --password=<YOUR PASSWORD> --repo=https://github.com/fastai/fastai --proxy=https://<YOUR PROXY>:<PORT>

And here's the same data in a different view:

$ python3 stars_analytics.py stars-geo-tbl --cache-file=fastai_star_gazers.csv --format=plot

Choose any github repository, run a query against GitHub to download the star-gazer records, and perform analytics. Currently features:

  • Classify star-gazers by country of origin, and draw this using size-bubbles on a world map.
  • Create monthly starring activity statistics
  • Create day-of-week statistics

Note: You will need a GitHub user and password to query GitHub. There is an API to query without using GiutHub credentials, but it limits the number of queries to a very small number, that is not practical for this application.

Installation

These instructions will help get GSA up and running on your local machine.

  1. Clone Star Gazers Analytics
  2. Create a Python virtual environment
  3. Install dependencies

Notes:

  • This repository has only been tested on Ubuntu 16.04 LTS, and with Python 3.5.

Clone Star Gazers Analytics

Clone the Star Gazers Analytics code repository from github:

$ git clone https://github.com/netaz/github_stars_analytics.git

Create a Python virtual environment

I recommend using a Python virtual environment, but that of course, is up to you. Before creating the virtual environment, make sure you are located in directory github_stars_analytics. After creating the environment, you should see a directory called github_stars_analytics/env.

Using virtualenv

If you don't have virtualenv installed, you can find the installation instructions here.

To create the environment, execute:

$ python3 -m virtualenv env

This creates a subdirectory named env where the python virtual environment is stored, and configures the current shell to use it as the default python environment.

Using venv

If you prefer to use venv, then begin by installing it:

$ sudo apt-get install python3-venv

Then create the environment:

$ python3 -m venv env

As with virtualenv, this creates a directory called github_stars_analytics/env.

Activate the environment

The environment activation and deactivation commands for venv and virtualenv are the same.
!NOTE: Make sure to activate the environment, before proceeding with the installation of the dependency packages:

$ source env/bin/activate

Install dependencies

Finally, install GSA's dependency packages using pip3:

$ pip3 install -r requirements.txt

Getting Started

  1. Download some metadata We need some metadata about each of the countries in the world: its capital, size of population and all of the major cities. We also download for each country its longitude and latitude so we can draw country-specific data on a map. We will use this data to match star-gazer records to countries.

We only need to download this data once:

$ ./download_metadata.sh
  1. Query a specific Github repository and create a file (default name = star_gazers.csv) with the cached information. This process is a bit slow so we cache the results in a file, until we decide to get new data.
python stars_analytics.py query-github --user=<YOUR-GITHUB-USERNAME> --password=<YOUR-GITHUB-PASSWORD> --repo=<YOUR-GITHUB-REPO-URL>

The format of the URL is the same as when you access it via the web. For example: https://github.com/NervanaSystems/distiller

  1. Use the cached github star-gazers data file, to create analytics and visualizations. For example, to create the diagram above:
python stars_analytics.py stars-geo-map

To create a chart of the daily stars for the entire period:

python3 stars_analytics.py daily --cache-file=distiller_star_gazers.csv --format=plot

About

Simple analytics and visualizations of a GitHub repository's star-gazer

Topics

Resources

Stars

24 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - netaz/github_stars_analytics: Simple analytics and visualizations of a GitHub repository's star-gazer · GitHub
Skip to content

Repository files navigation

Github Star Gazers Analytics (GSA)

Get to know a GitHub repository's star-gazers, by using some simple analytics and visualizations of star-gazers data queried from GitHub.

The image below is a geographical snapshot of FastAI's star gazers at the beginning of November, 2018. It was created by executing the following:

$ python stars_analytics.py query-github --user=<YOUR USER> --password=<YOUR PASSWORD> --repo=https://github.com/fastai/fastai --proxy=https://<YOUR PROXY>:<PORT>

And here's the same data in a different view:

$ python3 stars_analytics.py stars-geo-tbl --cache-file=fastai_star_gazers.csv --format=plot

Choose any github repository, run a query against GitHub to download the star-gazer records, and perform analytics. Currently features:

  • Classify star-gazers by country of origin, and draw this using size-bubbles on a world map.
  • Create monthly starring activity statistics
  • Create day-of-week statistics

Note: You will need a GitHub user and password to query GitHub. There is an API to query without using GiutHub credentials, but it limits the number of queries to a very small number, that is not practical for this application.

Installation

These instructions will help get GSA up and running on your local machine.

  1. Clone Star Gazers Analytics
  2. Create a Python virtual environment
  3. Install dependencies

Notes:

  • This repository has only been tested on Ubuntu 16.04 LTS, and with Python 3.5.

Clone Star Gazers Analytics

Clone the Star Gazers Analytics code repository from github:

$ git clone https://github.com/netaz/github_stars_analytics.git

Create a Python virtual environment

I recommend using a Python virtual environment, but that of course, is up to you. Before creating the virtual environment, make sure you are located in directory github_stars_analytics. After creating the environment, you should see a directory called github_stars_analytics/env.

Using virtualenv

If you don't have virtualenv installed, you can find the installation instructions here.

To create the environment, execute:

$ python3 -m virtualenv env

This creates a subdirectory named env where the python virtual environment is stored, and configures the current shell to use it as the default python environment.

Using venv

If you prefer to use venv, then begin by installing it:

$ sudo apt-get install python3-venv

Then create the environment:

$ python3 -m venv env

As with virtualenv, this creates a directory called github_stars_analytics/env.

Activate the environment

The environment activation and deactivation commands for venv and virtualenv are the same.
!NOTE: Make sure to activate the environment, before proceeding with the installation of the dependency packages:

$ source env/bin/activate

Install dependencies

Finally, install GSA's dependency packages using pip3:

$ pip3 install -r requirements.txt

Getting Started

  1. Download some metadata We need some metadata about each of the countries in the world: its capital, size of population and all of the major cities. We also download for each country its longitude and latitude so we can draw country-specific data on a map. We will use this data to match star-gazer records to countries.

We only need to download this data once:

$ ./download_metadata.sh
  1. Query a specific Github repository and create a file (default name = star_gazers.csv) with the cached information. This process is a bit slow so we cache the results in a file, until we decide to get new data.
python stars_analytics.py query-github --user=<YOUR-GITHUB-USERNAME> --password=<YOUR-GITHUB-PASSWORD> --repo=<YOUR-GITHUB-REPO-URL>

The format of the URL is the same as when you access it via the web. For example: https://github.com/NervanaSystems/distiller

  1. Use the cached github star-gazers data file, to create analytics and visualizations. For example, to create the diagram above:
python stars_analytics.py stars-geo-map

To create a chart of the daily stars for the entire period:

python3 stars_analytics.py daily --cache-file=distiller_star_gazers.csv --format=plot

About

Simple analytics and visualizations of a GitHub repository's star-gazer

Topics

Resources

Stars

24 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - netaz/github_stars_analytics: Simple analytics and visualizations of a GitHub repository's star-gazer · GitHub
Skip to content

Repository files navigation

Github Star Gazers Analytics (GSA)

Get to know a GitHub repository's star-gazers, by using some simple analytics and visualizations of star-gazers data queried from GitHub.

The image below is a geographical snapshot of FastAI's star gazers at the beginning of November, 2018. It was created by executing the following:

$ python stars_analytics.py query-github --user=<YOUR USER> --password=<YOUR PASSWORD> --repo=https://github.com/fastai/fastai --proxy=https://<YOUR PROXY>:<PORT>

And here's the same data in a different view:

$ python3 stars_analytics.py stars-geo-tbl --cache-file=fastai_star_gazers.csv --format=plot

Choose any github repository, run a query against GitHub to download the star-gazer records, and perform analytics. Currently features:

  • Classify star-gazers by country of origin, and draw this using size-bubbles on a world map.
  • Create monthly starring activity statistics
  • Create day-of-week statistics

Note: You will need a GitHub user and password to query GitHub. There is an API to query without using GiutHub credentials, but it limits the number of queries to a very small number, that is not practical for this application.

Installation

These instructions will help get GSA up and running on your local machine.

  1. Clone Star Gazers Analytics
  2. Create a Python virtual environment
  3. Install dependencies

Notes:

  • This repository has only been tested on Ubuntu 16.04 LTS, and with Python 3.5.

Clone Star Gazers Analytics

Clone the Star Gazers Analytics code repository from github:

$ git clone https://github.com/netaz/github_stars_analytics.git

Create a Python virtual environment

I recommend using a Python virtual environment, but that of course, is up to you. Before creating the virtual environment, make sure you are located in directory github_stars_analytics. After creating the environment, you should see a directory called github_stars_analytics/env.

Using virtualenv

If you don't have virtualenv installed, you can find the installation instructions here.

To create the environment, execute:

$ python3 -m virtualenv env

This creates a subdirectory named env where the python virtual environment is stored, and configures the current shell to use it as the default python environment.

Using venv

If you prefer to use venv, then begin by installing it:

$ sudo apt-get install python3-venv

Then create the environment:

$ python3 -m venv env

As with virtualenv, this creates a directory called github_stars_analytics/env.

Activate the environment

The environment activation and deactivation commands for venv and virtualenv are the same.
!NOTE: Make sure to activate the environment, before proceeding with the installation of the dependency packages:

$ source env/bin/activate

Install dependencies

Finally, install GSA's dependency packages using pip3:

$ pip3 install -r requirements.txt

Getting Started

  1. Download some metadata We need some metadata about each of the countries in the world: its capital, size of population and all of the major cities. We also download for each country its longitude and latitude so we can draw country-specific data on a map. We will use this data to match star-gazer records to countries.

We only need to download this data once:

$ ./download_metadata.sh
  1. Query a specific Github repository and create a file (default name = star_gazers.csv) with the cached information. This process is a bit slow so we cache the results in a file, until we decide to get new data.
python stars_analytics.py query-github --user=<YOUR-GITHUB-USERNAME> --password=<YOUR-GITHUB-PASSWORD> --repo=<YOUR-GITHUB-REPO-URL>

The format of the URL is the same as when you access it via the web. For example: https://github.com/NervanaSystems/distiller

  1. Use the cached github star-gazers data file, to create analytics and visualizations. For example, to create the diagram above:
python stars_analytics.py stars-geo-map

To create a chart of the daily stars for the entire period:

python3 stars_analytics.py daily --cache-file=distiller_star_gazers.csv --format=plot

About

Simple analytics and visualizations of a GitHub repository's star-gazer

Topics

Resources

Stars

24 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - netaz/github_stars_analytics: Simple analytics and visualizations of a GitHub repository's star-gazer · GitHub
Skip to content

Repository files navigation

Github Star Gazers Analytics (GSA)

Get to know a GitHub repository's star-gazers, by using some simple analytics and visualizations of star-gazers data queried from GitHub.

The image below is a geographical snapshot of FastAI's star gazers at the beginning of November, 2018. It was created by executing the following:

$ python stars_analytics.py query-github --user=<YOUR USER> --password=<YOUR PASSWORD> --repo=https://github.com/fastai/fastai --proxy=https://<YOUR PROXY>:<PORT>

And here's the same data in a different view:

$ python3 stars_analytics.py stars-geo-tbl --cache-file=fastai_star_gazers.csv --format=plot

Choose any github repository, run a query against GitHub to download the star-gazer records, and perform analytics. Currently features:

  • Classify star-gazers by country of origin, and draw this using size-bubbles on a world map.
  • Create monthly starring activity statistics
  • Create day-of-week statistics

Note: You will need a GitHub user and password to query GitHub. There is an API to query without using GiutHub credentials, but it limits the number of queries to a very small number, that is not practical for this application.

Installation

These instructions will help get GSA up and running on your local machine.

  1. Clone Star Gazers Analytics
  2. Create a Python virtual environment
  3. Install dependencies

Notes:

  • This repository has only been tested on Ubuntu 16.04 LTS, and with Python 3.5.

Clone Star Gazers Analytics

Clone the Star Gazers Analytics code repository from github:

$ git clone https://github.com/netaz/github_stars_analytics.git

Create a Python virtual environment

I recommend using a Python virtual environment, but that of course, is up to you. Before creating the virtual environment, make sure you are located in directory github_stars_analytics. After creating the environment, you should see a directory called github_stars_analytics/env.

Using virtualenv

If you don't have virtualenv installed, you can find the installation instructions here.

To create the environment, execute:

$ python3 -m virtualenv env

This creates a subdirectory named env where the python virtual environment is stored, and configures the current shell to use it as the default python environment.

Using venv

If you prefer to use venv, then begin by installing it:

$ sudo apt-get install python3-venv

Then create the environment:

$ python3 -m venv env

As with virtualenv, this creates a directory called github_stars_analytics/env.

Activate the environment

The environment activation and deactivation commands for venv and virtualenv are the same.
!NOTE: Make sure to activate the environment, before proceeding with the installation of the dependency packages:

$ source env/bin/activate

Install dependencies

Finally, install GSA's dependency packages using pip3:

$ pip3 install -r requirements.txt

Getting Started

  1. Download some metadata We need some metadata about each of the countries in the world: its capital, size of population and all of the major cities. We also download for each country its longitude and latitude so we can draw country-specific data on a map. We will use this data to match star-gazer records to countries.

We only need to download this data once:

$ ./download_metadata.sh
  1. Query a specific Github repository and create a file (default name = star_gazers.csv) with the cached information. This process is a bit slow so we cache the results in a file, until we decide to get new data.
python stars_analytics.py query-github --user=<YOUR-GITHUB-USERNAME> --password=<YOUR-GITHUB-PASSWORD> --repo=<YOUR-GITHUB-REPO-URL>

The format of the URL is the same as when you access it via the web. For example: https://github.com/NervanaSystems/distiller

  1. Use the cached github star-gazers data file, to create analytics and visualizations. For example, to create the diagram above:
python stars_analytics.py stars-geo-map

To create a chart of the daily stars for the entire period:

python3 stars_analytics.py daily --cache-file=distiller_star_gazers.csv --format=plot

About

Simple analytics and visualizations of a GitHub repository's star-gazer

Topics

Resources

Stars

24 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - netaz/github_stars_analytics: Simple analytics and visualizations of a GitHub repository's star-gazer · GitHub
Skip to content

Repository files navigation

Github Star Gazers Analytics (GSA)

Get to know a GitHub repository's star-gazers, by using some simple analytics and visualizations of star-gazers data queried from GitHub.

The image below is a geographical snapshot of FastAI's star gazers at the beginning of November, 2018. It was created by executing the following:

$ python stars_analytics.py query-github --user=<YOUR USER> --password=<YOUR PASSWORD> --repo=https://github.com/fastai/fastai --proxy=https://<YOUR PROXY>:<PORT>

And here's the same data in a different view:

$ python3 stars_analytics.py stars-geo-tbl --cache-file=fastai_star_gazers.csv --format=plot

Choose any github repository, run a query against GitHub to download the star-gazer records, and perform analytics. Currently features:

  • Classify star-gazers by country of origin, and draw this using size-bubbles on a world map.
  • Create monthly starring activity statistics
  • Create day-of-week statistics

Note: You will need a GitHub user and password to query GitHub. There is an API to query without using GiutHub credentials, but it limits the number of queries to a very small number, that is not practical for this application.

Installation

These instructions will help get GSA up and running on your local machine.

  1. Clone Star Gazers Analytics
  2. Create a Python virtual environment
  3. Install dependencies

Notes:

  • This repository has only been tested on Ubuntu 16.04 LTS, and with Python 3.5.

Clone Star Gazers Analytics

Clone the Star Gazers Analytics code repository from github:

$ git clone https://github.com/netaz/github_stars_analytics.git

Create a Python virtual environment

I recommend using a Python virtual environment, but that of course, is up to you. Before creating the virtual environment, make sure you are located in directory github_stars_analytics. After creating the environment, you should see a directory called github_stars_analytics/env.

Using virtualenv

If you don't have virtualenv installed, you can find the installation instructions here.

To create the environment, execute:

$ python3 -m virtualenv env

This creates a subdirectory named env where the python virtual environment is stored, and configures the current shell to use it as the default python environment.

Using venv

If you prefer to use venv, then begin by installing it:

$ sudo apt-get install python3-venv

Then create the environment:

$ python3 -m venv env

As with virtualenv, this creates a directory called github_stars_analytics/env.

Activate the environment

The environment activation and deactivation commands for venv and virtualenv are the same.
!NOTE: Make sure to activate the environment, before proceeding with the installation of the dependency packages:

$ source env/bin/activate

Install dependencies

Finally, install GSA's dependency packages using pip3:

$ pip3 install -r requirements.txt

Getting Started

  1. Download some metadata We need some metadata about each of the countries in the world: its capital, size of population and all of the major cities. We also download for each country its longitude and latitude so we can draw country-specific data on a map. We will use this data to match star-gazer records to countries.

We only need to download this data once:

$ ./download_metadata.sh
  1. Query a specific Github repository and create a file (default name = star_gazers.csv) with the cached information. This process is a bit slow so we cache the results in a file, until we decide to get new data.
python stars_analytics.py query-github --user=<YOUR-GITHUB-USERNAME> --password=<YOUR-GITHUB-PASSWORD> --repo=<YOUR-GITHUB-REPO-URL>

The format of the URL is the same as when you access it via the web. For example: https://github.com/NervanaSystems/distiller

  1. Use the cached github star-gazers data file, to create analytics and visualizations. For example, to create the diagram above:
python stars_analytics.py stars-geo-map

To create a chart of the daily stars for the entire period:

python3 stars_analytics.py daily --cache-file=distiller_star_gazers.csv --format=plot

About

Simple analytics and visualizations of a GitHub repository's star-gazer

Topics

Resources

Stars

24 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - netaz/github_stars_analytics: Simple analytics and visualizations of a GitHub repository's star-gazer · GitHub
Skip to content

Repository files navigation

Github Star Gazers Analytics (GSA)

Get to know a GitHub repository's star-gazers, by using some simple analytics and visualizations of star-gazers data queried from GitHub.

The image below is a geographical snapshot of FastAI's star gazers at the beginning of November, 2018. It was created by executing the following:

$ python stars_analytics.py query-github --user=<YOUR USER> --password=<YOUR PASSWORD> --repo=https://github.com/fastai/fastai --proxy=https://<YOUR PROXY>:<PORT>

And here's the same data in a different view:

$ python3 stars_analytics.py stars-geo-tbl --cache-file=fastai_star_gazers.csv --format=plot

Choose any github repository, run a query against GitHub to download the star-gazer records, and perform analytics. Currently features:

  • Classify star-gazers by country of origin, and draw this using size-bubbles on a world map.
  • Create monthly starring activity statistics
  • Create day-of-week statistics

Note: You will need a GitHub user and password to query GitHub. There is an API to query without using GiutHub credentials, but it limits the number of queries to a very small number, that is not practical for this application.

Installation

These instructions will help get GSA up and running on your local machine.

  1. Clone Star Gazers Analytics
  2. Create a Python virtual environment
  3. Install dependencies

Notes:

  • This repository has only been tested on Ubuntu 16.04 LTS, and with Python 3.5.

Clone Star Gazers Analytics

Clone the Star Gazers Analytics code repository from github:

$ git clone https://github.com/netaz/github_stars_analytics.git

Create a Python virtual environment

I recommend using a Python virtual environment, but that of course, is up to you. Before creating the virtual environment, make sure you are located in directory github_stars_analytics. After creating the environment, you should see a directory called github_stars_analytics/env.

Using virtualenv

If you don't have virtualenv installed, you can find the installation instructions here.

To create the environment, execute:

$ python3 -m virtualenv env

This creates a subdirectory named env where the python virtual environment is stored, and configures the current shell to use it as the default python environment.

Using venv

If you prefer to use venv, then begin by installing it:

$ sudo apt-get install python3-venv

Then create the environment:

$ python3 -m venv env

As with virtualenv, this creates a directory called github_stars_analytics/env.

Activate the environment

The environment activation and deactivation commands for venv and virtualenv are the same.
!NOTE: Make sure to activate the environment, before proceeding with the installation of the dependency packages:

$ source env/bin/activate

Install dependencies

Finally, install GSA's dependency packages using pip3:

$ pip3 install -r requirements.txt

Getting Started

  1. Download some metadata We need some metadata about each of the countries in the world: its capital, size of population and all of the major cities. We also download for each country its longitude and latitude so we can draw country-specific data on a map. We will use this data to match star-gazer records to countries.

We only need to download this data once:

$ ./download_metadata.sh
  1. Query a specific Github repository and create a file (default name = star_gazers.csv) with the cached information. This process is a bit slow so we cache the results in a file, until we decide to get new data.
python stars_analytics.py query-github --user=<YOUR-GITHUB-USERNAME> --password=<YOUR-GITHUB-PASSWORD> --repo=<YOUR-GITHUB-REPO-URL>

The format of the URL is the same as when you access it via the web. For example: https://github.com/NervanaSystems/distiller

  1. Use the cached github star-gazers data file, to create analytics and visualizations. For example, to create the diagram above:
python stars_analytics.py stars-geo-map

To create a chart of the daily stars for the entire period:

python3 stars_analytics.py daily --cache-file=distiller_star_gazers.csv --format=plot

About

Simple analytics and visualizations of a GitHub repository's star-gazer

Topics

Resources

Stars

24 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - netaz/github_stars_analytics: Simple analytics and visualizations of a GitHub repository's star-gazer · GitHub
Skip to content

Repository files navigation

Github Star Gazers Analytics (GSA)

Get to know a GitHub repository's star-gazers, by using some simple analytics and visualizations of star-gazers data queried from GitHub.

The image below is a geographical snapshot of FastAI's star gazers at the beginning of November, 2018. It was created by executing the following:

$ python stars_analytics.py query-github --user=<YOUR USER> --password=<YOUR PASSWORD> --repo=https://github.com/fastai/fastai --proxy=https://<YOUR PROXY>:<PORT>

And here's the same data in a different view:

$ python3 stars_analytics.py stars-geo-tbl --cache-file=fastai_star_gazers.csv --format=plot

Choose any github repository, run a query against GitHub to download the star-gazer records, and perform analytics. Currently features:

  • Classify star-gazers by country of origin, and draw this using size-bubbles on a world map.
  • Create monthly starring activity statistics
  • Create day-of-week statistics

Note: You will need a GitHub user and password to query GitHub. There is an API to query without using GiutHub credentials, but it limits the number of queries to a very small number, that is not practical for this application.

Installation

These instructions will help get GSA up and running on your local machine.

  1. Clone Star Gazers Analytics
  2. Create a Python virtual environment
  3. Install dependencies

Notes:

  • This repository has only been tested on Ubuntu 16.04 LTS, and with Python 3.5.

Clone Star Gazers Analytics

Clone the Star Gazers Analytics code repository from github:

$ git clone https://github.com/netaz/github_stars_analytics.git

Create a Python virtual environment

I recommend using a Python virtual environment, but that of course, is up to you. Before creating the virtual environment, make sure you are located in directory github_stars_analytics. After creating the environment, you should see a directory called github_stars_analytics/env.

Using virtualenv

If you don't have virtualenv installed, you can find the installation instructions here.

To create the environment, execute:

$ python3 -m virtualenv env

This creates a subdirectory named env where the python virtual environment is stored, and configures the current shell to use it as the default python environment.

Using venv

If you prefer to use venv, then begin by installing it:

$ sudo apt-get install python3-venv

Then create the environment:

$ python3 -m venv env

As with virtualenv, this creates a directory called github_stars_analytics/env.

Activate the environment

The environment activation and deactivation commands for venv and virtualenv are the same.
!NOTE: Make sure to activate the environment, before proceeding with the installation of the dependency packages:

$ source env/bin/activate

Install dependencies

Finally, install GSA's dependency packages using pip3:

$ pip3 install -r requirements.txt

Getting Started

  1. Download some metadata We need some metadata about each of the countries in the world: its capital, size of population and all of the major cities. We also download for each country its longitude and latitude so we can draw country-specific data on a map. We will use this data to match star-gazer records to countries.

We only need to download this data once:

$ ./download_metadata.sh
  1. Query a specific Github repository and create a file (default name = star_gazers.csv) with the cached information. This process is a bit slow so we cache the results in a file, until we decide to get new data.
python stars_analytics.py query-github --user=<YOUR-GITHUB-USERNAME> --password=<YOUR-GITHUB-PASSWORD> --repo=<YOUR-GITHUB-REPO-URL>

The format of the URL is the same as when you access it via the web. For example: https://github.com/NervanaSystems/distiller

  1. Use the cached github star-gazers data file, to create analytics and visualizations. For example, to create the diagram above:
python stars_analytics.py stars-geo-map

To create a chart of the daily stars for the entire period:

python3 stars_analytics.py daily --cache-file=distiller_star_gazers.csv --format=plot

About

Simple analytics and visualizations of a GitHub repository's star-gazer

Topics

Resources

Stars

24 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - netaz/github_stars_analytics: Simple analytics and visualizations of a GitHub repository's star-gazer · GitHub
Skip to content

Repository files navigation

Github Star Gazers Analytics (GSA)

Get to know a GitHub repository's star-gazers, by using some simple analytics and visualizations of star-gazers data queried from GitHub.

The image below is a geographical snapshot of FastAI's star gazers at the beginning of November, 2018. It was created by executing the following:

$ python stars_analytics.py query-github --user=<YOUR USER> --password=<YOUR PASSWORD> --repo=https://github.com/fastai/fastai --proxy=https://<YOUR PROXY>:<PORT>

And here's the same data in a different view:

$ python3 stars_analytics.py stars-geo-tbl --cache-file=fastai_star_gazers.csv --format=plot

Choose any github repository, run a query against GitHub to download the star-gazer records, and perform analytics. Currently features:

  • Classify star-gazers by country of origin, and draw this using size-bubbles on a world map.
  • Create monthly starring activity statistics
  • Create day-of-week statistics

Note: You will need a GitHub user and password to query GitHub. There is an API to query without using GiutHub credentials, but it limits the number of queries to a very small number, that is not practical for this application.

Installation

These instructions will help get GSA up and running on your local machine.

  1. Clone Star Gazers Analytics
  2. Create a Python virtual environment
  3. Install dependencies

Notes:

  • This repository has only been tested on Ubuntu 16.04 LTS, and with Python 3.5.

Clone Star Gazers Analytics

Clone the Star Gazers Analytics code repository from github:

$ git clone https://github.com/netaz/github_stars_analytics.git

Create a Python virtual environment

I recommend using a Python virtual environment, but that of course, is up to you. Before creating the virtual environment, make sure you are located in directory github_stars_analytics. After creating the environment, you should see a directory called github_stars_analytics/env.

Using virtualenv

If you don't have virtualenv installed, you can find the installation instructions here.

To create the environment, execute:

$ python3 -m virtualenv env

This creates a subdirectory named env where the python virtual environment is stored, and configures the current shell to use it as the default python environment.

Using venv

If you prefer to use venv, then begin by installing it:

$ sudo apt-get install python3-venv

Then create the environment:

$ python3 -m venv env

As with virtualenv, this creates a directory called github_stars_analytics/env.

Activate the environment

The environment activation and deactivation commands for venv and virtualenv are the same.
!NOTE: Make sure to activate the environment, before proceeding with the installation of the dependency packages:

$ source env/bin/activate

Install dependencies

Finally, install GSA's dependency packages using pip3:

$ pip3 install -r requirements.txt

Getting Started

  1. Download some metadata We need some metadata about each of the countries in the world: its capital, size of population and all of the major cities. We also download for each country its longitude and latitude so we can draw country-specific data on a map. We will use this data to match star-gazer records to countries.

We only need to download this data once:

$ ./download_metadata.sh
  1. Query a specific Github repository and create a file (default name = star_gazers.csv) with the cached information. This process is a bit slow so we cache the results in a file, until we decide to get new data.
python stars_analytics.py query-github --user=<YOUR-GITHUB-USERNAME> --password=<YOUR-GITHUB-PASSWORD> --repo=<YOUR-GITHUB-REPO-URL>

The format of the URL is the same as when you access it via the web. For example: https://github.com/NervanaSystems/distiller

  1. Use the cached github star-gazers data file, to create analytics and visualizations. For example, to create the diagram above:
python stars_analytics.py stars-geo-map

To create a chart of the daily stars for the entire period:

python3 stars_analytics.py daily --cache-file=distiller_star_gazers.csv --format=plot

About

Simple analytics and visualizations of a GitHub repository's star-gazer

Topics

Resources

Stars

24 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages