Skip to content

feat: add upstream reachability and pull-through services#44

Closed
DevonL wants to merge 1 commit into
mainfrom
split/dependency-health-v2-04-upstream-services
Closed

feat: add upstream reachability and pull-through services#44
DevonL wants to merge 1 commit into
mainfrom
split/dependency-health-v2-04-upstream-services

Conversation

@DevonL
Copy link
Copy Markdown
Collaborator

@DevonL DevonL commented Apr 8, 2026

📄 Summary

Adds capabilities for dependency fetching via available upstreams

🔍 Related Issues

Link to any related GitHub issues (e.g., Fixes #12, Closes #34):

🧪 Type of Change

Please check the relevant type tag for this PR title:

  • [FIX] Bug fix
  • [NEW] New thing
  • [REFACTOR] Internal changes such as code restructuring or optimization that does not alter functionality
  • [DOC] Documentation-only changes
  • [CHORE] Maintenance, cleanup, or CI configuration

🧪 How Has This Been Tested?

Describe how you tested your changes. Include CI runs, local tests, manual verification, or screenshots if applicable.

📸 Screenshots (if applicable)

If UI or logs are affected, include before/after screenshots or output.

✅ Checklist

  • I’ve read and followed the CONTRIBUTING.md.
  • I’ve added or updated documentation as needed.
  • I’ve verified the change is tested and works as intended.
  • CI/CD checks pass and do not break existing functionality.
  • My code follows the style guidelines of this project.

Copilot AI review requested due to automatic review settings April 8, 2026 14:50
@DevonL DevonL requested a review from colinmoynes as a code owner April 8, 2026 14:50
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces upstream reachability and pull-through services that enable dependency fetching via available upstreams in Cloudsmith. The implementation adds comprehensive capabilities for checking upstream availability and orchestrating dependency pulls through multiple package formats.

Changes:

  • Adds UpstreamPullService class for orchestrating concurrent dependency pulls with authentication-aware redirect handling
  • Implements upstreamGapAnalyzer for enriching dependencies with upstream reachability information
  • Creates utility modules for registry endpoint management, package name normalization, and upstream format handling
  • Refactors UpstreamChecker to expose upstream state queries for external consumption
  • Adds comprehensive test coverage for both services and their integration scenarios

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
util/upstreamPullService.js Main service class that handles pull-through caching with concurrent request management, redirect validation, and authentication failure handling
util/upstreamGapAnalyzer.js Analyzes uncovered dependencies across repositories to determine upstream reachability with progress reporting
util/registryEndpoints.js Constructs registry trigger plans and validates registry URLs for 13+ package formats
util/packageNameNormalizer.js Provides package name normalization and ecosystem-to-format mapping utilities
util/upstreamChecker.js Refactored to export helper functions and add new method for querying active upstreams by format
test/upstreamPullService.test.js Tests registry URL construction, mixed-ecosystem handling, redirect validation, and concurrency controls
test/upstreamGapAnalyzer.test.js Tests dependency classification, upstream detection, and concurrency limiting

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@DevonL DevonL force-pushed the split/dependency-health-v2-04-upstream-services branch 3 times, most recently from d361d50 to 22ba0c3 Compare April 8, 2026 19:28
@DevonL DevonL force-pushed the split/dependency-health-v2-04-upstream-services branch from 22ba0c3 to 06e2e46 Compare April 8, 2026 19:39
@DevonL
Copy link
Copy Markdown
Collaborator Author

DevonL commented Apr 9, 2026

Closing this PR because the initial split/stacking strategy was incorrect and produced oversized, overlapping diffs.

A clean stacked PR set will be reopened from the original feature branch.

@DevonL DevonL closed this Apr 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants