Skip to content

feat: allow for digest-pinned composefiles and test-coverage fixes#7

Merged
Crow-Control merged 6 commits into
mainfrom
update-compose-digest
Feb 17, 2026
Merged

feat: allow for digest-pinned composefiles and test-coverage fixes#7
Crow-Control merged 6 commits into
mainfrom
update-compose-digest

Conversation

@Crow-Control
Copy link
Copy Markdown
Member

Description

⚒️ Fixes #

⚙️ Type of change

  • ⚙️ Feature/App addition
  • 🪛 Bugfix
  • ⚠️ Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 🔃 Refactor of current code
  • 📜 Documentation Changes

🧪 How Has This Been Tested?

📃 Notes:

✔️ Checklist:

  • ⚖️ My code follows the style guidelines of this project
  • 👀 I have performed a self-review of my own code
  • #️⃣ I have commented my code, particularly in hard-to-understand areas
  • 📄 I have made changes to the documentation
  • 🧪 I have added tests to this description that prove my fix is effective or that my feature works
  • ⬆️ I increased versions for any altered app according to semantic versioning
  • I made sure the title starts with feat(chart-name):, fix(chart-name):, chore(chart-name):, docs(chart-name): or fix(docs):

➕ App addition

If this PR is an app addition please make sure you have done the following.

  • 🖼️ I have added an icon in the Chart's root directory called icon.png

Please don't blindly check all the boxes. Read them and only check those that apply.
Those checkboxes are there for the reviewer to see what is this all about and
the status of this PR with a quick glance.

Copilot AI review requested due to automatic review settings February 17, 2026 22:27
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Feb 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.93%. Comparing base (7d0a98b) to head (9f45f8a).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #7      +/-   ##
==========================================
+ Coverage   99.74%   99.93%   +0.19%     
==========================================
  Files         179      179              
  Lines        6610     6632      +22     
  Branches     1437     1444       +7     
==========================================
+ Hits         6593     6628      +35     
+ Misses         10        4       -6     
+ Partials        7        0       -7     
Flag Coverage Δ
app 99.93% <100.00%> (+0.19%) ⬆️
ui 99.93% <100.00%> (+0.19%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown

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 adds support for updating digest-pinned images in Docker Compose files. The feature intelligently handles different combinations of update types (tag vs. digest updates) and compose image formats (tag-only, digest-only, or tag+digest), preserving digest pinning when appropriate and skipping updates when replacement digests are unavailable.

Changes:

  • Added helper functions to split digest references and build digest-aware image updates
  • Enhanced service matching logic to correctly identify services when digest references are present
  • Implemented logic to preserve digest pinning during tag updates when remote digests are available
  • Added comprehensive test coverage for the update matrix of scenarios

Reviewed changes

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

File Description
app/triggers/providers/dockercompose/Dockercompose.ts Added three new helper functions for digest handling, enhanced getServiceKey matching logic to compare images without digests, and modified mapCurrentVersionToUpdateVersion to preserve digest pinning when updating compose files
app/triggers/providers/dockercompose/Dockercompose.test.ts Added comprehensive test coverage for digest-pinned compose file updates, including a test matrix covering all combinations of update types and compose image formats
Comments suppressed due to low confidence (1)

app/triggers/providers/dockercompose/Dockercompose.ts:524

  • While the current logic prevents updateImage from being undefined when reaching line 524, consider adding an explicit null check or a comment explaining why this scenario cannot occur. This would make the code more defensive and easier to maintain, especially since buildUpdatedComposeImage can return { image: undefined, ... } in some cases.
    const updateImage = digestAwareUpdate.image;

    if (currentImage.includes('@') && !digestAwareUpdate.keptPinned) {
      this.log.warn(
        `Skip update for service ${serviceKeyToUpdate} (container ${container.name}) because compose image is digest-pinned and no replacement digest is available`,
      );
      return undefined;
    }

    return {
      service: serviceKeyToUpdate,
      current: currentImage,
      update: updateImage,
      currentNormalized: normalizeImplicitLatest(currentImage),
      updateNormalized: normalizeImplicitLatest(updateImage),

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

Comment thread app/triggers/providers/dockercompose/Dockercompose.ts
Comment thread app/triggers/providers/dockercompose/Dockercompose.test.ts
@Crow-Control
Copy link
Copy Markdown
Member Author

@copilot open a new pull request to apply changes based on the comments in this thread

Copy link
Copy Markdown

Copilot AI commented Feb 17, 2026

@Crow-Control I've opened a new pull request, #8, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 3 commits February 17, 2026 23:44
* Initial plan

* Export helper functions and add comprehensive unit tests

Co-authored-by: Crow-Control <7613738+Crow-Control@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Crow-Control <7613738+Crow-Control@users.noreply.github.com>
@Crow-Control Crow-Control changed the title feat: allow for digest-pinned composefiles feat: allow for digest-pinned composefiles and test-coverage fixes Feb 17, 2026
@Crow-Control Crow-Control merged commit 7d0b03a into main Feb 17, 2026
4 checks passed
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.

4 participants