Copilot commented on code in PR #3189:
URL: 
https://github.com/apache/incubator-kie-optaplanner/pull/3189#discussion_r2660550628


##########
.github/workflows/ci_check_license_headers.yaml:
##########
@@ -33,9 +33,16 @@ jobs:
 
       - name: Download Apache RAT
         run: |
-          curl -LO 
https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.16.1/apache-rat-0.16.1.jar
+          curl -LO 
https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.17/apache-rat-0.17.jar
 
       - name: Run Apache RAT
         run: |
-          java -jar apache-rat-0.16.1.jar -d . -E .rat-excludes | grep "== 
File:" && echo "The files listed above are missing license headers." && exit 1 
|| echo "All files have license headers."
-
+          java -jar apache-rat-0.17.jar -E .rat-excludes -- . > .rat-reports 
2>&1
+          if grep -q "^! Unapproved:" .rat-reports || grep -q "INFO:   
Unapproved:  [1-9]" .rat-reports; then
+            echo "❌ Apache RAT check FAILED - Files with unapproved licenses 
found:"
+            echo ""
+            sed -n '/Files with unapproved licenses/,/^\*\*\*\*\*/p' 
.rat-reports | grep -v "^\*\*\*\*\*"

Review Comment:
   The sed command extracts content between "Files with unapproved licenses" 
and asterisks, but this assumes a specific output format from Apache RAT 0.17. 
If the output format has changed from version 0.16.1, this pattern might not 
match, causing the check to silently pass even when there are unapproved files. 
Additionally, the pattern is fragile: if RAT outputs any line with five or more 
asterisks before the actual section marker, the extraction will stop 
prematurely. Consider verifying this output format matches Apache RAT 0.17's 
actual output.
   ```suggestion
               # Print detailed information about unapproved files without 
relying on fragile section delimiters
               grep "^! Unapproved:" .rat-reports || true
               grep "INFO:   Unapproved:  [1-9]" .rat-reports || true
   ```



##########
.github/workflows/ci_check_license_headers.yaml:
##########
@@ -33,9 +33,16 @@ jobs:
 
       - name: Download Apache RAT
         run: |
-          curl -LO 
https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.16.1/apache-rat-0.16.1.jar
+          curl -LO 
https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.17/apache-rat-0.17.jar
 
       - name: Run Apache RAT
         run: |
-          java -jar apache-rat-0.16.1.jar -d . -E .rat-excludes | grep "== 
File:" && echo "The files listed above are missing license headers." && exit 1 
|| echo "All files have license headers."
-
+          java -jar apache-rat-0.17.jar -E .rat-excludes -- . > .rat-reports 
2>&1
+          if grep -q "^! Unapproved:" .rat-reports || grep -q "INFO:   
Unapproved:  [1-9]" .rat-reports; then

Review Comment:
   The grep pattern "INFO:   Unapproved:  [1-9]" has a critical flaw: it 
requires exactly two spaces between "Unapproved:" and the digit. If Apache RAT 
0.17 outputs a different number of spaces (e.g., single space or variable 
spacing based on number alignment), this pattern will fail to detect unapproved 
files. Consider using a more flexible pattern like "INFO:.*Unapproved:[ 
]+[1-9]" or verify the exact output format from Apache RAT 0.17 to ensure this 
pattern matches correctly.
   ```suggestion
             if grep -q "^! Unapproved:" .rat-reports || grep -Eq 
"INFO:.*Unapproved:[ ]+[1-9]" .rat-reports; then
   ```



##########
.github/workflows/ci_check_license_headers.yaml:
##########
@@ -33,9 +33,16 @@ jobs:
 
       - name: Download Apache RAT
         run: |
-          curl -LO 
https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.16.1/apache-rat-0.16.1.jar
+          curl -LO 
https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.17/apache-rat-0.17.jar
 
       - name: Run Apache RAT
         run: |
-          java -jar apache-rat-0.16.1.jar -d . -E .rat-excludes | grep "== 
File:" && echo "The files listed above are missing license headers." && exit 1 
|| echo "All files have license headers."
-
+          java -jar apache-rat-0.17.jar -E .rat-excludes -- . > .rat-reports 
2>&1
+          if grep -q "^! Unapproved:" .rat-reports || grep -q "INFO:   
Unapproved:  [1-9]" .rat-reports; then

Review Comment:
   The grep patterns on line 41 check for two different formats. However, if 
neither pattern matches (because Apache RAT 0.17 uses a different output format 
than expected), the condition will evaluate to false and the workflow will 
report success even when there are unapproved licenses. Consider adding 
validation to ensure the RAT command executed successfully and produced 
expected output before checking for failures.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to