Skip to content

Commit 850621b

Browse files
committed
issue 5 done
1 parent 5b710fb commit 850621b

File tree

3 files changed

+70
-2
lines changed

3 files changed

+70
-2
lines changed

README.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# GITLogger
1+
# GITLogger
22

33
## Установка зависимостей
44

@@ -22,6 +22,22 @@ python3 main.py -i [-t, --token] token (github токен вместо token) [-
2222
```commandline
2323
python3 main.py -p [-t, --token] token (github токен вместо token) [-l, --list] list (list - строка пути к txt файлу со списком репозиториев) [-o, --out] out (out - название csv файла, в который будут помещены все логи)
2424
```
25+
## Получение токена для работы с Google таблицей:
26+
Сначала нужно создать проект на сайте [Google Cloud](https://console.cloud.google.com/). Выбираем название проекта, жмем на кнопку "Create".
27+
28+
Затем в меню слева нажимаем на API'S & Services, выбираем Enabled APIs & services. Затем на новой страничке сверху находим "+" с надписью ENABLE APIS AND SERVICES. В поиске находим sheet, нажимаем на кнопку enable, такое же можно сделать и для drive. Теперь приложение может общаться с помощью API Google sheets.
29+
30+
В меню слева в API'S & Services переходим на вкладку Credentials, сверху должен быть восклицательный знак в оранжевом треугольнике, в этом сообщении нажимаем на CONFIGURE CONSENT SCREEN. Выбираем external и жмем Create. Заполняем поля со звездочками, жмем SAVE AND CONTINUE.
31+
32+
Заходим опять в Credentials. Нажимаем сверху на "+" CREATE CREDENTIALS и выбираем Service account. На первом этапе создаем имя,;жмем continue, на втором даем себе права owner, жмем DONE.
33+
34+
В таблице Service Accounts будет запись, нажимаем на нее. Сверху будет вкладка keys. Add key -> Create new key -> json -> create. Получаем нужный json файл.
35+
36+
## Экспорт таблицы в Google Sheets:
37+
38+
``` commandline
39+
python3 export_sheets.py --csv_path "Path to your csv file" --google_token "Path to your google token" --table_id "Your table id" --sheet_id "Name of sheet"
40+
```
2541

2642
## Файл со списком репозиториев:
2743

export_sheets.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import pygsheets
2+
import pandas as pd
3+
import argparse
4+
5+
6+
INT_MASS = [{
7+
"one": 1,
8+
"two": 2,
9+
"what?": 3
10+
}]
11+
def arg_parser():
12+
parser = argparse.ArgumentParser()
13+
parser.add_argument('--csv_path', type=str, required=True, help='Specify path to output csv file')
14+
parser.add_argument('--google_token', type=str, required=False, help='Specify path to google token file')
15+
parser.add_argument('--table_id', type=str, required=False, help='Specify Google sheet document id (can find in url)')
16+
parser.add_argument('--sheet_id', type=str, required=False, help='Specify title for a sheet in a document in which data will be printed')
17+
args = parser.parse_args()
18+
return args
19+
20+
def write_data_to_table(csv_path, google_token, table_id, sheet_id):
21+
if google_token and sheet_id and table_id :
22+
gc = pygsheets.authorize(service_file=google_token)
23+
sh = gc.open_by_key(table_id)
24+
25+
try:
26+
sh.worksheets('title', sheet_id)
27+
except:
28+
sh.add_worksheet(sheet_id)
29+
30+
wk_content = sh.worksheet_by_title(sheet_id)
31+
32+
if csv_path:
33+
df = pd.read_csv(csv_path, delimiter=',', encoding='cp1251')
34+
else:
35+
df = pd.DataFrame(INT_MASS)
36+
37+
# Очистка существующих данных
38+
wk_content.clear()
39+
40+
# Запись новых данных
41+
wk_content.set_dataframe(df, 'A1', copy_head=True)
42+
43+
44+
def main():
45+
args = arg_parser()
46+
write_data_to_table(args.csv_path, args.google_token, args.table_id, args.sheet_id)
47+
48+
49+
if __name__ == "__main__":
50+
main()

requirements.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
PyGithub~=1.55
1+
PyGithub~=1.55
2+
pygsheets==2.0.5
3+
pandas==1.4.3

0 commit comments

Comments
 (0)