feat(gitpush): support force-with-lease push #10

Merged
genji1024 merged 1 commit from 8-feat/gitpush-force-with-lease into main 2026-09-07 22:55:35 +09:00
Collaborator

Closes #8

概要

gitpush-mcp の push に force フラグを追加し、--force-with-lease に対応する。private-note#10 の15コミット squash(b83aa26)を force-push するために必要(c463 指示による実装)。

変更内容

  • dockerfiles/gitpush-mcp/server.py — push(..., force=False) 追加、真のときのみ --force-with-lease

方針(#8 本文どおり):

  • 既定 force=false は従来どおり plain push
  • force=true のみ --force-with-lease --set-upstream
  • --force ではなく --force-with-lease で、リモート想定外進行時の誤上書きを防ぐ
  • permission 変更なし(pusher のみ gitpush_* allow)。force 実行可否はオーナー判断、bot は独断で force しない

動作確認

  • python3 -m py_compile dockerfiles/gitpush-mcp/server.py — 成功
  • 本ブランチ自体を gitpush-mcp plain push で push 成功
  • force=true の実 force-push は、本 PR マージ後の新 gitpush-mcp イメージでのみ検証可能(現稼働イメージは旧コード)。マージ後に private-note#10 の b83aa26 で検証する

手動確認手順

  1. 本 PR マージ後に gitpush-mcp イメージを再ビルド: docker compose -f compose.yaml build gitpush-mcp
  2. docker compose up -d gitpush-mcp で再起動
  3. private-note-fix ローカル(b83aa26)から push(..., force=true) で force-with-lease が通ることを確認
  4. Forgejo 側で migrate/postgres-minio が単一コミットに整理されたことを確認

備考

  • #7(file-push deny)とは独立。本 PR は #8 のみ閉じる
  • トークン scrub・askpass 認証は既存維持
Closes #8 ## 概要 gitpush-mcp の `push` に `force` フラグを追加し、`--force-with-lease` に対応する。private-note#10 の15コミット squash(`b83aa26`)を force-push するために必要(c463 指示による実装)。 ## 変更内容 - `dockerfiles/gitpush-mcp/server.py` — `push(..., force=False)` 追加、真のときのみ `--force-with-lease` 方針(#8 本文どおり): - 既定 `force=false` は従来どおり plain push - `force=true` のみ `--force-with-lease --set-upstream` - `--force` ではなく `--force-with-lease` で、リモート想定外進行時の誤上書きを防ぐ - permission 変更なし(pusher のみ `gitpush_*` allow)。force 実行可否はオーナー判断、bot は独断で force しない ## 動作確認 - [x] `python3 -m py_compile dockerfiles/gitpush-mcp/server.py` — 成功 - [x] 本ブランチ自体を gitpush-mcp plain push で push 成功 - [ ] `force=true` の実 force-push は、本 PR マージ後の新 gitpush-mcp イメージでのみ検証可能(現稼働イメージは旧コード)。マージ後に private-note#10 の `b83aa26` で検証する ## 手動確認手順 1. 本 PR マージ後に gitpush-mcp イメージを再ビルド: `docker compose -f compose.yaml build gitpush-mcp` 2. `docker compose up -d gitpush-mcp` で再起動 3. private-note-fix ローカル(`b83aa26`)から `push(..., force=true)` で force-with-lease が通ることを確認 4. Forgejo 側で `migrate/postgres-minio` が単一コミットに整理されたことを確認 ## 備考 - #7(file-push deny)とは独立。本 PR は #8 のみ閉じる - トークン scrub・askpass 認証は既存維持
- Add force flag to push tool for history cleanup
  - add force bool param default False keeps plain push
  - use force-with-lease only to avoid clobbering remote
  - keep token scrub and askpass auth unchanged
genji1024 approved these changes 2026-09-07 22:54:47 +09:00
genji1024 left a comment

LGTM!

LGTM!
genji1024 deleted branch 8-feat/gitpush-force-with-lease 2026-09-07 22:55:35 +09:00
Sign in to join this conversation.
No reviewers
No labels
enhancement
No milestone
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
genji1024/containerized-agents!10
No description provided.