Skip to content

feat: add --force-remote flag to manifest sync - #617

Open
srtaalej wants to merge 3 commits into
mwbrooks-2-way-manifest-syncfrom
ale-manifest-force-remote
Open

feat: add --force-remote flag to manifest sync#617
srtaalej wants to merge 3 commits into
mwbrooks-2-way-manifest-syncfrom
ale-manifest-force-remote

Conversation

@srtaalej

@srtaalej srtaalej commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds --force-remote flag to slack manifest sync that pulls app settings to the local project manifest without prompting
  • Symmetric counterpart to --force (which pushes local → remote)
  • Validates mutual exclusion: using both --force and --force-remote returns a clear error
  • Updates non-TTY remediation message to mention both force options

Context

Follow-up to #543 (two-way manifest sync). That PR's notes call out --force-remote as a planned follow-up for non-interactive "remote wins" workflows — CI pipelines, onboarding devs seeding a local manifest from deployed state, etc.

Test plan

# 1. Create a new project
  ./bin/slack create my-force-remote-test
  # 2. Install the app (creates remote manifest on app settings)
  cd my-force-remote-test
  ../bin/slack install -e manifest-sync
  # 3. Verify sync shows no differences initially
  ../bin/slack manifest sync -e manifest-sync
  1. Make a local change to manifest.json (to create drift) e.g., edit display_information.description in manifest.json
  # 5. Test --force-remote pulls remote values (overwrites your local edit)
  ../bin/slack manifest sync --force-remote -e manifest-sync
  # 6. Test mutual exclusion error
  ../bin/slack manifest sync --force --force-remote -e manifest-sync

For testing remote-side drift (the more interesting case for --force-remote), edit the manifest at https://app.slack.com/app-settings after step 2, then run step 5 — it should pull the remote change into your local manifest.json without prompting.

@srtaalej srtaalej self-assigned this Jul 16, 2026
@srtaalej srtaalej added experiment Experimental feature accessed behind the --experiment flag or toggle semver:minor Use on pull requests to describe the release version increment labels Jul 16, 2026
@codecov

codecov Bot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 83.33333% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.11%. Comparing base (0c1eae1) to head (748326c).

Files with missing lines Patch % Lines
internal/manifest/sync.go 66.66% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@                       Coverage Diff                        @@
##           mwbrooks-2-way-manifest-sync     #617      +/-   ##
================================================================
+ Coverage                         72.09%   72.11%   +0.01%     
================================================================
  Files                               236      236              
  Lines                             19909    19920      +11     
================================================================
+ Hits                              14354    14365      +11     
+ Misses                             4293     4291       -2     
- Partials                           1262     1264       +2     

☔ View full report in Codecov by Harness.
📢 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.

@srtaalej
srtaalej marked this pull request as ready for review July 16, 2026 15:51
@srtaalej
srtaalej requested a review from a team as a code owner July 16, 2026 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

experiment Experimental feature accessed behind the --experiment flag or toggle semver:minor Use on pull requests to describe the release version increment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant