@@ -90,20 +90,24 @@ run_reviewdog() {
9090
9191generate_git_diff () {
9292 if [ -n " $GITHUB_BASE_SHA " ] && [ -n " $GITHUB_HEAD_SHA " ]; then
93- git fetch origin " $GITHUB_BASE_SHA " --depth=1 > /dev/null 2>&1 || true
94- git fetch origin " $GITHUB_HEAD_SHA " --depth=1 > /dev/null 2>&1 || true
95- git diff -U0 " $GITHUB_BASE_SHA " " $GITHUB_HEAD_SHA " -- ' *.groovy'
93+ if git cat-file -e " $GITHUB_BASE_SHA " 2> /dev/null && git cat-file -e " $GITHUB_HEAD_SHA " 2> /dev/null; then
94+ git diff -U0 " $GITHUB_BASE_SHA " " $GITHUB_HEAD_SHA " -- ' *.groovy' 2>&1
95+ else
96+ git fetch origin " $GITHUB_BASE_SHA " --depth=1 2>&1 || true
97+ git fetch origin " $GITHUB_HEAD_SHA " --depth=1 2>&1 || true
98+ git diff -U0 " $GITHUB_BASE_SHA " " $GITHUB_HEAD_SHA " -- ' *.groovy' 2>&1
99+ fi
96100 else
97- git diff -U0 HEAD~1 -- ' *.groovy'
101+ git diff -U0 HEAD~1 -- ' *.groovy' 2>&1
98102 fi
99103}
100104
101105build_changed_lines_cache () {
102106 true > " $CHANGED_FILES_CACHE "
103107 true > " $CHANGED_LINES_CACHE "
104108
105- generate_git_diff > " $ALL_DIFF " 2> /dev/null || return
106- [ ! -s " $ALL_DIFF " ] && return
109+ generate_git_diff > " $ALL_DIFF " 2>&1
110+ [ ! -s " $ALL_DIFF " ] && return 1
107111
108112 awk '
109113 BEGIN { file = ""; line_num = 0 }
@@ -185,12 +189,9 @@ check_blocking_rules() {
185189
186190 echo " "
187191 echo " ⚠️ Analisando se as P1s estão em linhas alteradas..."
188- build_changed_lines_cache
189-
190- if [ ! -s " $ALL_DIFF " ]; then
191- echo " "
192- echo " ⚠️ Diff vazio: Sem informações de linhas alteradas. Todas as P1s são consideradas bloqueantes."
193- echo " 💡 Corrija as violações ou use um bypass autorizado."
192+
193+ if ! build_changed_lines_cache || [ ! -s " $ALL_DIFF " ]; then
194+ echo " ❌ Não foi possível gerar diff. Todas as P1s serão consideradas bloqueantes."
194195 exit 1
195196 fi
196197
0 commit comments