import requests import json OP_URL = "https://projetos.rede5.com.br" OP_API_KEY = "9c704b1c48939f97463fd9d811a9de050317b85224b93694d6e037f0799d37c2" OP_AUTH = ('apikey', OP_API_KEY) # Mapeamento Projeto OP -> Repo GitHub REPO_MAPPING = { "Q1Agenda": "q1agenda-backend", "Q1 SITE": "q1site", "GoHorseJobs": "gohorsejobs", "PHOTUM": "photum", "SaveinMed": "saveinmed", "Q1FIT": "q1fit", "Zeus": "zeus-suplementos" } def update_wiki(): print("--- Atualizando Wiki do OpenProject ---") # 1. Listar projetos para pegar os IDs projs_resp = requests.get(f"{OP_URL}/api/v3/projects", auth=OP_AUTH).json() projects = projs_resp['_embedded']['elements'] for p in projects: name = p['name'] if name in REPO_MAPPING: repo = REPO_MAPPING[name] p_id = p['id'] print(f"Atualizando Wiki de {name} (ID: {p_id})...") wiki_content = f"""# Documentação do Projeto Este projeto foi migrado do Monday.com e está vinculado ao repositório GitHub. ## Repositório * **Nome:** `{repo}` * **Branch Padrão (Local):** `dev` * **Localização Local:** `C:\dev\{repo}` ## Acesso Para clonar manualmente: ```bash git clone https://github.com/rede5/{repo}.git git checkout dev ``` """ # No OpenProject API v3, para atualizar a wiki: # Primeiro verificamos se a wiki existe e pegamos o link wiki_link = p['_links'].get('wikiPage') if wiki_link: # Se existe link, tentamos atualizar wiki_url = f"{OP_URL}{wiki_link['href']}" # O payload para Wiki requer formato específico payload = { "title": "Wiki", "text": {"format": "markdown", "raw": wiki_content} } # Para atualizar via API v3, geralmente é via PATCH ou POST no endpoint de wiki # Vamos tentar buscar a página de wiki primeiro wiki_page = requests.get(wiki_url, auth=OP_AUTH).json() if '_links' in wiki_page and 'update' in wiki_page['_links']: update_url = f"{OP_URL}{wiki_page['_links']['update']['href']}" requests.patch(update_url, auth=OP_AUTH, json=payload) print(f" OK: Wiki de {name} atualizada.") else: # Se não tem link de wiki_page, o projeto pode não ter a wiki ativa. # Tentamos ativar ou criar via endpoint de wiki pages do projeto print(f" Aviso: Wiki não ativa para {name}. Verifique as configurações do projeto.") if __name__ == "__main__": update_wiki()