A private Azure DevOps extension for fast, categorised time entry and monthly reporting. This repository currently contains the first integration spike: a packageable React work-item tab that reads its context from Azure DevOps and renders a native-feeling entry form.
- Node.js 22 or newer
- Corepack (included with Node.js)
- An Azure DevOps Marketplace publisher for packaging/install testing
corepack pnpm install
corepack pnpm lint
corepack pnpm typecheck
corepack pnpm test
corepack pnpm buildThe extension uses Vite's local HTTPS server because Azure DevOps embeds contributions in a secure iframe:
corepack pnpm devTrust the generated local certificate, then use a development manifest that points its contribution URL at https://localhost:5173. The packaged manifest always points to the bundled dist/index.html.
- Replace
replace-with-your-publisher-idinapps/extension/vss-extension.jsonwith the Marketplace publisher ID. - Increment the manifest version for every upload.
- Run:
corepack pnpm package:extensionThe VSIX is written to apps/extension/. Upload it privately, share it with the test organisation, and install it there. No Azure DevOps OAuth scopes are requested by this spike.
The Time work-item tab initializes the current Azure DevOps Extension SDK, then reads:
- organisation ID and name;
- project ID and name;
- current user ID and display name;
- saved work-item ID and title.
It deliberately does not persist the form yet. The implementation sequence is tracked in docs/implementation-plan.md, and the Microsoft documentation decisions are recorded in docs/azure-devops-extension-research.md.