Skip to content

Commit 451faa7

Browse files
committed
timezone added
1 parent a934185 commit 451faa7

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed

git_logger.py

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
from github import Github, Repository, GithubException
21
import csv
2+
import pytz
3+
4+
from github import Github, Repository, GithubException
35

46
EMPTY_FIELD = 'Empty field'
57

8+
69
def login(token):
710
client = Github(login_or_token=token)
811
try:
@@ -31,7 +34,8 @@ def get_next_repo(client: Github, repositories):
3134

3235

3336
def log_commit_to_csv(info, csv_name):
34-
fieldnames = ['repository name', 'commit id', 'author name', 'author login', 'author email', 'date and time', 'changed files']
37+
fieldnames = ['repository name', 'commit id', 'author name', 'author login', 'author email', 'date and time',
38+
'changed files']
3539
with open(csv_name, 'a', newline='') as file:
3640
writer = csv.DictWriter(file, fieldnames=fieldnames)
3741
writer.writerow(info)
@@ -43,15 +47,17 @@ def log_commit_to_stdout(info):
4347

4448
def log_repository_commits(repository: Repository, csv_name, start, finish):
4549
for commit in repository.get_commits():
46-
if commit.commit.author.date < start or commit.commit.author.date > finish:
50+
if commit.commit.author.date.astimezone(
51+
pytz.timezone('Europe/Moscow')) < start or commit.commit.author.date.astimezone(
52+
pytz.timezone('Europe/Moscow')) > finish:
4753
continue
4854
if commit.commit is not None:
4955
info = {'repository name': repository.full_name,
5056
'commit id': commit.commit.sha,
5157
'author name': commit.commit.author.name,
5258
'author login': EMPTY_FIELD,
5359
'author email': EMPTY_FIELD,
54-
'date and time': commit.commit.author.date,
60+
'date and time': commit.commit.author.date.astimezone(pytz.timezone('Europe/Moscow')),
5561
'changed files': '; '.join([file.filename for file in commit.files])}
5662

5763
if commit.author is not None:
@@ -79,12 +85,13 @@ def log_issue_to_stdout(info):
7985

8086
def log_repository_issues(repository: Repository, csv_name, start, finish):
8187
for issue in repository.get_issues(state='all'):
82-
if issue.created_at < start or issue.created_at > finish:
88+
if issue.created_at.astimezone(pytz.timezone('Europe/Moscow')) < start or issue.created_at.astimezone(
89+
pytz.timezone('Europe/Moscow')) > finish:
8390
continue
8491
info_tmp = {
8592
'repository name': repository.full_name, 'number': issue.number, 'title': issue.title,
8693
'state': issue.state, 'task': issue.body,
87-
'created at': issue.created_at,
94+
'created at': issue.created_at.astimezone(pytz.timezone('Europe/Moscow')),
8895
'creator name': EMPTY_FIELD,
8996
'creator login': EMPTY_FIELD,
9097
'creator email': EMPTY_FIELD if issue.user.email is None else issue.user.email,
@@ -124,10 +131,11 @@ def log_repository_issues(repository: Repository, csv_name, start, finish):
124131

125132

126133
def log_pr_to_csv(info, csv_name):
127-
fieldnames = ['repository name', 'title', 'state', 'commit into', 'commit from', 'created at', 'creator name',
134+
fieldnames = ['repository name', 'title', 'id', 'state', 'commit into', 'commit from', 'created at', 'creator name',
128135
'creator login', 'creator email',
129136
'changed files', 'comment body', 'comment created at', 'comment author name', 'comment author login',
130-
'comment author email', 'merger name', 'merger login', 'merger email', 'source branch', 'target branch']
137+
'comment author email', 'merger name', 'merger login', 'merger email', 'source branch',
138+
'target branch']
131139
with open(csv_name, 'a', newline='') as file:
132140
writer = csv.DictWriter(file, fieldnames=fieldnames)
133141
writer.writerow(info)
@@ -139,15 +147,17 @@ def log_pr_to_stdout(info):
139147

140148
def log_repositories_pr(repository: Repository, csv_name, start, finish):
141149
for pull in repository.get_pulls(state='all'):
142-
if pull.created_at < start or pull.created_at > finish:
150+
if pull.created_at.astimezone(pytz.timezone('Europe/Moscow')) < start or pull.created_at.astimezone(
151+
pytz.timezone('Europe/Moscow')) > finish:
143152
continue
144153
info_tmp = {
145154
'repository name': repository.full_name,
146155
'title': pull.title,
156+
'id': pull.number,
147157
'state': pull.state,
148158
'commit into': pull.base.label,
149159
'commit from': pull.head.label,
150-
'created at': pull.created_at,
160+
'created at': pull.created_at.astimezone(pytz.timezone('Europe/Moscow')),
151161
'creator name': EMPTY_FIELD if pull.user.name is None else pull.user.name,
152162
'creator login': pull.user.login,
153163
'creator email': pull.user.email,
@@ -191,6 +201,7 @@ def log_pull_requests(client: Github, repositories, csv_name, start, finish):
191201
(
192202
'repository name',
193203
'title',
204+
'id',
194205
'state',
195206
'commit into',
196207
'commit from',

main.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import argparse
22
from datetime import datetime
3+
import pytz
34

45
import git_logger
56

@@ -22,7 +23,7 @@ def parse_time(datetime_str):
2223
start = [int(i) for i in start]
2324
start_datetime = datetime(year=start[0], month=start[1], day=start[2], hour=start[3], minute=start[4],
2425
second=start[5])
25-
return start_datetime
26+
return start_datetime.astimezone(pytz.timezone('Europe/Moscow'))
2627

2728

2829
def main():

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
PyGithub~=1.55
1+
PyGithub~=1.55
2+
pytz~=2023.3

0 commit comments

Comments
 (0)