<docs>(scope):Изменить README.md, создать файл со скриптом выгрузки информации о пользователях - asana_users.py, добавить директорию для хранения данных - data, изменить файл mapping.py в попытках нахождения оптимального решения
э
This commit is contained in:
		@@ -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)
 | 
			
		||||
		Reference in New Issue
	
	Block a user