73 lines
2.6 KiB
Python
73 lines
2.6 KiB
Python
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()
|