Skip to content

blissapps/ado-timeentries

Repository files navigation

ADO Clock — Work Item Time Tracker

An Azure DevOps Marketplace extension that adds a Time Log tab to every work item form, enabling team members to record time entries directly inside Azure Boards.

Features

  • ⏱ Log time entries (hours + minutes) per work item
  • 👤 Automatically captures the current user
  • 📅 Date picker for the entry date
  • 📋 Displays all entries in a clean table with a running total
  • 🗑 Delete any entry inline
  • 💾 Data stored directly on the work item (no external services required)

Requirements

Custom Field Setup

Time entries are stored as JSON in a custom work item field. You need to create this field in your process template:

  1. Go to Organization Settings → Boards → Process
  2. Select your process (e.g., Agile, Scrum, CMMI)
  3. Select a work item type (or add to all types via "All")
  4. Click New field → Choose Text (multiple lines)
  5. Set the Reference Name to exactly: Custom.ADOClockTimeEntries
  6. Set the Name to: ADO Clock Time Entries
  7. Optional: uncheck "Show field on form" (the extension manages it via its own tab)

Development

Install dependencies

npm install

Build

npm run build

Outputs dist/time-tracker.js and dist/time-tracker.css.

Package

Before packaging, update vss-extension.json:

  • Set publisher to your registered marketplace publisher ID
  • Set public to true when ready for public release
npm run package

This generates a .vsix file in the project root.

Publish

Via CLI:

npx tfx-cli extension publish --vsix <file>.vsix --token <your-PAT>

Or upload directly via Manage Extensions in the marketplace.

Project Structure

adoclock/
├── src/
│   ├── time-tracker.ts     # Extension logic (TypeScript)
│   ├── time-tracker.html   # iframe host page
│   └── time-tracker.css    # Styles
├── dist/                   # Built output (generated)
├── images/
│   └── extension-icon.png  # Marketplace icon
├── vss-extension.json      # Extension manifest
├── package.json
├── tsconfig.json
└── webpack.config.js

Data Model

Each time entry stored in Custom.ADOClockTimeEntries:

[
  {
    "id": "lc7f4k2abc",
    "user": "Jane Doe",
    "date": "2026-03-11",
    "hours": 2,
    "minutes": 30
  }
]

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors