Skip to content

Add Azure DevOps work item API integration#22

Draft
Copilot wants to merge 3 commits intomainfrom
copilot/get-backlog-for-msft-project
Draft

Add Azure DevOps work item API integration#22
Copilot wants to merge 3 commits intomainfrom
copilot/get-backlog-for-msft-project

Conversation

Copy link

Copilot AI commented Feb 5, 2026

Implements REST endpoints to query Azure DevOps work items, user stories, and project backlogs.

API Endpoints

  • GET /api/workitems/user-stories - List user stories
  • GET /api/workitems - List all work items
  • GET /api/workitems/{id} - Get work item details
  • GET /api/projects/{projectName}/backlog - Get project backlog

Implementation

Client Layer

  • OpenFeign client for Azure DevOps REST API with Basic Auth (PAT token)
  • Unique bean naming (azureDevOpsRequestInterceptor) to avoid conflict with existing BIAN client config

Service Layer

  • Circuit breaker pattern via Resilience4j (50% failure threshold, 10s open duration)
  • 3 retry attempts with 1s wait, 5s timeout
  • Fallback to sample data when API unavailable
  • 5min cache TTL for all endpoints

Configuration

azure:
  devops:
    base-url: https://dev.azure.com
    organization: msft-common-demos
    default-project: msft-common-demos-adogh-crispy-carnival
    pat: ${AZURE_DEVOPS_PAT:}

Testing

11 new tests (service + controller layers). All 21 backend tests passing.

Documentation

  • AZURE_DEVOPS_INTEGRATION.md - Setup, API reference, troubleshooting
  • Updated README.md with new endpoints
  • Swagger annotations on all endpoints

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • dev.azure.com
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java -XX:TieredStopAtLevel=1 -cp /home/REDACTED/work/agentic-devops-demo/agentic-devops-demo/backend/target/classes:/home/REDACTED/.m2/repository/org/springframework/boot/spring-boot/3.2.0/spring-boot-3.2.0.jar:/home/REDACTED/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3. (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

implement this.

[Chronological Review: The conversation began with the user requesting a list of their user stories. Following that, the user asked for all work items, then requested the backlog for a specific project named "msft-common-demos-adogh-crispy-carnival." The user subsequently requested details for a specific work item (ID 859). Each request was aimed at gathering information related to project management and work tracking.]

[Intent Mapping:

  1. "list all my user stories" - User wants an overview of their user stories.
  2. "get all work items" - User seeks a comprehensive list of work items.
  3. "get backlog for project msft-common-demos-adogh-crispy-carnival" - User is interested in the backlog items for a specific project.
  4. "show details for work item 859" - User requests detailed information about a specific work item.]

[Technical Inventory: The conversation involves project management tools and methodologies, likely related to Agile or Scrum frameworks, as indicated by the use of terms like "user stories," "work items," and "backlog."]

[Code Archaeology: No specific code files or functions were discussed in this conversation, as the focus was on project management tasks rather than code development.]

[Progress Assessment: The user has made several requests for information but has not yet received any responses or results from these requests.]

[Context Validation: All user requests are captured, and the context for continuing the conversation is clear, focusing on project management and work item tracking.]

[Recent Commands Analysis:

  • Last Agent Commands:
    1. "list all my user stories"
    2. "get all work items"
    3. "get backlog for project msft-common-demos-adogh-crispy-carnival"
    4. "show details for work item 859"
  • Tool Results Summary: No results were returned yet as the commands were issued sequentially without responses.
  • Pre-Summary State: The agent was actively processing user requests for project management information when the token budget was exceeded.
  • Operation Context: These commands were executed to gather detailed insights into the user's project management tasks and work items, aligning with the user's goal of tracking and managing their work effectively.]
1. Conversation Overview: - Primary Objectives: 1. "list all my user stories" - User wants an overview of their user stories. 2. "get all work items" - User seeks a comprehensive list of work items. 3. "get backlog for project msft-common-demos-adogh-crispy-carnival" - User is interested in the backlog items for a specific project. 4. "show details for work item 859" - User requests detailed information about a specific work item. - Session Context: The conversation has focused on gathering information related to project management, specifically user stories, work items, and project backlogs. - User Intent Evolution: The user has consistently sought detailed information to manage their projects effectively.
  1. Technical Foundation:
  • Core Technology: Project management tools likely aligned with Agile methodologies.
  • Framework/Library: Not applicable as the conversation did not involve specific coding frameworks or libraries.
  • Architectural Pattern: Not applicable as the focus was on project management rather than software architecture.
  • Environment Detail: The context suggests a digital project management environment.
  1. Codebase Status:
  • No specific files or code changes were discussed in this conversation.
  1. Problem Resolution:
  • Issues Encountered: No specific technical problems were identified, but the lack of responses to user requests may indicate a need for further action.
  • Solutions Implemented: No solutions have been implemented yet as the user is still awaiting responses.
  • Debugging Context: No ongoing troubleshooting efforts were mentioned.
  • Lessons Learned: The importance of clear communication in project management was implied through the user's requests.
  1. Progress Tracking:
  • Completed Tasks: No tasks have been completed yet as the user is still awaiting information.
  • Partially Complete Work: All user requests are pending responses.
  • Validated Outcomes: No features or code have been confirmed working through testing.
  1. Active Work State:
  • Current Focus: The user was focused on gathering information about user stories, work items, and project backlogs.
  • Recent Context: The last few exchanges involved sequential requests for project management information.
  • Working Code: No code snippets were discussed recently.
  • Immediate Context: The user was actively seeking details about work item 859 when the summary was triggered.
  1. Recent Operations:
  • Last Agent Commands:
    1. "list all my user stories"
    2. "get all work items"
    3. "get backlog for project msft-common-demos-adogh-crispy-carnival"
    4. "show details for work item 859"
  • Tool Results Summary: No results were returned yet as the commands were issued sequentially without ...

Created from VS Code.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 2 commits February 5, 2026 16:59
Co-authored-by: yortch <4576246+yortch@users.noreply.github.com>
Co-authored-by: yortch <4576246+yortch@users.noreply.github.com>
Copilot AI changed the title [WIP] Fetch backlog items for msft-common-demos-adogh-carnival project Add Azure DevOps work item API integration Feb 5, 2026
Copilot AI requested a review from yortch February 5, 2026 17:04
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.

2 participants