This project provides a Python-based integration for managing and reporting tasks from Plane.so projects. The bot interacts with the Plane.so API to fetch project details, task statuses, and generates task reports tailored for Telegram.
- Retrieve all projects in a workspace.
- Fetch tasks for specific projects categorized by statuses (Todo, In Progress, In Review).
- Generate Telegram-ready reports with clickable links to tasks and user profiles.
- Python 3.13
- requests library for API calls
- Plane.so API key
- makeplane/plane#5061 - that's why members.json should be used for mapping
- in Create Issue API - not working creating assignees
- Create
.env
file in root folder, specify variables:- API_TOKEN – token generated in your plane.so profile
- BASE_URL - url for your plane.so server
- WORKSPACE_SLUG - workspace sub-path in url
- BOT_TOKEN - telegram bot api token
- MODE - set
debug
for logging - BOT_NAME - telegram bot name
- Create file mappers (unfortunately plane.so API can't provide all necessary info in appropriate way) in the next
structure:
- members.json
[ { "project_id": "af0d57f1-107e-455a4-91a1-7c15022c16e1", "chat_id": "-3753448353" }, { } ]
- projects.json
[ { "member_id": "55c56d6c-13f6-4dd1-be67-a39992eff736", "member__display_name": "nickname_from_plane", "telegram_id": "@nickname_from_telegram" }, { } ]
- members.json
- Create
config.yaml
file in root folder, with the next structure:report_states_list: - Todo - In Progress - In Review - [ state to report name ] cron_expression: "*/2 * * * *" cron_start_date: "2024-02-02 10:00" projects_file_path : "projects.json" members_file_path : "members.json"
- Run
pip install -r requirements.txt
- Use PyCharm Run Configuration or just
python main.py