Skip to content

feat: Add Dashboard API support (dashboards, widgets, widget types) and devcontainer#108

Open
abhishekbagde wants to merge 4 commits into
hkarthik7:mainfrom
abhishekbagde:main
Open

feat: Add Dashboard API support (dashboards, widgets, widget types) and devcontainer#108
abhishekbagde wants to merge 4 commits into
hkarthik7:mainfrom
abhishekbagde:main

Conversation

@abhishekbagde
Copy link
Copy Markdown

Description

Adds full support for the Dashboard API (v7.2), enabling CRUD operations on dashboards,
widgets and widget types for team-scoped Azure DevOps projects.

Changes

New API Support

  • client.dashboard().dashboards() — create, get, list, replace, replaceDashboards, delete
  • client.dashboard().widgets() — create, get, list, replace, update (PATCH), delete
  • client.dashboard().widgetTypes() — list by scope, getMetadata by contribution ID
  • All methods have sync and async (CompletableFuture) variants

New Types

Dashboard, DashboardGroup, DashboardList, Widget, WidgetList, WidgetMetadata,
WidgetMetadataResponse, WidgetTypesResponse, WidgetPosition, WidgetSize,
LightboxOptions, SemanticVersion

API Version Constants

Added DASHBOARD, DASHBOARD_WIDGET, DASHBOARD_WIDGET_TYPES to ApiVersion

DevContainer

Added .devcontainer/ for Java 11 development environment

PR Checklist

  • Added help (Javadoc on all public methods and type fields)
  • Added unit tests (DashboardRequestBuilderTest — 8 tests covering dashboards CRUD, widget CRUD, widget types, and replaceDashboards)
  • Updated Change log (CHANGELOG.md — added 7.1.0 section)

Additional notes

  • All API calls were verified against a real Azure DevOps organisation before submission.
  • The widgets().update() PATCH operation requires fetching the existing widget first to preserve size and contributionId — this is documented in examples/Dashboard.md.
  • examples/Dashboard.md added following the same format as all other API examples.

abhishekbagde and others added 4 commits April 14, 2026 23:07
…ning script

- Add .devcontainer/ with Dockerfile, devcontainer.json, import-certs.sh
- Add tools/setup-ado-full.sh for full ADO project provisioning
- Add push_via_api.py for GitHub push via REST API (bypasses Zscaler)
- Implement Dashboard API: DashboardRequestBuilder (router), DashboardsRequestBuilder,
  WidgetsRequestBuilder, WidgetTypesRequestBuilder with full CRUD + team-scoped paths
- Add 11 Dashboard type classes (Dashboard, Widget, WidgetSize, etc.)
- Add ApiVersion constants: DASHBOARD, DASHBOARD_WIDGET, DASHBOARD_WIDGET_TYPES
- Wire DashboardRequestBuilder into AzDServiceClient interface and BaseServiceClient
- Add DashboardRequestBuilderTest with integration tests (5 tests pass)
- Fix WidgetMetadata.isEnabled Javadoc (was describing lightbox, not enabled state)
- Add examples/Dashboard.md with full usage examples for dashboards, widgets and widget types
- Expand DashboardRequestBuilderTest: add widget CRUD tests, replaceDashboards test,
  remove @FixMethodOrder anti-pattern (now matches all other test classes)
- Fix .devcontainer/import-certs.sh: remove set -e and add timeout so blocked hosts
  on restricted networks are skipped gracefully instead of aborting setup
- Fix devcontainer.json postCreateCommand: use semicolon so cert import failure
  does not block mvn dependency:resolve or pip install
- Remove tools/setup-ado-full.sh (personal provisioning script, not part of SDK)
- Remove push_via_api.py from tracking; add to .gitignore (personal utility)
- Update CHANGELOG.md for 7.1.0 Dashboard API release
- Fix WidgetMetadata.isEnabled Javadoc (was describing lightbox, not enabled state)
- Add examples/Dashboard.md with full usage examples for dashboards, widgets and widget types
- Expand DashboardRequestBuilderTest: add widget CRUD tests, replaceDashboards test,
  remove @FixMethodOrder anti-pattern (now matches all other test classes)
- Fix .devcontainer/import-certs.sh: remove set -e and add timeout so blocked hosts
  on restricted networks are skipped gracefully instead of aborting setup
- Fix devcontainer.json postCreateCommand: use semicolon so cert import failure
  does not block mvn dependency:resolve or pip install
- Remove tools/setup-ado-full.sh (personal provisioning script, not part of SDK)
- Remove push_via_api.py from tracking; add to .gitignore (personal utility)
- Update CHANGELOG.md for 7.1.0 Dashboard API release
Add Dashboard API implementation, devcontainer setup and ADO provisio…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant