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]