Skip to content

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

Open
srtaalej wants to merge 1 commit into
mwbrooks-2-way-manifest-syncfrom
ale-manifest-force-remote
Open

feat: add --force-remote flag to manifest sync#617
srtaalej wants to merge 1 commit 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 71.98%. Comparing base (be0f881) to head (4849b44).

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                         71.95%   71.98%   +0.02%     
================================================================
  Files                               233      233              
  Lines                             19679    19690      +11     
================================================================
+ Hits                              14161    14173      +12     
+ Misses                             4269     4268       -1     
  Partials                           1249     1249              

☔ 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