gitlytics 0.1.3__tar.gz → 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gitlytics-0.1.3 → gitlytics-0.1.4}/PKG-INFO +30 -10
- {gitlytics-0.1.3 → gitlytics-0.1.4}/README.md +26 -7
- {gitlytics-0.1.3 → gitlytics-0.1.4}/pyproject.toml +4 -3
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics/__init__.py +1 -1
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics/api.py +2 -2
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics/process.py +2 -2
- gitlytics-0.1.4/src/gitlytics/static/assets/index-CRiPPhX0.js +44 -0
- gitlytics-0.1.4/src/gitlytics/static/assets/index-i_G_CLdY.css +2 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics/static/index.html +2 -2
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics.egg-info/PKG-INFO +30 -10
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics.egg-info/SOURCES.txt +2 -3
- {gitlytics-0.1.3 → gitlytics-0.1.4}/tests/test_api.py +4 -4
- gitlytics-0.1.3/src/gitlytics/static/assets/index-B5LHR_NK.js +0 -44
- gitlytics-0.1.3/src/gitlytics/static/assets/index-Cbu2tSV_.css +0 -2
- gitlytics-0.1.3/src/gitlytics/static/icons.svg +0 -24
- {gitlytics-0.1.3 → gitlytics-0.1.4}/LICENSE +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/setup.cfg +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics/__main__.py +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics/automation.py +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics/cli.py +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics/core.py +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics/static/favicon.svg +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics.egg-info/dependency_links.txt +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics.egg-info/entry_points.txt +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics.egg-info/requires.txt +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/src/gitlytics.egg-info/top_level.txt +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/tests/test_automation.py +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/tests/test_cli.py +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/tests/test_core.py +0 -0
- {gitlytics-0.1.3 → gitlytics-0.1.4}/tests/test_process.py +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitlytics
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Monitor and automate your GitHub repository traffic analytics.
|
|
5
|
-
Author: Ameya Chopade
|
|
5
|
+
Author-email: Ameya Chopade <ameyaccod171@gmail.com>
|
|
6
6
|
License: Apache-2.0
|
|
7
|
-
Project-URL: Homepage, https://
|
|
7
|
+
Project-URL: Homepage, https://gitlytics.dev
|
|
8
|
+
Project-URL: Documentation, https://docs.gitlytics.dev
|
|
8
9
|
Project-URL: Repository, https://github.com/ameyac11/gitlytics
|
|
9
10
|
Project-URL: Bug Tracker, https://github.com/ameyac11/gitlytics/issues
|
|
10
11
|
Keywords: github,traffic,analytics,automation,cli
|
|
@@ -41,17 +42,26 @@ Dynamic: license-file
|
|
|
41
42
|
[](https://react.dev/)
|
|
42
43
|
[](https://fastapi.tiangolo.com/)
|
|
43
44
|
[](https://github.com/ameyac11/gitlytics-github-traffic-automation)
|
|
45
|
+
[](https://gitlytics.dev)
|
|
46
|
+
[](https://dashboard.gitlytics.dev)
|
|
47
|
+
[](https://docs.gitlytics.dev)
|
|
44
48
|
|
|
45
49
|
**Beautiful GitHub traffic analytics for all your repositories — public and private.** <br/> Track views, clones, referrers, and popular paths indefinitely.
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
✨ **[Try the live dashboard at dashboard.gitlytics.dev](https://dashboard.gitlytics.dev)** ✨
|
|
52
|
+
📚 **[Read the documentation at docs.gitlytics.dev](https://docs.gitlytics.dev)**
|
|
48
53
|
|
|
49
|
-
|
|
54
|
+
<br/>
|
|
50
55
|
|
|
51
|
-
|
|
56
|
+
> **🐍 Native Python API**
|
|
57
|
+
>
|
|
58
|
+
> You can import Gitlytics natively into your own Python applications to build custom integrations, run custom cron workflows, or serve the dashboard programmatically on your own cloud servers.
|
|
59
|
+
>
|
|
60
|
+
> 📚 **[Read the Full API Documentation](https://docs.gitlytics.dev)**
|
|
52
61
|
|
|
53
|
-
|
|
54
|
-
|
|
62
|
+
Please consider giving this project a ⭐ if you find it helpful!
|
|
63
|
+
|
|
64
|
+
</div>
|
|
55
65
|
|
|
56
66
|
---
|
|
57
67
|
|
|
@@ -67,7 +77,8 @@ Please consider giving this project a ⭐ if you find it helpful!
|
|
|
67
77
|
|
|
68
78
|
## 📌 Table of Contents
|
|
69
79
|
|
|
70
|
-
- [
|
|
80
|
+
- [🔗 The Gitlytics Ecosystem](#-the-gitlytics-ecosystem)
|
|
81
|
+
- [🚨 The 14-Day Catch (And How We Fix It)](#-the-14-day-catch-and-how-we-fix-it)
|
|
71
82
|
- [🛠️ Installation](#installation)
|
|
72
83
|
- [🔑 Generating a GitHub Personal Access Token](#generating-a-github-personal-access-token)
|
|
73
84
|
- [⌨️ The 3 Core CLI Commands](#the-3-core-cli-commands)
|
|
@@ -84,6 +95,15 @@ Please consider giving this project a ⭐ if you find it helpful!
|
|
|
84
95
|
|
|
85
96
|
---
|
|
86
97
|
|
|
98
|
+
## 🔗 The Gitlytics Ecosystem
|
|
99
|
+
|
|
100
|
+
The full Gitlytics ecosystem spans across a few repositories. If you are looking for the live web dashboard or the automation cron job, check out the links below:
|
|
101
|
+
|
|
102
|
+
- 🌐 **[Gitlytics Web Ecosystem](https://github.com/ameyac11/gitlytics-deployement)**: The production homepage, React Dashboard, and VitePress documentation site.
|
|
103
|
+
- ⚙️ **[Gitlytics Automation](https://github.com/ameyac11/gitlytics-github-traffic-automation)**: The GitHub Action companion tool that automates fetching and saving to defeat GitHub's 14-day traffic limit.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
87
107
|
## 🚨 The 14-Day Catch (And How We Fix It)
|
|
88
108
|
|
|
89
109
|
> **⚠️ Did you know?** GitHub normally **only saves your repository traffic data for 14 days**. After two weeks, your valuable views and clones data is permanently deleted.
|
|
@@ -153,7 +173,7 @@ gitlytics dashboard
|
|
|
153
173
|
|
|
154
174
|
You can import Gitlytics natively into your own Python applications to build custom integrations, run custom cron workflows, or serve the dashboard programmatically on your own cloud servers.
|
|
155
175
|
|
|
156
|
-
📚 **[Read the Full API Documentation](docs
|
|
176
|
+
📚 **[Read the Full API Documentation](https://docs.gitlytics.dev)**
|
|
157
177
|
|
|
158
178
|
### 1️⃣ `gitlytics.fetch_traffic()`
|
|
159
179
|
Fetches the last 14 days of traffic data (views, clones, referrers, paths) for one or more repositories.
|
|
@@ -9,17 +9,26 @@
|
|
|
9
9
|
[](https://react.dev/)
|
|
10
10
|
[](https://fastapi.tiangolo.com/)
|
|
11
11
|
[](https://github.com/ameyac11/gitlytics-github-traffic-automation)
|
|
12
|
+
[](https://gitlytics.dev)
|
|
13
|
+
[](https://dashboard.gitlytics.dev)
|
|
14
|
+
[](https://docs.gitlytics.dev)
|
|
12
15
|
|
|
13
16
|
**Beautiful GitHub traffic analytics for all your repositories — public and private.** <br/> Track views, clones, referrers, and popular paths indefinitely.
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
✨ **[Try the live dashboard at dashboard.gitlytics.dev](https://dashboard.gitlytics.dev)** ✨
|
|
19
|
+
📚 **[Read the documentation at docs.gitlytics.dev](https://docs.gitlytics.dev)**
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
<br/>
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
> **🐍 Native Python API**
|
|
24
|
+
>
|
|
25
|
+
> You can import Gitlytics natively into your own Python applications to build custom integrations, run custom cron workflows, or serve the dashboard programmatically on your own cloud servers.
|
|
26
|
+
>
|
|
27
|
+
> 📚 **[Read the Full API Documentation](https://docs.gitlytics.dev)**
|
|
20
28
|
|
|
21
|
-
|
|
22
|
-
|
|
29
|
+
Please consider giving this project a ⭐ if you find it helpful!
|
|
30
|
+
|
|
31
|
+
</div>
|
|
23
32
|
|
|
24
33
|
---
|
|
25
34
|
|
|
@@ -35,7 +44,8 @@ Please consider giving this project a ⭐ if you find it helpful!
|
|
|
35
44
|
|
|
36
45
|
## 📌 Table of Contents
|
|
37
46
|
|
|
38
|
-
- [
|
|
47
|
+
- [🔗 The Gitlytics Ecosystem](#-the-gitlytics-ecosystem)
|
|
48
|
+
- [🚨 The 14-Day Catch (And How We Fix It)](#-the-14-day-catch-and-how-we-fix-it)
|
|
39
49
|
- [🛠️ Installation](#installation)
|
|
40
50
|
- [🔑 Generating a GitHub Personal Access Token](#generating-a-github-personal-access-token)
|
|
41
51
|
- [⌨️ The 3 Core CLI Commands](#the-3-core-cli-commands)
|
|
@@ -52,6 +62,15 @@ Please consider giving this project a ⭐ if you find it helpful!
|
|
|
52
62
|
|
|
53
63
|
---
|
|
54
64
|
|
|
65
|
+
## 🔗 The Gitlytics Ecosystem
|
|
66
|
+
|
|
67
|
+
The full Gitlytics ecosystem spans across a few repositories. If you are looking for the live web dashboard or the automation cron job, check out the links below:
|
|
68
|
+
|
|
69
|
+
- 🌐 **[Gitlytics Web Ecosystem](https://github.com/ameyac11/gitlytics-deployement)**: The production homepage, React Dashboard, and VitePress documentation site.
|
|
70
|
+
- ⚙️ **[Gitlytics Automation](https://github.com/ameyac11/gitlytics-github-traffic-automation)**: The GitHub Action companion tool that automates fetching and saving to defeat GitHub's 14-day traffic limit.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
55
74
|
## 🚨 The 14-Day Catch (And How We Fix It)
|
|
56
75
|
|
|
57
76
|
> **⚠️ Did you know?** GitHub normally **only saves your repository traffic data for 14 days**. After two weeks, your valuable views and clones data is permanently deleted.
|
|
@@ -121,7 +140,7 @@ gitlytics dashboard
|
|
|
121
140
|
|
|
122
141
|
You can import Gitlytics natively into your own Python applications to build custom integrations, run custom cron workflows, or serve the dashboard programmatically on your own cloud servers.
|
|
123
142
|
|
|
124
|
-
📚 **[Read the Full API Documentation](docs
|
|
143
|
+
📚 **[Read the Full API Documentation](https://docs.gitlytics.dev)**
|
|
125
144
|
|
|
126
145
|
### 1️⃣ `gitlytics.fetch_traffic()`
|
|
127
146
|
Fetches the last 14 days of traffic data (views, clones, referrers, paths) for one or more repositories.
|
|
@@ -4,13 +4,13 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "gitlytics"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.4"
|
|
8
8
|
description = "Monitor and automate your GitHub repository traffic analytics."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
11
11
|
license = { text = "Apache-2.0" }
|
|
12
12
|
authors = [
|
|
13
|
-
{ name = "Ameya Chopade" }
|
|
13
|
+
{ name = "Ameya Chopade", email = "ameyaccod171@gmail.com" }
|
|
14
14
|
]
|
|
15
15
|
# Fix #20: Add version lower-bounds to prevent silent breakage on old environments.
|
|
16
16
|
# These match the constraints already documented in requirements.txt.
|
|
@@ -34,7 +34,8 @@ classifiers = [
|
|
|
34
34
|
]
|
|
35
35
|
|
|
36
36
|
[project.urls]
|
|
37
|
-
Homepage = "https://
|
|
37
|
+
Homepage = "https://gitlytics.dev"
|
|
38
|
+
Documentation = "https://docs.gitlytics.dev"
|
|
38
39
|
Repository = "https://github.com/ameyac11/gitlytics"
|
|
39
40
|
"Bug Tracker" = "https://github.com/ameyac11/gitlytics/issues"
|
|
40
41
|
|
|
@@ -8,7 +8,7 @@ import json
|
|
|
8
8
|
|
|
9
9
|
# Single source of truth for the package version.
|
|
10
10
|
# Mirrors the version in pyproject.toml — keep them in sync.
|
|
11
|
-
__version__ = "0.1.
|
|
11
|
+
__version__ = "0.1.4"
|
|
12
12
|
|
|
13
13
|
# Import the internal building blocks — users never call these directly
|
|
14
14
|
from .core import fetch_traffic_data, print_repo_table
|
|
@@ -144,7 +144,7 @@ def serve_index():
|
|
|
144
144
|
return FileResponse(index_file)
|
|
145
145
|
return JSONResponse(
|
|
146
146
|
status_code=503,
|
|
147
|
-
content={"error": "
|
|
147
|
+
content={"error": "Dashboard not found. Run 'npm run build' in the dashboard directory."}
|
|
148
148
|
)
|
|
149
149
|
|
|
150
150
|
|
|
@@ -167,7 +167,7 @@ def serve_spa_fallback(full_path: str):
|
|
|
167
167
|
|
|
168
168
|
return JSONResponse(
|
|
169
169
|
status_code=503,
|
|
170
|
-
content={"error": "
|
|
170
|
+
content={"error": "Dashboard not found. Run 'npm run build' in the dashboard directory."}
|
|
171
171
|
)
|
|
172
172
|
|
|
173
173
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""
|
|
2
2
|
gitlytics/process.py
|
|
3
|
-
Handles processing Tidy DataFrames into final JSON formats for the
|
|
3
|
+
Handles processing Tidy DataFrames into final JSON formats for the dashboard.
|
|
4
4
|
"""
|
|
5
5
|
import ast
|
|
6
6
|
import json
|
|
@@ -152,7 +152,7 @@ def _parse_raw(val) -> list:
|
|
|
152
152
|
def build_react_payload(df: pd.DataFrame) -> list:
|
|
153
153
|
"""
|
|
154
154
|
Transforms the Tidy Data DataFrame into the exact array of RepoTraffic objects
|
|
155
|
-
expected by the React
|
|
155
|
+
expected by the React dashboard. Prevents duplicate rows and populates all chart data.
|
|
156
156
|
"""
|
|
157
157
|
if df.empty:
|
|
158
158
|
return []
|