<docs>(scope):Изменить README.md, создать файл со скриптом выгрузки информации о пользователях - asana_users.py, добавить директорию для хранения данных - data, изменить файл mapping.py в попытках нахождения оптимального решения
э
This commit is contained in:
parent
b17a1e0c1b
commit
15c3021005
@ -13,6 +13,6 @@
|
||||
| "due_on" | "deadline" | "Срок завершения задачи- дэдлайн" |
|
||||
| "assignee" | "assignee" | "Логин или идентификатор исполнителя" |
|
||||
| "section" | "section" | "Категория" |
|
||||
| "membership" | "membership" | "Участники задачи" |
|
||||
| "memberships" | "memberships" | "Участники задачи" |
|
||||
| " - " | "parent" | "Связка с родительской задачей" |
|
||||
| "completed" | "status" | "Степень завершения" |
|
||||
|
37
asana_users.py
Normal file
37
asana_users.py
Normal file
@ -0,0 +1,37 @@
|
||||
import json
|
||||
import csv
|
||||
|
||||
|
||||
DATA_ASANA = './data/data_asana.json'
|
||||
|
||||
|
||||
def get_assignee_and_followers(asana_data):
|
||||
""" Получение из json-файла данных о пользователях """
|
||||
|
||||
with open('asana_data', 'r') as file:
|
||||
data = json.load(file)
|
||||
|
||||
assignees = set()
|
||||
followers = set()
|
||||
|
||||
for item in data:
|
||||
assignee = item.get('assignee')
|
||||
follower = item.get('followers')
|
||||
|
||||
if assignee:
|
||||
assignees.add(assignee)
|
||||
if follower:
|
||||
followers.add(follower)
|
||||
|
||||
with open('output.csv', 'w', newline='') as file:
|
||||
writer = csv.writer(file, delimiter=',')
|
||||
writer.writerow(["Assignee", "Follower"])
|
||||
|
||||
for assignee in assignees:
|
||||
writer.writerow([assignee, ""])
|
||||
|
||||
for follower in followers:
|
||||
writer.writerow(["", follower])
|
||||
|
||||
|
||||
get_assignee_and_followers(DATA_ASANA)
|
28638
data/data_asana.json
Normal file
28638
data/data_asana.json
Normal file
File diff suppressed because one or more lines are too long
31
mapping.py
31
mapping.py
@ -0,0 +1,31 @@
|
||||
import json
|
||||
|
||||
import requests
|
||||
from yandex_tracker_client import TrackerClient
|
||||
|
||||
client = TrackerClient(
|
||||
token=<'TOKEN'>,
|
||||
org_id=<'ORG_ID'>
|
||||
)
|
||||
|
||||
|
||||
TOKEN = 'y0_AgAEA7qkfTFqAArTqQAAAADyduv806rRKh8MS6GOg01ZdwPE-F4ZHuQ'
|
||||
ORG_ID = '35d164dcf81e48f2b6a532f4badddd33'
|
||||
|
||||
|
||||
# Чтение данных JSON из Asana
|
||||
asana_data = json.loads(requests.get('https://api.asana.com/tasks').text)
|
||||
|
||||
# Маппинг данных и создание или обновление задач в Яндекс Трекер
|
||||
for task in asana_data['tasks']:
|
||||
yandex_data = {
|
||||
'Название': task['name'],
|
||||
'Описание': task['description'],
|
||||
# Другие поля
|
||||
}
|
||||
|
||||
# Преобразование данных, если необходимо
|
||||
# yandex_data['Дата'] = task['due_date'].split('T')[0] # Преобразование даты
|
||||
|
||||
# Создание или обновление задачи в Яндекс Трекер
|
||||
requests.post('https://api.yandextracker.com/v2/issues', data=yandex_data)
|
Loading…
Reference in New Issue
Block a user