renovatebot/renovate

Copier manager doesn't set `isExecutable` on added/modified files

開放

#42,239 建立於 2026年3月30日

 (0 則留言) (0 個反應) (0 位負責人)TypeScript (1,916 個分叉)batch import
help wantedmanager:copierpriority-3-medium

倉庫指標

星標
 (14,066 顆星)
PR 合併指標
 (平均合併 2天 23小時) (30 天內合併 339 個 PR)

描述

As noted in https://github.com/renovatebot/renovate/discussions/41438, when we're not making sure that the isExecutable flag in https://github.com/renovatebot/renovate/blob/42ee883ab854a5be7f86309858014e55fc5ee62b/lib/util/git/types.ts#L63 is set.

For instance, using the minimal repro:

% copier --version
copier 9.14.0
% copier update --skip-answered --defaults --answers-file .copier-answers.yml --vcs-ref v1.1.0
Updating to template version 1.1.0
jamietanna@caerbannog .venv tmp 41438 (git)-[main]* % gst
## main...origin/main
 M .copier-answers.yml
?? bin/
jamietanna@caerbannog .venv tmp 41438 (git)-[main]* % ls bin
deploy.sh
jamietanna@caerbannog .venv tmp 41438 (git)-[main]* % ls -al bin
total 4
drwxr-xr-x 3 jamietanna staff  96 Mar 30 09:45 .
drwxr-xr-x 8 jamietanna staff 256 Mar 30 09:45 ..
-rwxr-xr-x 1 jamietanna staff  48 Mar 30 09:45 deploy.sh

This does correctly copy an executable file, but when Renovate commits it does not set the isExecutable flag.

We need to correctly identify this, and then set it.

貢獻者指南