๐ A powerful work time tracking tool for the command line
Project description
Drudge CLI - Professional Work Time Tracking Tool
A comprehensive, professionally architected command-line tool for tracking work time on tasks with organized daily logs. Built with modern Python package structure, Typer CLI framework, Rich formatting, type hints, dataclasses, and enterprise-level architectural patterns.
๐ฏ Version 2.2.0 - Google Sheets Sync & Project Support: Enhanced --time option with date support, project/category tagging, and Google Sheets sync with haunts-compatible format.
โจ Key Features
๐ Task Management
- Smart task tracking: Start, end, pause, and resume tasks
- Anonymous work sessions: Start working without naming the task
- Single-task mode: Auto-ends previous tasks (default behavior)
- Parallel mode: Work on multiple tasks simultaneously with
--parallelflag - Custom timestamps: Backdate entries with
--time HH:MMor--time "YYYY-MM-DD HH:MM" - Project tagging: Organize tasks by project with
--project "Project Name" - Pause/Resume: Interrupt work and continue later
๐ Reporting & Views
- Unified list command: See active, paused, and completed tasks at a glance
- Recent tasks: View detailed recent work history
- Daily summaries: Time totals and task breakdown by day
- Flexible filtering: By date, task name, project, or custom limits
๏ฟฝ NEW in v2.2.0: Google Sheets Sync
- Haunts-compatible format: Sync to Google Sheets with haunts column layout
- Multiple auth methods: Haunts OAuth, OAuth token, or Service Account
- Auto-sync option: Sync automatically after ending tasks with
--sync - Selective sync: Daily, monthly, or by specific date
๐ท๏ธ NEW in v2.2.0: Project Support
- Tag tasks:
drudge start "Fix bug" --project "Backend API" - Filter by project:
drudge list --project "Backend" - Project display: Projects shown in task listings
โฐ NEW in v2.2.0: Enhanced Time Option
- Date support:
--time "2025-12-10 14:30"for any date - Backward compatible:
--time 14:30still works (uses today)
๐๏ธ Clean Command
- Clean by date: Remove all entries for a specific date
- Clean by task: Remove all entries for a task across all dates
- Selective cleaning: Clean task entries for specific date only
- Clean all: Reset entire worklog with confirmation
- Automatic backups: Safety first - backups before deletion
๐ End Command
- Default:
drudge end- Ends only active tasks - --all flag:
drudge end --all- Ends active AND paused tasks - --sync flag:
drudge end --sync- End and sync to Google Sheets
โ Help System
- Native Typer
--helpintegration - Command-specific help:
drudge COMMAND --help - Consistent with standard CLI conventions
๐ฆ Installation
Prerequisites
- Python 3.8+ (tested with Python 3.10 and 3.13)
- Required packages:
typer[all]andrich
Install from PyPI
pip install drudge-cli
Install from Source
# Clone the repository
git clone https://github.com/Trik16/drudge.git
cd drudge
# Install in development mode
pip install -e .
Setup Shell Alias
# Run the setup script
./setup_drudge_alias.sh
# Or add manually to your shell config
echo 'alias drudge="python3 -m src.worklog"' >> ~/.zshrc
source ~/.zshrc
Enable Shell Autocompletion
Drudge supports tab completion for commands and options in Bash, Zsh, Fish, and PowerShell.
Automatic Installation (Recommended)
# Install completion for your current shell
drudge --install-completion
# Restart your shell or source your config
source ~/.zshrc # for Zsh
source ~/.bashrc # for Bash
Manual Installation
Zsh:
# Generate completion script
drudge --show-completion zsh > ~/.drudge-completion.zsh
# Add to ~/.zshrc
echo 'source ~/.drudge-completion.zsh' >> ~/.zshrc
source ~/.zshrc
Bash:
# Generate completion script
drudge --show-completion bash > ~/.drudge-completion.bash
# Add to ~/.bashrc
echo 'source ~/.drudge-completion.bash' >> ~/.bashrc
source ~/.bashrc
Fish:
# Generate completion script
drudge --show-completion fish > ~/.config/fish/completions/drudge.fish
PowerShell:
# Generate completion script
drudge --show-completion powershell | Out-File -FilePath $PROFILE
Verify Installation
# Try typing and press TAB
drudge <TAB> # Shows all available commands
drudge start <TAB> # Shows task name suggestions
drudge end --<TAB> # Shows available flags
๐ Quick Start
# Start your workday
drudge start "Morning emails"
# Check what's active
drudge list
# End the task
drudge end "Morning emails"
# View today's summary
drudge daily
โ๏ธ Configuration
Config File
Drudge can be configured using a YAML file located at ~/.worklog/config.yaml. This file is automatically created from a template on first run.
Configuration File
The config file is created automatically when you first run any drudge command. You can view and manage it with:
# Show configuration summary
drudge config
# Show full config.yaml content
drudge config --show
# Edit configuration file directly
nano ~/.worklog/config.yaml
# or
code ~/.worklog/config.yaml
Configuration Structure
# Basic settings
worklog_directory: "~/.worklog"
sheet_document_id: "1A2B3C4D5E6F7G8H9I0J"
timezone: "Europe/Rome"
# Project categorization
projects:
- Backend
- Frontend
- DevOps
- Research
# Google Sheets sync (haunts-compatible format)
google_sheets:
enabled: true
auto_sync: false
round_hours: 0.5 # Round to 15min (0.25), 30min (0.5), hour (1.0)
# Optional: Haunts integration (for Calendar sync)
haunts:
enabled: false
config_path: "~/.haunts"
Configuration Parameters
Basic Settings
| Parameter | Type | Default | Description |
|---|---|---|---|
worklog_directory |
string | ~/.worklog |
Directory for worklog data |
sheet_document_id |
string | - | Google Sheets document ID (shared) |
timezone |
string | system | Timezone (from haunts or system) |
Projects
Define project categories to organize your work entries. Projects can be assigned when starting tasks:
# Start a task with project categorization
drudge start "Implement login feature" --project Backend
drudge start "Fix CSS layout" --project Frontend
Google Sheets Integration
| Parameter | Type | Default | Description |
|---|---|---|---|
enabled |
boolean | false |
Enable/disable Google Sheets sync |
auto_sync |
boolean | false |
Auto-sync on task end |
round_hours |
float | 0.5 |
Rounding: 0.25 (15min), 0.5 (30min), 1.0 (hour) |
Note: Decimal places are automatic: 0.25โ2 decimals, 0.5โ1 decimal, 1.0โ0 decimals
Haunts Integration (Optional)
| Parameter | Type | Default | Description |
|---|---|---|---|
enabled |
boolean | false |
Whether you use haunts for Calendar sync |
config_path |
string | ~/.haunts |
Path to haunts config (reference only) |
Note: Haunts is optional. If enabled, it reads the Google Sheet and creates Calendar events independently.
Hours Formatting Examples
The round_hours setting controls how task durations are rounded. Decimal places are automatic:
# Example 1: Round to 30 minutes (default)
round_hours: 0.5
# 2h 12m โ 2,0 hours (2h 00m) - 1 decimal
# 2h 38m โ 2,5 hours (2h 30m) - 1 decimal
# 2h 52m โ 3,0 hours (3h 00m) - 1 decimal
# Example 2: Round to 15 minutes
round_hours: 0.25
# 2h 12m โ 2,25 hours (2h 15m) - 2 decimals
# 2h 38m โ 2,50 hours (2h 30m) - 2 decimals
# 2h 52m โ 2,75 hours (2h 45m) - 2 decimals
# Example 3: Round to full hour
round_hours: 1.0
# 2h 12m โ 2 hours - 0 decimals
# 2h 38m โ 3 hours - 0 decimals
Note: Uses comma (,) as decimal separator for European format.
Project-Based Workflow
Once configured, you can organize your work by project:
# Start tasks with project categorization
drudge start "API refactoring" --project Backend
drudge start "Button animations" --project Frontend
# Tasks are tracked with their projects
drudge list
# Output shows: "API refactoring [Backend]" and "Button animations [Frontend]"
# End tasks (project info is preserved)
drudge end "API refactoring"
# Output: ๐ Completed 'API refactoring' [Backend] (2h 30m)
Haunts Sync
When enabled, drudge can sync completed tasks to Google Calendar via Haunts:
# Manual sync (when sync_mode: manual)
drudge daily --sync
# View what will be synced
drudge daily
# Shows completed tasks with their projects and durations
Note: Haunts integration requires the Haunts package to be installed and configured.
๐ Command Reference
| Command | Description | Example |
|---|---|---|
| Task Management | ||
drudge start "Name" |
๐ Start a new task (auto-ends previous) | drudge start "Bug fix #123" |
drudge start |
๐ Start anonymous work session | drudge start |
drudge start --parallel |
๐ Start without ending active tasks | drudge start "Review" --parallel |
drudge start --project NAME |
๐ Start with project categorization | drudge start "API work" --project Backend |
drudge start --time HH:MM |
๐ Start at specific time | drudge start "Meeting" --time 09:30 |
drudge end "Name" |
๐ End a specific task | drudge end "Bug fix #123" |
drudge end |
๐ End ALL active tasks (paused remain) | drudge end |
drudge end --all |
๐ NEW End active AND paused tasks | drudge end --all |
drudge end --time HH:MM |
๐ End at specific time | drudge end "Meeting" --time 17:30 |
drudge pause "Name" |
โธ๏ธ Pause an active task | drudge pause "Task" |
drudge resume "Name" |
โถ๏ธ Resume a paused task | drudge resume "Task" |
| Cleaning & Maintenance | ||
drudge clean YYYY-MM-DD |
๐๏ธ NEW Clean all entries for date | drudge clean 2025-10-03 |
drudge clean "Task" |
๐๏ธ NEW Clean task (all dates) | drudge clean "Bug fix" |
drudge clean "Task" --date |
๐๏ธ NEW Clean task for specific date | drudge clean "Meeting" -d 2025-10-03 |
drudge clean --all |
๐๏ธ NEW Clean ALL entries (confirm) | drudge clean --all |
| Viewing & Reporting | ||
drudge list |
๐ Show active, paused, completed | drudge list |
drudge list --date YYYY-MM-DD |
๐ List entries for date | drudge list --date 2025-10-03 |
drudge list --task "keyword" |
๐ Filter by task name | drudge list --task "bug" |
drudge list --limit N |
๐ Limit results | drudge list --limit 10 |
drudge recent |
๐ Recent tasks (full details) | drudge recent |
drudge recent --limit N |
๐ Show N recent tasks | drudge recent --limit 10 |
drudge daily |
๐ Today's summary | drudge daily |
drudge daily --date YYYY-MM-DD |
๐ Specific date summary | drudge daily --date 2025-10-03 |
| Help & Info | ||
drudge --help |
โ IMPROVED Main help | drudge --help |
drudge COMMAND --help |
โ IMPROVED Command help | drudge start --help |
| Configuration | ||
drudge config |
โ๏ธ Show config summary | drudge config |
drudge config --show |
โ๏ธ Display full config.yaml | drudge config --show |
drudge version |
๐ฆ Show version | drudge version |
๐ก Usage Examples
Basic Task Tracking
# Start a task
$ drudge start "Fix bug #123"
๐ Started 'Fix bug #123' at 2025-10-04 10:00:00
# End it
$ drudge end "Fix bug #123"
๐ Completed 'Fix bug #123' at 2025-10-04 12:30:00 (Duration: 02:30:00)
Anonymous Work Session
# Don't know what you're working on yet?
$ drudge start
๐ก Starting anonymous work session
# Name it later (converts anonymous โ named)
$ drudge start "Research and planning"
โ๏ธ Renamed anonymous work to 'Research and planning'
Parallel Tasks
# Work on multiple tasks simultaneously
$ drudge start "Backend API"
$ drudge start "Code review" --parallel # Keeps Backend API running
$ drudge list
๐ฅ ACTIVE TASKS:
โข Backend API (Running: 01:00:00)
โข Code review (Running: 00:15:00)
# End specific task
$ drudge end "Code review"
๐ Completed 'Code review' (Duration: 00:30:00)
Pause and Resume
# Working on a task
$ drudge start "Important project"
# Lunch break
$ drudge pause "Important project"
โธ๏ธ Paused 'Important project'
# Back from lunch
$ drudge resume "Important project"
โถ๏ธ Resumed 'Important project'
# Finish up
$ drudge end "Important project"
๐ Completed 'Important project' (Duration: 03:30:00)
Enhanced End Command (v2.1.0)
# Create test scenario
$ drudge start "Active Task"
$ drudge start "Another Task" --parallel
$ drudge pause "Active Task"
$ drudge list
๐ฅ ACTIVE TASKS:
โข Another Task (Running: 00:05:00)
โธ๏ธ PAUSED TASKS:
โข Active Task
# End only active tasks (DEFAULT behavior)
$ drudge end
โ
Ended 1 task(s) successfully # Only "Another Task" ended
$ drudge list
โธ๏ธ PAUSED TASKS:
โข Active Task # Paused task remains!
# End ALL tasks including paused (NEW --all flag)
$ drudge end --all
โถ๏ธ Resumed 'Active Task'
๐ Completed 'Active Task'
โ
Ended 1 task(s) successfully
Clean Command (v2.1.0)
# Clean all entries for a specific date
$ drudge clean 2025-10-03
โ
Cleaned 15 entries for 2025-10-03
๐พ Backup created for safety
# Clean all entries for a task (across all dates)
$ drudge clean "Bug fix #123"
โ
Cleaned 3 entries for task 'Bug fix #123'
๐พ Backup created for safety
# Clean task entries for specific date only
$ drudge clean "Meeting" --date 2025-10-03
โ
Cleaned 1 entries for task 'Meeting' on 2025-10-03
๐พ Backup created for safety
# Clean everything (with confirmation)
$ drudge clean --all
โ ๏ธ This will clean ALL worklog entries!
Are you sure you want to continue? [y/N]: y
โ
Cleaned 50 entries and 10 daily files
๐พ Backup created for safety
Custom Time Entry
# Forgot to track? Backdate it
$ drudge start "Morning standup" --time 09:00
๐ Started 'Morning standup' at 2025-10-04 09:00:00
$ drudge end "Morning standup" --time 09:30
๐ Completed 'Morning standup' (Duration: 00:30:00)
Daily Reporting
# View today's summary
$ drudge daily
๐
Daily Summary for 2025-10-04
๐ Total: 5 tasks, 7h 30m
โข Fix bug #123: 2h 30m
โข Code review: 1h 00m
โข Morning standup: 0h 30m
โข Documentation: 2h 00m
โข Backend API: 1h 30m
# View specific date
$ drudge daily --date 2025-10-03
Project-Based Workflow (v2.1.1+)
# Configure projects in ~/.worklog/config.yaml
# (file is auto-created on first run)
$ drudge config --show
# Edit to add your projects under 'projects:' section
# Start tasks with project categorization
$ drudge start "Implement login API" --project Backend
๐ Started 'Implement login API' [Backend] at 2025-10-04 10:00:00
$ drudge start "Fix responsive design" --project Frontend --parallel
๐ Started 'Fix responsive design' [Frontend] at 2025-10-04 10:30:00
# List shows projects
$ drudge list
๐ฅ ACTIVE TASKS:
โข Implement login API [Backend] (Running: 02:00:00)
โข Fix responsive design [Frontend] (Running: 01:30:00)
# End tasks (project info is preserved)
$ drudge end "Implement login API"
๐ Completed 'Implement login API' [Backend] (Duration: 02:00:00)
$ drudge end "Fix responsive design"
๐ Completed 'Fix responsive design' [Frontend] (Duration: 01:30:00)
# Daily summary shows projects
$ drudge daily
๐
Daily Summary for 2025-10-04
๐ Total: 2 tasks, 3h 30m
โข Implement login API [Backend]: 2h 00m
โข Fix responsive design [Frontend]: 1h 30m
# Sync to Google Calendar (with Haunts integration)
$ drudge daily --sync
โ
Synced 2 tasks to Google Calendar
๐ Google Sheets Integration
Drudge can sync your work tasks to Google Sheets in a haunts-compatible format. This allows you to:
- Keep a time-tracking spreadsheet
- Sync to Google Calendar (if using haunts)
- Share work reports with your team
Quick Setup
-
Create or use existing Google Sheet
-
Configure in
~/.worklog/config.yaml:# Add your Sheet Document ID (from URL) sheet_document_id: "1A2B3C4D5E6F7G8H9I0J" google_sheets: enabled: true auto_sync: false # or true for automatic sync on 'drudge end' round_hours: 0.5 # 0.25=15min, 0.5=30min, 1.0=hour
-
Sync your tasks:
drudge sync # Sync all entries drudge sync --daily # Sync today's entries drudge sync --monthly # Sync current month drudge daily --sync # Alias for --daily
Sheet Structure
1. Config Sheet (name: config)
- Maps project names to Calendar IDs (optional for drudge, required for haunts)
2. Monthly Sheets (names: January, February, March, etc.)
- Auto-created based on task dates
- Contains your task entries
Monthly Sheet Columns:
| Column | Name | Description | Example |
|---|---|---|---|
| A | Date | Task date | 04/10/2025 |
| B | Start time | Task start time | 09:30 |
| C | Project | Project category | Backend |
| D | Activity | Task description | Implement login API |
| E | Details | Additional notes | Added JWT auth |
| F | Spent | Duration (decimal hours) | 2,5 |
| G | Event id | Calendar event ID (filled by haunts) | - |
| H | Link | Calendar event link (filled by haunts) | - |
| I | Action | Sync control (used by haunts) | - |
Example Data
Task in drudge:
drudge start "Implement login API" --project Backend
# ... work for 2h 30m ...
drudge end "Implement login API"
Synced to Google Sheet (October tab):
| Date | Start | Project | Activity | Spent |
|------------|-------|---------|---------------------|-------|
| 04/10/2025 | 09:00 | Backend | Implement login API | 2,5 |
Hours Formatting
Configure how hours are formatted in the sheet:
google_sheets:
hours_decimal: 1 # Decimal places (0, 1, or 2)
round_hours: 0.25 # Round to 15min (0.25), 30min (0.5), or hour (1.0)
Examples:
- Task: 2h 47m
hours_decimal: 1, round_hours: 0.25โ2,75(2h 45m)hours_decimal: 2, round_hours: 0.5โ2,50(2h 30m)hours_decimal: 0, round_hours: 1.0โ3(3h)
Haunts Integration (Optional)
If you use haunts for Calendar sync:
- Drudge โ Writes tasks to Google Sheet
- Haunts โ Reads sheet and creates Calendar events
- Haunts โ Fills
Event idandLinkcolumns
Without haunts:
- You still get a time-tracking spreadsheet
- No automatic calendar sync
- Perfect for manual reporting
Authentication Setup
To use Google Sheets sync, you need:
- Google Cloud Project with Sheets API enabled
- OAuth 2.0 credentials or service account
- Credentials file at
~/.worklog/credentials.json
See Google Sheets API Quickstart for detailed setup.
Complete Documentation
For detailed sheet structure, column specifications, and setup guides, see:
๐๏ธ Architecture
Package Structure
src/worklog/
โโโ __init__.py # Package initialization
โโโ __main__.py # Entry point
โโโ models.py # Data models (TaskEntry, PausedTask, WorkLogData)
โโโ config.py # Configuration management
โโโ validators.py # Input validation
โโโ managers/ # Business logic
โ โโโ worklog.py # Core WorkLog class
โ โโโ backup.py # Backup management
โ โโโ daily_file.py # Daily file operations
โโโ cli/ # Command-line interface
โ โโโ commands.py # Typer commands
โโโ utils/ # Utilities
โโโ decorators.py # Common decorators
Data Storage
~/.worklog/
โโโ worklog.json # Complete task database (JSON)
โโโ worklog.log # Application logs
โโโ 2025-10-01.txt # Human-readable daily logs
โโโ 2025-10-02.txt
โโโ 2025-10-03.txt
โโโ daily/ # Backup directory
โโโ 2025-10-01.txt
โโโ 2025-10-02.txt
Daily File Format
2025-10-04 09:00:00 Morning standup (00:30:00)
2025-10-04 10:00:00 Fix bug #123 (02:30:00)
2025-10-04 14:00:00 Backend API [ACTIVE]
2025-10-04 15:00:00 Code review [PAUSED]
๐ Version History
Version 2.1.0 (Current - October 4, 2025)
New Features:
- โจ Enhanced end command:
--allflag to end both active and paused tasks - โจ Clean command: Erase worklog entries by date, task, or all (with backups)
- โจ Improved help: Native Typer
--helpintegration (removed custom help command)
Improvements:
- ๐ง End command:
drudge endkeeps paused tasks,drudge end --allends everything - ๐ก๏ธ Clean safety: Automatic backups, confirmation for --all, smart daily file rebuild
- ๐ All 47 test cases passing (100%)
Version 2.0.2
New Features:
- Anonymous work sessions
- Parallel task mode
- Optimized list command
- Enhanced recent command
Version 2.0.1
Major Refactoring:
- Complete architectural overhaul
- Typer CLI framework with Rich formatting
- Professional package structure
- 28 comprehensive test cases
Version 1.0
- Initial release with basic task tracking
๐งช Testing
Running Tests
# Run all tests
pytest tests/ -v
# Run specific test file
pytest tests/test_cli_integration.py -v
# Run specific test class
pytest tests/test_worklog_updated.py::TestNewFeatures -v
# Run tests in Docker (isolated environment)
docker build -f Dockerfile.test -t drudge-test .
docker run --rm drudge-test
Test Coverage
- 106 comprehensive test cases
- 47 CLI integration tests
- 20 Google Sheets sync tests
- 39 core worklog tests
- 100% pass rate on Python 3.10-3.13
- Core features: Start, end, pause, resume
- New features: Anonymous tasks, parallel mode, clean command, Google Sheets sync
- Edge cases and error handling
๐ ๏ธ Development
Build Package
# Build distribution
python3.10 -m build
# Check distribution
twine check dist/*
Publish to PyPI
# Upload to PyPI
twine upload dist/*
๐ License
MIT License - See LICENSE file for details
๐ Links
- GitHub: github.com/Trik16/drudge
- PyPI: pypi.org/project/drudge-cli
- Changelog: CHANGELOG.md
- Release Notes: docs/RELEASE_2.1.0.md
๐ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
๐ฌ Support
For issues, questions, or feature requests, please open an issue on GitHub.
Built with โค๏ธ using Python, Typer, and Rich
Version 2.1.1 - Enhanced CLI with native help, powerful clean command, and improved task management
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file drudge_cli-2.2.5.tar.gz.
File metadata
- Download URL: drudge_cli-2.2.5.tar.gz
- Upload date:
- Size: 68.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
597499d032b06dc44d003784f7f891c620f193b1ddce08759cd152d109323524
|
|
| MD5 |
771f2b7069343e31d48d6e1c3c6aa2ef
|
|
| BLAKE2b-256 |
5989b9e7844fd18441e9377d8e3795b493c8680f153917bcbc7f3a0faab0aa85
|
Provenance
The following attestation bundles were made for drudge_cli-2.2.5.tar.gz:
Publisher:
publish.yml on Trik16/drudge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
drudge_cli-2.2.5.tar.gz -
Subject digest:
597499d032b06dc44d003784f7f891c620f193b1ddce08759cd152d109323524 - Sigstore transparency entry: 782168769
- Sigstore integration time:
-
Permalink:
Trik16/drudge@042a83243344ba5168f6571fc119d971fb085359 -
Branch / Tag:
refs/tags/v2.2.5 - Owner: https://github.com/Trik16
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@042a83243344ba5168f6571fc119d971fb085359 -
Trigger Event:
push
-
Statement type:
File details
Details for the file drudge_cli-2.2.5-py3-none-any.whl.
File metadata
- Download URL: drudge_cli-2.2.5-py3-none-any.whl
- Upload date:
- Size: 48.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a385cfe0af35b6623344fa2a47957588301ddaefe7669b8e923acadd4652e4cd
|
|
| MD5 |
70dc3f3de1fd750c4d31c389397e7f53
|
|
| BLAKE2b-256 |
1d0f16cae512c4d5fe2981a854cdb119d8ac36b090dc5011724ee1c977530270
|
Provenance
The following attestation bundles were made for drudge_cli-2.2.5-py3-none-any.whl:
Publisher:
publish.yml on Trik16/drudge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
drudge_cli-2.2.5-py3-none-any.whl -
Subject digest:
a385cfe0af35b6623344fa2a47957588301ddaefe7669b8e923acadd4652e4cd - Sigstore transparency entry: 782168772
- Sigstore integration time:
-
Permalink:
Trik16/drudge@042a83243344ba5168f6571fc119d971fb085359 -
Branch / Tag:
refs/tags/v2.2.5 - Owner: https://github.com/Trik16
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@042a83243344ba5168f6571fc119d971fb085359 -
Trigger Event:
push
-
Statement type: