From f69778980f850e2e72f736ef5122861dc83a6580 Mon Sep 17 00:00:00 2001
From: Zergey Loshkarev <zeryoshka@gmail.com>
Date: Wed, 30 Jun 2021 03:05:52 +0300
Subject: [PATCH] add output of users informations

---
 .gitignore |  3 +++
 config.py  | 26 ++++++++++++++++++++++++++
 main.py    | 13 +++++++++++++
 3 files changed, 42 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 config.py
 create mode 100644 main.py

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..25a1c05
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+venv/
+/*.ini
+/__pycache__/
\ No newline at end of file
diff --git a/config.py b/config.py
new file mode 100644
index 0000000..1a9d5fd
--- /dev/null
+++ b/config.py
@@ -0,0 +1,26 @@
+from configparser import ConfigParser
+
+import taiga
+
+_CONFIG_FILE = 'config.ini' # config file
+
+
+def _valid_taiga_config(config: ConfigParser) -> (bool):
+    if 'taiga' in config.sections():
+        taiga_dict = dict(config['taiga'])
+        if (
+            'host' in taiga_dict and \
+            'username' in taiga_dict and \
+            'password' in taiga_dict and \
+            'project_name' in taiga_dict
+        ):
+            return True
+    return False
+
+def read_config(config_filename: str) -> (ConfigParser):
+    config = ConfigParser()
+    if config.read(config_filename) == []:
+        raise Exception('Config file not found')
+    if not _valid_taiga_config(config):
+        raise Exception('Unvalid data-format in Taiga\'s config')
+    return config
\ No newline at end of file
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..1bfb17a
--- /dev/null
+++ b/main.py
@@ -0,0 +1,13 @@
+from config import read_config
+from taiga import TaigaAPI
+
+config = read_config('config.ini')
+api = TaigaAPI(host=config['taiga']['host'])
+api.auth(
+    username=config['taiga']['username'],
+    password=config['taiga']['password']
+)
+users = api.projects.get_by_slug(config['taiga']['project_name']).list_memberships()
+for user in users[:]:
+    # print(dir(user))
+    print(f"name: {user.full_name} role_name: {user.role_name} photo: {user.photo} ")
\ No newline at end of file
-- 
GitLab