-
-
Notifications
You must be signed in to change notification settings - Fork 108
feat: comprehensive pipeline monitoring and build analysis tools #255
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
GlassOnTin
wants to merge
16
commits into
Tiberriver256:main
Choose a base branch
from
GlassOnTin:feat/pipeline-and-build-tools
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat: comprehensive pipeline monitoring and build analysis tools #255
GlassOnTin
wants to merge
16
commits into
Tiberriver256:main
from
GlassOnTin:feat/pipeline-and-build-tools
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Add list_pipeline_runs tool to get recent runs for a pipeline - Add get_pipeline_run tool to get detailed run information - Include run state, result, dates, variables, and template parameters - Add comprehensive unit tests for both new features - Update documentation with usage examples
- Add optional 'top' parameter to limit results (default: 50, max: 1000) - Implement client-side limiting to handle pipelines with extensive history - Update tests to verify pagination behavior - Add documentation about large result sets and token limits - Prevents token limit errors when listing runs for pipelines with thousands of runs
- LogCollection has 'logs' property, not 'value' or 'count' - Update feature implementation to use correct property names - Fix all test mocks to match actual API structure
- Use signedContent.url when available (preferred for signed URLs) - Fall back to log.url if signedContent not available - Add detailed console logging for debugging authentication issues - Log response status codes and content types for failed fetches - Help diagnose why signed URLs return authentication pages
- Handle null/undefined responses from listLogs and getLog - Add warning messages when logs are not found - Prevent 'Cannot read properties of null' errors - Return proper null response structure when no logs exist
- Update return type to allow LogCollection | null - Add unit tests for null responses from API - Tests verify proper handling of missing logs - All tests passing with null safety
- New tool to download all pipeline run logs to local files - Handles large logs that exceed MCP token limits - Creates organized directory structure with numbered log files - Includes summary.json with metadata about downloaded logs - Gracefully handles failed downloads and missing URLs - Comprehensive unit tests with 100% coverage - Documentation added to pipelines.md
- read_downloaded_log: Read log files with pagination support for huge logs - list_downloaded_logs: List available files in download directory - Supports reading logs in chunks (offset/limit) to handle massive files - Solves the problem of accessing files on remote MCP host via TCP tunnel - Default limit of 1000 lines per read, max 5000 lines
- Single-step tool to get specific log content directly - Automatically downloads and caches logs (15-minute cache) - Supports pagination for huge logs (offset/limit) - Eliminates confusing multi-step process - Intelligently reuses cached downloads when available - Perfect for interactive log analysis without manual download management
- Added detailed docs for get_pipeline_log_content (recommended tool) - Documented all manual download/read tools for advanced users - Clear categorization: Quick Access vs Advanced Control - Examples for common use cases and pagination - Explains when to use each tool
- Search for patterns across all or specific logs - Auto-downloads and caches logs (shares cache with get_pipeline_log_content) - Supports regex patterns with case-insensitive option - Context lines (before/after) like grep -B/-A - Inverse matching (grep -v) to find lines that don't match - Max matches limit to prevent token overflow - Perfect for finding test failures, errors, or specific events in large logs
- Uses Build API to cancel pipeline runs (pipeline run ID = build ID) - Handles various states (already completed, cancelling, etc.) - Supports optional cancellation reason - Updated documentation with usage examples
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds comprehensive pipeline monitoring and build analysis capabilities to the Azure DevOps MCP server, focusing on accessing pipeline logs, build artifacts, code coverage, and test results.
Features Added
🔍 Pipeline Monitoring & Logs
📊 Build Analysis Tools
Technical Details
Testing
All features have been tested and verified working:
Breaking Changes
None - all changes are additive.
Documentation
Comprehensive documentation added for all new tools in
docs/tools/.