<docs>(scope):Изменить README.md, создать файл со скриптом выгрузки информации о пользователях - asana_users.py, добавить директорию для хранения данных - data, изменить файл mapping.py в попытках нахождения оптимального решения

э
This commit is contained in:
Angelina Tingaeva 2023-11-21 15:54:48 +05:00
parent b17a1e0c1b
commit 15c3021005
4 changed files with 28707 additions and 1 deletions

View File

@ -13,6 +13,6 @@
| "due_on" | "deadline" | "Срок завершения задачи- дэдлайн" | | "due_on" | "deadline" | "Срок завершения задачи- дэдлайн" |
| "assignee" | "assignee" | "Логин или идентификатор исполнителя" | | "assignee" | "assignee" | "Логин или идентификатор исполнителя" |
| "section" | "section" | "Категория" | | "section" | "section" | "Категория" |
| "membership" | "membership" | "Участники задачи" | | "memberships" | "memberships" | "Участники задачи" |
| " - " | "parent" | "Связка с родительской задачей" | | " - " | "parent" | "Связка с родительской задачей" |
| "completed" | "status" | "Степень завершения" | | "completed" | "status" | "Степень завершения" |

37
asana_users.py Normal file
View 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

File diff suppressed because one or more lines are too long

View File

@ -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)