github-monitor 1.9rc1__py3-none-any.whl → 2.3__py3-none-any.whl
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.
- {github_monitor-1.9rc1.dist-info → github_monitor-2.3.dist-info}/METADATA +81 -12
- github_monitor-2.3.dist-info/RECORD +7 -0
- {github_monitor-1.9rc1.dist-info → github_monitor-2.3.dist-info}/WHEEL +1 -1
- github_monitor.py +785 -109
- github_monitor-1.9rc1.dist-info/RECORD +0 -7
- {github_monitor-1.9rc1.dist-info → github_monitor-2.3.dist-info}/entry_points.txt +0 -0
- {github_monitor-1.9rc1.dist-info → github_monitor-2.3.dist-info}/licenses/LICENSE +0 -0
- {github_monitor-1.9rc1.dist-info → github_monitor-2.3.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: github_monitor
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.3
|
|
4
4
|
Summary: Tool implementing real-time tracking of Github users activities including profile and repositories changes
|
|
5
5
|
Author-email: Michal Szymanski <misiektoja-pypi@rm-rf.ninja>
|
|
6
6
|
License-Expression: GPL-3.0-or-later
|
|
@@ -26,7 +26,7 @@ Dynamic: license-file
|
|
|
26
26
|
|
|
27
27
|
# github_monitor
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
OSINT tool for real-time monitoring of GitHub users' activities, including profile and repository changes.
|
|
30
30
|
|
|
31
31
|
<a id="features"></a>
|
|
32
32
|
## Features
|
|
@@ -38,12 +38,16 @@ github_monitor is a tool for real-time monitoring of GitHub users' activities, i
|
|
|
38
38
|
- added/removed starred repositories
|
|
39
39
|
- added/removed public repositories
|
|
40
40
|
- changes in user name, email, location, company, bio and blog URL
|
|
41
|
-
-
|
|
41
|
+
- changes in profile visibility (public to private and vice versa)
|
|
42
|
+
- changes in user's daily contributions
|
|
43
|
+
- detection when a user blocks or unblocks you
|
|
44
|
+
- detection of account metadata changes (such as account update date)
|
|
42
45
|
- Email notifications for different events (new GitHub events, changed followings, followers, repositories, user name, email, location, company, bio, blog URL etc.)
|
|
43
46
|
- Saving all user activities with timestamps to the CSV file
|
|
44
47
|
- Clickable GitHub URLs printed in the console & included in email notifications (repos, PRs, commits, issues, releases etc.)
|
|
45
48
|
- Possibility to control the running copy of the script via signals
|
|
46
49
|
- Support for Public Web GitHub and GitHub Enterprise
|
|
50
|
+
- Functional, procedural Python (minimal OOP)
|
|
47
51
|
|
|
48
52
|
<p align="center">
|
|
49
53
|
<img src="https://raw.githubusercontent.com/misiektoja/github_monitor/refs/heads/main/assets/github_monitor.png" alt="github_monitor_screenshot" width="100%"/>
|
|
@@ -56,12 +60,14 @@ github_monitor is a tool for real-time monitoring of GitHub users' activities, i
|
|
|
56
60
|
2. [Installation](#installation)
|
|
57
61
|
* [Install from PyPI](#install-from-pypi)
|
|
58
62
|
* [Manual Installation](#manual-installation)
|
|
63
|
+
* [Upgrading](#upgrading)
|
|
59
64
|
3. [Quick Start](#quick-start)
|
|
60
65
|
4. [Configuration](#configuration)
|
|
61
66
|
* [Configuration File](#configuration-file)
|
|
62
67
|
* [GitHub Personal Access Token](#github-personal-access-token)
|
|
63
68
|
* [GitHub API URL](#github-api-url)
|
|
64
69
|
* [Events to Monitor](#events-to-monitor)
|
|
70
|
+
* [Repositories to Monitor](#repositories-to-monitor)
|
|
65
71
|
* [Time Zone](#time-zone)
|
|
66
72
|
* [SMTP Settings](#smtp-settings)
|
|
67
73
|
* [Storing Secrets](#storing-secrets)
|
|
@@ -84,8 +90,8 @@ github_monitor is a tool for real-time monitoring of GitHub users' activities, i
|
|
|
84
90
|
|
|
85
91
|
Tested on:
|
|
86
92
|
|
|
87
|
-
* **macOS**: Ventura, Sonoma, Sequoia
|
|
88
|
-
* **Linux**: Raspberry Pi OS (Bullseye, Bookworm), Ubuntu 24, Rocky Linux 8.x/9.x, Kali Linux 2024/2025
|
|
93
|
+
* **macOS**: Ventura, Sonoma, Sequoia, Tahoe
|
|
94
|
+
* **Linux**: Raspberry Pi OS (Bullseye, Bookworm, Trixie), Ubuntu 24/25, Rocky Linux 8.x/9.x, Kali Linux 2024/2025
|
|
89
95
|
* **Windows**: 10, 11
|
|
90
96
|
|
|
91
97
|
It should work on other versions of macOS, Linux, Unix and Windows as well.
|
|
@@ -117,6 +123,17 @@ Alternatively, from the downloaded *[requirements.txt](https://raw.githubusercon
|
|
|
117
123
|
pip install -r requirements.txt
|
|
118
124
|
```
|
|
119
125
|
|
|
126
|
+
<a id="upgrading"></a>
|
|
127
|
+
### Upgrading
|
|
128
|
+
|
|
129
|
+
To upgrade to the latest version when installed from PyPI:
|
|
130
|
+
|
|
131
|
+
```sh
|
|
132
|
+
pip install github_monitor -U
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
If you installed manually, download the newest *[github_monitor.py](https://raw.githubusercontent.com/misiektoja/github_monitor/refs/heads/main/github_monitor.py)* file to replace your existing installation.
|
|
136
|
+
|
|
120
137
|
<a id="quick-start"></a>
|
|
121
138
|
## Quick Start
|
|
122
139
|
|
|
@@ -167,18 +184,16 @@ Provide the `GITHUB_TOKEN` secret using one of the following methods:
|
|
|
167
184
|
- Pass it at runtime with `-t` / `--github-token`
|
|
168
185
|
- Set it as an [environment variable](#storing-secrets) (e.g. `export GITHUB_TOKEN=...`)
|
|
169
186
|
- Add it to [.env file](#storing-secrets) (`GITHUB_TOKEN=...`) for persistent use
|
|
187
|
+
- Fallback: hard-code it in the code or config file
|
|
170
188
|
|
|
171
|
-
|
|
172
|
-
- Hard-code it in the code or config file
|
|
173
|
-
|
|
174
|
-
If you store the `GITHUB_TOKEN` in a dotenv file you can update its value and send a `SIGHUP` signal to the process to reload the file with the new token without restarting the tool. More info in [Storing Secrets](#storing-secrets) and [Signal Controls (macOS/Linux/Unix)](#signal-controls-macoslinuxunix).
|
|
189
|
+
If you store the `GITHUB_TOKEN` in a dotenv file you can update its value and send a `SIGHUP` signal to reload the file with the new token without restarting the tool. More info in [Storing Secrets](#storing-secrets) and [Signal Controls (macOS/Linux/Unix)](#signal-controls-macoslinuxunix).
|
|
175
190
|
|
|
176
191
|
<a id="github-api-url"></a>
|
|
177
192
|
### GitHub API URL
|
|
178
193
|
|
|
179
194
|
By default the tool uses Public Web GitHub API URL: [https://api.github.com](https://api.github.com)
|
|
180
195
|
|
|
181
|
-
If you want to use GitHub Enterprise API URL then change `GITHUB_API_URL` (or use `-x` flag) to: https://{your_hostname}/api/v3
|
|
196
|
+
If you want to use GitHub Enterprise API URL then change `GITHUB_API_URL` (or use `-x` flag) to: `https://{your_hostname}/api/v3`
|
|
182
197
|
|
|
183
198
|
|
|
184
199
|
<a id="events-to-monitor"></a>
|
|
@@ -192,6 +207,21 @@ By default all events are monitored, but if you want to limit it, then remove th
|
|
|
192
207
|
EVENTS_TO_MONITOR=['PushEvent','PullRequestEvent', 'IssuesEvent', 'ForkEvent', 'ReleaseEvent']
|
|
193
208
|
```
|
|
194
209
|
|
|
210
|
+
<a id="repositories-to-monitor"></a>
|
|
211
|
+
### Repositories to Monitor
|
|
212
|
+
|
|
213
|
+
When tracking repository changes (`-j` flag), you can limit which repositories will be monitored for detailed changes (stargazers, watchers, forks, issues, PRs, etc.). You can do it by changing the `REPOS_TO_MONITOR` configuration option or via the `--repos` command-line argument (see [Monitoring Mode](#monitoring-mode)).
|
|
214
|
+
|
|
215
|
+
By default all repositories are monitored (`REPOS_TO_MONITOR = ['ALL']`), but if you want to monitor only specific repositories, you can use the `'user/repo_name'` format:
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
REPOS_TO_MONITOR = ['user1/repo1', 'user2/repo2', 'user1/repo3']
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
This allows you to have different repository lists for different users. When the tool runs for a specific user, it will only monitor repositories where the user matches the user in the list.
|
|
222
|
+
|
|
223
|
+
Note: When using a specific list (not `'ALL'`), newly created repositories will NOT be automatically monitored - only repositories explicitly listed will be monitored.
|
|
224
|
+
|
|
195
225
|
<a id="time-zone"></a>
|
|
196
226
|
### Time Zone
|
|
197
227
|
|
|
@@ -292,6 +322,28 @@ If you want to monitor changes to user's public repositories (e.g. new stargazer
|
|
|
292
322
|
github_monitor github_username -j
|
|
293
323
|
```
|
|
294
324
|
|
|
325
|
+
By default, only user-owned repos are tracked. To include forks and collaborations, set `GET_ALL_REPOS` to `True` or use the `-a` flag:
|
|
326
|
+
|
|
327
|
+
```sh
|
|
328
|
+
github_monitor github_username -j -a
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
If you want to monitor only specific repositories instead of all user-owned repositories, you can do it via the `--repos` command-line flag or the `REPOS_TO_MONITOR` configuration option (see [Repositories to Monitor](#repositories-to-monitor)). Use the `--repos` flag with a comma-separated list of repository names:
|
|
332
|
+
|
|
333
|
+
```sh
|
|
334
|
+
github_monitor github_username -j --repos "repo1,repo2,repo3"
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
This will only monitor detailed changes (stargazers, watchers, forks, issues, PRs, etc.) for the specified repositories. The `--repos` flag requires the `-j` flag to be enabled and overrides the `REPOS_TO_MONITOR` configuration option.
|
|
338
|
+
|
|
339
|
+
Note: When using a specific list, newly created repositories will NOT be automatically monitored - only repositories explicitly listed will be monitored.
|
|
340
|
+
|
|
341
|
+
If you want to track user's daily contributions then use the `-m` flag:
|
|
342
|
+
|
|
343
|
+
```sh
|
|
344
|
+
github_monitor github_username -m
|
|
345
|
+
```
|
|
346
|
+
|
|
295
347
|
If for any reason you do not want to monitor GitHub events for the user (e.g. new pushes, PRs, issues, forks, releases etc.), then use the `-k` flag:
|
|
296
348
|
|
|
297
349
|
```sh
|
|
@@ -319,6 +371,12 @@ github_monitor github_username -r
|
|
|
319
371
|
<img src="https://raw.githubusercontent.com/misiektoja/github_monitor/refs/heads/main/assets/github_list_of_repos.png" alt="github_list_of_repos" width="90%"/>
|
|
320
372
|
</p>
|
|
321
373
|
|
|
374
|
+
By default, only user-owned repos are listed. To include forks and collaborations, set `GET_ALL_REPOS` to `True` or use the `-a` flag:
|
|
375
|
+
|
|
376
|
+
```sh
|
|
377
|
+
github_monitor github_username -r -a
|
|
378
|
+
```
|
|
379
|
+
|
|
322
380
|
If you want to display a list of repositories starred by the user then use the `-g` flag:
|
|
323
381
|
|
|
324
382
|
```sh
|
|
@@ -367,7 +425,7 @@ To get email notifications when changes in user repositories are detected (e.g.
|
|
|
367
425
|
- or use the `-q` flag
|
|
368
426
|
|
|
369
427
|
```sh
|
|
370
|
-
github_monitor github_username -q
|
|
428
|
+
github_monitor github_username -j -q
|
|
371
429
|
```
|
|
372
430
|
|
|
373
431
|
To be informed whenever changes in the update date of user repositories are detected:
|
|
@@ -375,11 +433,21 @@ To be informed whenever changes in the update date of user repositories are dete
|
|
|
375
433
|
- or use the `-u` flag
|
|
376
434
|
|
|
377
435
|
```sh
|
|
378
|
-
github_monitor github_username -u
|
|
436
|
+
github_monitor github_username -j -u
|
|
379
437
|
```
|
|
380
438
|
|
|
381
439
|
The last two options (`-q` and `-u`) only work if tracking of repositories changes is enabled (`-j`).
|
|
382
440
|
|
|
441
|
+
To be informed about user's daily contributions:
|
|
442
|
+
- set `CONTRIB_NOTIFICATION` to `True`
|
|
443
|
+
- or use the `-y` flag
|
|
444
|
+
|
|
445
|
+
```sh
|
|
446
|
+
github_monitor github_username -m -y
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
The `-y` only works if tracking of daily contributions is enabled (`-m`).
|
|
450
|
+
|
|
383
451
|
To disable sending an email on errors (enabled by default):
|
|
384
452
|
- set `ERROR_NOTIFICATION` to `False`
|
|
385
453
|
- or use the `-e` flag
|
|
@@ -433,6 +501,7 @@ List of supported signals:
|
|
|
433
501
|
| USR2 | Toggle email notifications for new GitHub events (-s) |
|
|
434
502
|
| CONT | Toggle email notifications for user's repositories changes (except for update date) (-q) |
|
|
435
503
|
| PIPE | Toggle email notifications for user's repositories update date changes (-u) |
|
|
504
|
+
| URG | Toggle email notifications for user's daily contributions changes (-y) |
|
|
436
505
|
| TRAP | Increase the user check interval (by 1 min) |
|
|
437
506
|
| ABRT | Decrease the user check interval (by 1 min) |
|
|
438
507
|
| HUP | Reload secrets from .env file |
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
github_monitor.py,sha256=LLWOIE6qeSdO9tQWrPa9JfBhB3ahBJCjZ9G4lsleaLU,142687
|
|
2
|
+
github_monitor-2.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
3
|
+
github_monitor-2.3.dist-info/METADATA,sha256=kJvLcek22vNZmgxBtRq-9mRYsnHdqU-_MWZaG3u_rGs,19803
|
|
4
|
+
github_monitor-2.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
5
|
+
github_monitor-2.3.dist-info/entry_points.txt,sha256=hV03y00u1L16S5BwBSLQvFsZcL2WGRtjzlrmu9U9SN0,55
|
|
6
|
+
github_monitor-2.3.dist-info/top_level.txt,sha256=HDN2988ydvH9JZT32PushzqrcD05Q5qg960vgHGIaI8,15
|
|
7
|
+
github_monitor-2.3.dist-info/RECORD,,
|