-
Notifications
You must be signed in to change notification settings - Fork 1
chore: add Github live sync integration tests #542
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 5 commits
41192cf
3e4d64e
2d3b7d0
c53085a
39cc6dc
18601e2
16d9a9f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -35,7 +35,8 @@ | |
| <!-- Test Configuration --> | ||
| <maven.test.failure.ignore>false</maven.test.failure.ignore> | ||
| <maven.test.skip>false</maven.test.skip> | ||
| <hephaestus.surefire.timeout>60</hephaestus.surefire.timeout> | ||
| <hephaestus.surefire.timeout>180</hephaestus.surefire.timeout> | ||
| <hephaestus.githubIntegrationExcludedGroups>github-integration</hephaestus.githubIntegrationExcludedGroups> | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chainVerify test group exclusion strategy and profile activation semantics. The approach uses a property-driven exclusion model:
However, the integration is unclear:
Please verify:
Run the following to verify test tagging and the profile setup: Also applies to: 438-438, 562-572 🏁 Script executed: #!/bin/bash
# Description: Verify GitHub integration tests are tagged correctly and profile activation works
# Find all test files under gitprovider/github/
echo "=== GitHub integration test files ==="
find server/application-server/src/test/java -path '*/github/*' -name '*Test.java' -o -name '*IntegrationTest.java' | head -20
# Check for @Tag("github-integration") annotations in these files
echo "=== Checking for @Tag(\"github-integration\") annotations ==="
rg -n '@Tag\s*\(\s*["\x27]github-integration["\x27]\s*\)' server/application-server/src/test/java/de/tum/in/www1/hephaestus/gitprovider/github/
# Verify that integration test files exist and check their structure
echo "=== Sample of integration test classes ==="
find server/application-server/src/test/java -path '*/github/*' -name '*IntegrationTest.java' -exec head -30 {} \; | head -60Length of output: 6291 I need to verify the inheritance model for the @tag annotation and check the pom.xml profile configuration more closely. Now I need to check the pom.xml configuration to understand the profile setup and the Surefire/Failsafe configuration more clearly. 🏁 Script executed: #!/bin/bash
# Extract pom.xml sections around the mentioned lines for analysis
echo "=== Maven profiles section (around line 438) ==="
sed -n '430,450p' server/application-server/pom.xml
echo ""
echo "=== Maven profiles section (around line 562-572) ==="
sed -n '555,580p' server/application-server/pom.xml
echo ""
echo "=== Search for profile 'github-integration-tests' ==="
rg -n -A15 'github-integration-tests' server/application-server/pom.xmlLength of output: 2479 Now I need to check the JUnit 5 version in use and verify the test inheritance chain: Now I need to check the inheritance chain and JUnit version to understand the complete picture: 🏁 Script executed: #!/bin/bash
# Check JUnit version and test inheritance chain
echo "=== JUnit Jupiter version in pom.xml ==="
rg -n 'junit-jupiter-api|junit-jupiter-engine' server/application-server/pom.xml | head -5
echo ""
echo "=== BaseGitHubIntegrationTest source ==="
cat server/application-server/src/test/java/de/tum/in/www1/hephaestus/gitprovider/github/BaseGitHubIntegrationTest.java
echo ""
echo "=== BaseIntegrationTest source (first 40 lines) ==="
find server/application-server/src/test/java -name 'BaseIntegrationTest.java' -exec head -40 {} \;Length of output: 6278 Confirm tagging issue: GitHub integration tests are NOT properly tagged for exclusion. The concrete GitHub integration test classes (GitHubInstallationMessageHandlerIntegrationTest, GitHubIssueMessageHandlerIntegrationTest, etc.) extend Since Surefire's default The inheritance structure should be:
Or each concrete test must carry an explicit 🤖 Prompt for AI Agents |
||
|
|
||
| <!-- Coverage Configuration (disabled by default) --> | ||
| <skipCoverage>true</skipCoverage> | ||
|
|
@@ -433,7 +434,8 @@ | |
| <skipAfterFailureCount>5</skipAfterFailureCount> | ||
| <!-- Forked JVM timeout settings to prevent hanging --> | ||
| <forkedProcessTimeoutInSeconds>${hephaestus.surefire.timeout}</forkedProcessTimeoutInSeconds> | ||
| <forkedProcessExitTimeoutInSeconds>10</forkedProcessExitTimeoutInSeconds> | ||
| <forkedProcessExitTimeoutInSeconds>60</forkedProcessExitTimeoutInSeconds> | ||
| <excludedGroups>${hephaestus.githubIntegrationExcludedGroups}</excludedGroups> | ||
| </configuration> | ||
| </plugin> | ||
|
|
||
|
|
@@ -557,5 +559,11 @@ | |
| <hephaestus.surefire.timeout>180</hephaestus.surefire.timeout> | ||
| </properties> | ||
| </profile> | ||
| <profile> | ||
| <id>github-integration-tests</id> | ||
| <properties> | ||
| <hephaestus.githubIntegrationExcludedGroups></hephaestus.githubIntegrationExcludedGroups> | ||
| </properties> | ||
| </profile> | ||
| </profiles> | ||
| </project> | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Verify configuration property names match implementation.
The section references an inline
github.app.privateKeyproperty andprivateKeyLocation. Confirm these property names match the actual application configuration schema and that the documentation accurately reflects supported configuration options.🏁 Script executed:
Length of output: 5687
Update documentation to use the correct property name
github.app.privateKeyLocation.The documentation references
privateKeyLocation, but the actual configuration property isgithub.app.privateKeyLocation. Update line 117 to use the full qualified property name for consistency with the inlinegithub.app.privateKeyreference.🧰 Tools
🪛 LanguageTool
[uncategorized] ~117-~117: The official name of this software platform is spelled with a capital “H”.
Context: ...ation id, and either an inline PEM key (
github.app.privateKey) or a readable `private...(GITHUB)
🤖 Prompt for AI Agents