Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Bug report
description: Something does not work as described.
labels: [bug]
body:
- type: markdown
attributes:
value: |
Thanks for reporting!

**Please do not paste work items, wiki pages, code, names or any other data from your own or your customers'
Azure DevOps organizations.** Reproduce the problem with neutral names (e.g. organization `contoso`,
project `Demo`) or describe it in general terms.
Security problems: use **Security → Report a vulnerability** instead of an issue.
- type: input
id: version
attributes:
label: Version
description: Output of `adolens version`.
placeholder: ado-lens 0.1.0
validations:
required: true
- type: textarea
id: what
attributes:
label: What happened
description: The tool or command you used, with its parameters, and what you got.
placeholder: |
ado_fields type=Bug
-> "no work item type 'Bug'", although ...
validations:
required: true
- type: textarea
id: expected
attributes:
label: What you expected
validations:
required: true
- type: textarea
id: status
attributes:
label: Status (optional)
description: Output of `adolens status`. Replace organization, project and user names that belong to a customer.
render: text
- type: input
id: environment
attributes:
label: Environment
description: Windows version, process (Agile / Scrum / CMMI / inherited), Git or TFVC, Claude Desktop or Claude Code.
- type: checkboxes
id: privacy
attributes:
label: Confidential data
options:
- label: This report contains no work items, code, names or data from customer organizations.
required: true
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Report a security vulnerability
url: https://github.com/willowdev-code/ado-lens/security/advisories/new
about: Please report security problems privately, not as a public issue.
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Feature request
description: An idea for a new tool or a better answer from an existing one.
labels: [enhancement]
body:
- type: markdown
attributes:
value: |
Please describe the use case with neutral names — no work items, code or data from customer organizations.
- type: textarea
id: problem
attributes:
label: What you are trying to do
description: The question you want Claude to answer, or the task you still do by hand in Azure DevOps.
validations:
required: true
- type: textarea
id: proposal
attributes:
label: What would help
description: A new tool, a parameter, a different answer — whatever you have in mind.
- type: checkboxes
id: privacy
attributes:
label: Confidential data
options:
- label: This request contains no work items, code or data from customer organizations.
required: true
55 changes: 55 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Release

# Pushing a tag vX.Y.Z publishes the release: tests, package, notes from CHANGELOG.md.
# The tag must match <Version> in src/AdoLens/AdoLens.csproj; release tags cannot be moved afterwards.
on:
push:
tags: ['v*']

permissions:
contents: read

jobs:
release:
name: release
runs-on: windows-latest
timeout-minutes: 30
permissions:
contents: write
env:
DOTNET_CLI_TELEMETRY_OPTOUT: '1'
DOTNET_NOLOGO: '1'
TAG: ${{ github.ref_name }}
steps:
- uses: actions/checkout@v7

- uses: actions/setup-dotnet@v6
with:
dotnet-version: 9.0.x

- name: Check that the tag matches the project version
shell: pwsh
run: |
$version = ([xml](Get-Content src/AdoLens/AdoLens.csproj -Raw)).Project.PropertyGroup.Version | Where-Object { $_ } | Select-Object -First 1
if ("v$version" -ne $env:TAG) { throw "tag $env:TAG does not match <Version>$version</Version> in src/AdoLens/AdoLens.csproj" }
"VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8

- name: Test
run: dotnet test AdoLens.sln -c Release

- name: Release notes
shell: powershell
run: .\release-notes.ps1 -Version $env:VERSION -OutFile dist\notes.md

- name: Package
shell: powershell
run: .\pack.ps1 -OutDir dist

# vX.Y.Z-beta.N is a test release: marked as pre-release, never "Latest".
- name: Publish the release
shell: pwsh
env:
GH_TOKEN: ${{ github.token }}
run: |
$kind = if ($env:TAG -match '-') { '--prerelease' } else { '--latest' }
gh release create $env:TAG "dist/ado-lens-$env:VERSION.zip" "dist/ado-lens-$env:VERSION.zip.sha256" --title "ADO Lens $env:VERSION" --notes-file dist/notes.md --verify-tag $kind
25 changes: 22 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Changelog

## 0.1.0 — unreleased
## 0.1.0 — 2026-10-14

First skeleton.
First release: work items, sprints, boards, backlogs and the wiki for Claude Desktop and Claude Code.

- `adolens.exe`: MCP server over stdio and CLI with the same answers.
- Connections (several organizations): `login`, `logout`, `connections`, `config`. PATs in Windows Credential Manager
Expand All @@ -12,4 +12,23 @@ First skeleton.
- Local metadata (SQLite) per connection: work item types by backlog level, states, transitions, fields, required flags,
defaults and allowed values; history of structure changes between refreshes.
- Tools: `ado_status`, `ado_fields`.
- Usage log and `adolens stats` (answer sizes in tokens, times, empty answers).
- Work items (tool set `work`): `ado_work_item` (compact item with markdown text, links, code links; comments and
history on request), `ado_query` (WIQL or saved query), `ado_create` and `ado_update` (fields by name, allowed values,
people by name, state only along the transitions, markdown → HTML, soft length notes; updates of more than
`confirmBulkAbove` items are previewed and written with the preview's token), `ado_comment` (`@[name]` mentions),
`ado_link`. Same commands in the CLI (`item`, `query`, `create`, `update`, `comment`, `link`).
- Boards (tool set `boards`): `ado_sprint` (dates and working day, progress by state, estimates, remaining work vs
capacity left with days off, attention list, task progress; ended sprints said plainly), `ado_board` (columns, WIP
limits, cards; moving a card sets the column and the state mapped for its type), `ado_backlog` (priority order,
reordering), `ado_my_day` (mentions, own and followed items changed by others, PRs waiting for review). CLI: `sprint`,
`board`, `backlog`, `myday`.
- Wiki (tool set `wiki`): `ado_wiki` (page tree, a page as markdown with its version and subpages, search with
snippets) and `ado_wiki_write` (create, append, prepend, or replace with the version from the last read — a page
changed meanwhile is never overwritten). CLI: `wiki`, `wiki-write`.
- Modes `po` / `dev` / `full` choose the tool sets Claude sees; `config --add-toolset`, `--confirm-above`.
- Inherited process names, bugs shown on the requirement backlog, disabled types listed by name.
- The PAT is only ever sent to Azure DevOps hosts. `adolens api <path>` for development.
- Releases: `release.ps1` (test or regular release from `dev`, private names and broken characters scan, CI, merge
to `main`, tag, published package check), Release workflow with the package's SHA-256.
- Usage log and `adolens stats` (answer sizes in tokens, times, empty answers); `stats --live` follows the calls as
Claude makes them; `--tokens` on any command and `config --show-tokens true` show the size of each answer.
Loading