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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github_monitor
3
- Version: 1.9rc1
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
- github_monitor is a tool for real-time monitoring of GitHub users' activities, including profile and repository changes.
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
- - detection of account changes
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
- Fallback:
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5