Консольная утилита для удобного управления рабочими логами с интеграцией Jira и GitLab
┌LIT>────────┐
│ TSK 8h ─○─ │
└─────────\\─┘
LIT — это консольная утилита для удобного управления ворклогами с интеграцией Jira и GitLab, вдохновлённая поведением Git.
Она помогает быстро и удобно вносить записи рабочего времени, предварительно сохраняя их в локальном файле, а затем отправлять в Jira. Помимо основных возможностей логирования, LIT поддерживает автодополнение команд, для быстрой и комфортной работы.
CLI вариант:
lit add TASK-1752 4 "Убрал из меню ссылку О компании"
lit pushИнтерактивный вариант:
lit init # Настраиваем доступы к Jira и GitLab
lit pull # Загружаем справочники для подсказок
lit # Заходим в интерактивный режим 🐧 Linux Download
curl -LO https://github.com/LIT-Tools/lit/releases/latest/download/lit-linux.tar.gz \
&& tar -xzf lit-linux.tar.gz \
&& chmod +x lit \
&& sudo mkdir -p /usr/local/bin \
&& sudo mv lit /usr/local/bin/ \
&& rm lit-linux.tar.gz🍏 Mac Download
curl -LO https://github.com/LIT-Tools/lit/releases/latest/download/lit-macos.tar.gz \
&& tar -xzf lit-macos.tar.gz \
&& chmod +x lit \
&& (xattr -d com.apple.quarantine lit 2>/dev/null || true) \
&& sudo mkdir -p /usr/local/bin \
&& sudo mv lit /usr/local/bin/ \
&& rm lit-macos.tar.gz🪟 Windows Download
irm https://github.com/LIT-Tools/lit/releases/latest/download/lit-windows.zip -OutFile lit-windows.zip
Expand-Archive -Path lit-windows.zip -DestinationPath . -Force
$installPath = "$env:USERPROFILE\lit"
New-Item -Path $installPath -ItemType Directory -Force
Move-Item -Path .\lit.exe -Destination $installPath -Force
$env:PATH += ";$installPath"
[Environment]::SetEnvironmentVariable("PATH", $env:PATH, "User")
rm lit-windows.ziplit add <код_задачи> <время> "<сообщение>" [опции]
# Поддерживаемые форматы времени:
# 1h (1 час) | 30m (30 минут) | 1d (8 часов) | 1h 15m | 4 (4 часа)
# Примеры:
lit add TASK-1752 4 "Убрал из меню ссылку О компании"
lit add TASK-15 "1h 30m" "Исправление крэша" -d 25.12.2023 -t 10:00
lit add BUG-404 2d "Рефакторинг модуля"Параметры:
код_задачи- код задачи в Jira (формат: XXX-123)время- продолжительность работы (форматы: 1h, 30m, 2d, '1h 30m')сообщение- описание выполненной работы
Опции:
-d --date- дата (по умолчанию: текущая)-t --time- время начала (по умолчанию: текущее)
lit
# lit>lit statusВыводит список всех подготовленных записей с группировкой по датам.
lit pushОтправляет все подготовленные записи в Jira после подтверждения.
lit editОткрывает файл .litstore в системном редакторе для ручного редактирования.
lit pull [--jira] [--gitlab]-j --jira- загрузить задачи из Jira-g --gitlab- загрузить коммиты из GitLab
-v --version - версия приложения
-h --help - описание команд
lit init - вызывает интерактивное создание конфигурационного файла
Пример ~/.lit/.litconfig:
[user]
login = user
email = user@domain.com
[jira]
login = user
email = user@domain.com
pass = password
url = https://jira.com
days = 30
[gitlab]
login = user
email = user@domain.com
url = https://gitlab.com
token = ваш_личный_токен
days = 30Подготовленные записи хранятся в текстовом файле .litstore:
12.02.2025 [10:00 - 14:00] TASK-1752 4h `Убрал из меню ссылку О компании`
25.12.2023 [14:30 - 15:00] TASK-15 30m `Исправление крэша при загрузке`
Отправленные логи сохраняются в .lithistory с ID ворклога:
12.02.2025 [10:00 - 14:00] TASK-1752 4h `...` # 779121
# Установка Poetry (рекомендуется через Homebrew)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install poetry
# Для управления версиями Python (опционально, но рекомендуется)
brew install pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc
# Установка нужной версии Python (пример для 3.12)
pyenv install 3.12
pyenv global 3.12
git clone https://github.com/LIT-Tools/lit.git
cd lit
poetry install
source .venv/bin/activate # Для bash/zsh- Установите системные зависимости
# Для Debian/Ubuntu:
sudo apt-get update && sudo apt-get install -y \
python3 python3-pip python3-venv git curl \
build-essential libssl-dev zlib1g-dev
# Для Fedora/RHEL:
sudo dnf install -y python3 python3-pip python3-virtualenv git curl \
gcc openssl-devel bzip2-devel libffi-devel zlib-devel- Установите Poetry
curl -sSL https://install.python-poetry.org | python3 -
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc- Установите pyenv (опционально, для управления версиями Python)
curl https://pyenv.run | bash
# Добавьте в ~/.bashrc:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
# Установите нужную версию Python (пример):
pyenv install 3.12
pyenv global 3.12- Клонируйте репозиторий и установите зависимости
git clone https://github.com/LIT-Tools/lit.git
cd lit
poetry install
poetry shell # или source .venv/bin/activatePowerShell:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser* В PS может потребоваться разрешение на запуск локальных скриптов
git clone https://github.com/LIT-Tools/lit.git
cd lit
poetry install
.\.venv\Scripts\activate
# or
poetry env activate Windows / Linux / macOS
poetry run pyinstaller lit.spec- Установите dev-зависимости:
poetry install --with dev- Запустите тесты:
coverage run -m unittest discover
coverage report -m- Откройте отчёт:
Windows
coverage html; Start-Process "htmlcov/index.html"Linux / Mac
coverage html && open htmlcov/index.html- Исправить подсказки ключей для команды
add, убрать ложные срабатывания - Настроить сборку бинарника
- Опубликовать в интернете для установки
- Настроить версионирование
- Добавить проверку свежей версии и обновление
- Рефакторинг дублирующего кода
- Рефакторинг архитектуры под классический питонячий формат
- Повысить покрытие тестами 80+%
- Рефакторинг тестов
- Понизить версию питона
- Добавить мульти профили что бы подключаться к разным контурам
-
Настройка конфигурации из консоли
lit configпоказывает конфигlit config add <key> <value>добавляет запись -
В кофиге есть поле
start_timeс непустым значением и пользователь не предал значение через ключ -h то используем start_time как начальное время лога. Это защита если спец будет вносить логи поздно ночью -
Предупреждение если не была произведение конфигурация, файлй
~/.lit/.litconfigнет. -
Сохронять историю команд в интерактивном режиме
- Время начала позже 19:00 или раньше 5:00 вызывает предупреждение
- При указании несуществующей задачи в автодополнении, появится подтверждение
- Поддержка сложных временных форматов (1d = 8h, 1h 15m и т.д.)
Q: Как указать время больше 24 часов?
A: Используйте дни (d):
lit add TASK-777 3d "Марафон разработки"Разработано с ❤️ для упрощения рутинных задач
Лицензия: MIT