Merge 7.1.x Forge AWS into 7.2.x - #16239
Conversation
chore: merge 7.0.16->7.0.x; bump to 7.0.17-SNAPSHOT
chore: merge 7.1.6->7.1.x; bump to 7.1.7-SNAPSHOT
* Honor configured Forge redirect URL Handle absent redirect values without throwing and cover configured and null binding behavior. Assisted-by: opencode:gpt-5.6-sol * Package Forge for Elastic Beanstalk Build a reproducible Java SE source bundle with normalized nested and outer archives. Assisted-by: opencode:gpt-5.6-sol * Add Forge Elastic Beanstalk infrastructure Define shared ALB, IAM, secrets, artifact lifecycle, five parameterized environments, and optional Route 53 resources. Assisted-by: opencode:gpt-5.6-sol cfn-lint * Add Forge AWS deployment workflow Deploy one Forge slot through OIDC with immutable versions, bounded health polling, ALB-pinned smoke checks, and rollback. Assisted-by: opencode:gpt-5.6-sol * Document Forge AWS migration checkpoint Replace obsolete GCP setup guidance with the AWS runbook and preserve the intentionally local restart handoff. Assisted-by: opencode:gpt-5.6-sol * Remove unused Forge GitHub create and OAuth integration The start.grails.org UI removed Push to GitHub (grails-forge-ui#61). Delete the unused server-side create/OAuth/push stack, related config, JGit dependency, native-image metadata, and deployment secrets so the API no longer accepts GitHub OAuth create flows. Keep generated-app GitHub Actions workflow features and the browser redirect URL used by the Forge UI. Also fix setRedirectUrl so GITHUB_REDIRECT_URL actually overrides the default, and purge retired OAuth env vars from Cloud Run on deploy. Assisted-by: Sisyphus:xai/grok-4.5 * Align Forge AWS stacks with OAuth removal and Corretto 25 Drop the retired GitHub OAuth CloudFormation parameters, Secrets Manager IAM, and Elastic Beanstalk environment properties. Keep GITHUB_REDIRECT_URL as the browser redirect to the Forge UI. Target Corretto 25 for Grails 7 and Grails 8. * Drop Forge AWS WIP handoff and grant instance S3 reads Remove the branch-local handoff document before the 7.0.x pull request. Allow Elastic Beanstalk instances to GetObject from the custom artifact bucket so source-bundle downloads are not limited to elasticbeanstalk-* paths. * Add ASF license headers and Forge AWS lifecycle IAM Give nginx proxy.conf and the infrastructure README recognized Apache headers. Exclude the Elastic Beanstalk Procfile from RAT because it cannot contain comments. Allow the service role to delete expired application versions. * Use HTTPS in the Forge nginx proxy license header checkstyleNohttp failed on grails-forge-web-netty because the Apache license URL in proxy.conf used http. Match start.sh and use https.
Merge 7.0.x Forge AWS into 7.1.x
There was a problem hiding this comment.
Pull request overview
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Merges the 7.1.x AWS Elastic Beanstalk deployment work into the 7.2.x line by adding CloudFormation templates + an AWS deployment workflow, while removing the legacy “Push to GitHub” OAuth/JGit integration and aligning configs/docs accordingly.
Changes:
- Add CloudFormation templates (shared + per-slot environment + optional DNS) and accompanying deployment/runbook docs for Elastic Beanstalk.
- Add Gradle packaging for an Elastic Beanstalk source bundle (ZIP with
app.jar,Procfile,start.sh,.platform). - Remove GitHub OAuth / API v3 client + JGit-based push functionality and update configs/workflows/tests to match.
Reviewed changes
Copilot reviewed 46 out of 46 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| grails-forge/infrastructure/shared.yaml | Adds shared AWS resources: ALB, EB app, roles, artifact bucket, exports. |
| grails-forge/infrastructure/environment.yaml | Adds per-slot EB environment behind shared ALB with required option settings. |
| grails-forge/infrastructure/dns.yaml | Adds optional Route 53 alias records (future use). |
| grails-forge/infrastructure/README.md | Documents manual CloudFormation deployment steps and current DNS approach. |
| grails-forge/grails-forge-web-netty/src/main/resources/application.yml | Removes GitHub OAuth/http service config; keeps only redirect URL. |
| grails-forge/grails-forge-web-netty/src/main/resources/META-INF/native-image/.../resource-config.json | Removes JGit bundle entries from native-image resources config. |
| grails-forge/grails-forge-web-netty/src/main/resources/META-INF/native-image/.../reflect-config.json | Deletes JGit-related native-image reflection config. |
| grails-forge/grails-forge-web-netty/build.gradle | Adds reproducible shadowJar settings and an EB ZIP packaging task. |
| grails-forge/grails-forge-web-netty/aws/start.sh | Adds EB start script running the jar on port 5000 with aws env. |
| grails-forge/grails-forge-web-netty/aws/Procfile | Adds EB Procfile to launch start.sh. |
| grails-forge/grails-forge-web-netty/aws/.platform/nginx/conf.d/proxy.conf | Adds nginx proxy tuning for EB. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/util/GitHubUtil.java | Removes JGit-based push utility. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubWorkflowRuns.java | Removes GitHub API v3 DTO. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubWorkflowRun.java | Removes GitHub API v3 DTO. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubUser.java | Removes GitHub API v3 DTO. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubSecretsPublicKey.java | Replaces file contents (currently malformed; see review comments). |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubSecret.java | Removes GitHub API v3 DTO. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubRepository.java | Removes GitHub API v3 DTO. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubApiOperations.java | Removes GitHub API v3 operations interface. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubApiClient.java | Removes GitHub API v3 Micronaut client. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/GitHubOAuthOperations.java | Removes GitHub OAuth operations interface. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/GitHubOAuthClient.java | Removes GitHub OAuth Micronaut client. |
| grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/AccessToken.java | Removes GitHub OAuth DTO. |
| grails-forge/grails-forge-core/build.gradle | Removes JGit dependency. |
| grails-forge/grails-forge-api/src/test/resources/logback.xml | Drops GitHub create logger entry. |
| grails-forge/grails-forge-api/src/test/groovy/.../GitHubOauthMockedController.groovy | Removes GitHub OAuth mocked controller test. |
| grails-forge/grails-forge-api/src/test/groovy/.../GitHubCreateControllerSpec.groovy | Removes GitHub create controller spec. |
| grails-forge/grails-forge-api/src/test/groovy/.../GitHubApiMockedController.groovy | Removes GitHub API mocked controller test. |
| grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/ApplicationControllerSpec.groovy | Adds redirect URL configuration assertions. |
| grails-forge/grails-forge-api/src/main/resources/META-INF/native-image/.../native-image.properties | Removes JGit native-image args. |
| grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubRedirectService.java | Removes GitHub redirect service. |
| grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateService.java | Removes GitHub create service. |
| grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateOperation.java | Removes GitHub create API interface. |
| grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateDTO.java | Removes GitHub create DTO. |
| grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateController.java | Removes GitHub create controller. |
| grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/GrailsForgeConfiguration.java | Fixes redirect URI handling and null/ignore behavior; removes nested GitHub config. |
| grails-forge/gradle.properties | Removes jgitVersion. |
| grails-forge/docs/aws-elastic-beanstalk.md | Adds a detailed AWS EB deployment runbook. |
| grails-forge/README.md | Replaces Cloud Run deployment docs with AWS EB migration summary + runbook link. |
| gradle/rat-root-config.gradle | Excludes EB Procfile from RAT due to comment constraints. |
| .github/workflows/forge-deploy-snapshot.yml | Removes GitHub OAuth env vars from Cloud Run deployment step. |
| .github/workflows/forge-deploy-release.yml | Removes GitHub OAuth env vars from Cloud Run deployment steps. |
| .github/workflows/forge-deploy-prev.yml | Removes GitHub OAuth env vars from Cloud Run deployment step. |
| .github/workflows/forge-deploy-prev-snapshot.yml | Removes GitHub OAuth env vars from Cloud Run deployment step. |
| .github/workflows/forge-deploy-next.yml | Removes GitHub OAuth env vars from Cloud Run deployment step. |
| .github/workflows/forge-deploy-aws.yml | Adds workflow_dispatch-driven AWS EB deploy via OIDC, packaging, update, smoke test, rollback. |
Suppressed comments (1)
grails-forge/grails-forge-web-netty/build.gradle:1
- In a Gradle Groovy script,
importstatements must appear before other top-level statements. Placingimport ...ShadowJarafter theplugins {}block can cause the build script to fail to compile. Move the import to the very top of the file (aboveplugins {}), or remove the import and reference the type via its fully-qualified name when callingtasks.named.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| source_ref: | ||
| description: 'Git branch or tag to build. Leave empty to build the workflow ref.' | ||
| required: false | ||
| type: string |
| RELEASE: ${{ inputs.release }} | ||
| SHARED_STACK: ${{ inputs.shared_stack }} | ||
| SLOT: ${{ inputs.slot }} | ||
| SOURCE_REF: ${{ inputs.source_ref || github.ref_name }} |
| if [[ "${SOURCE_REF}" =~ ^[0-9]+\.[0-9]+\.x$ ]]; then | ||
| exit 0 | ||
| fi | ||
| if [[ "${SOURCE_REF}" =~ ^v[0-9][A-Za-z0-9._-]*$ ]]; then | ||
| exit 0 | ||
| fi | ||
| echo "source_ref must be a maintenance branch such as 7.1.x or a tag such as v7.1.6." >&2 | ||
| exit 1 |
Description
Merge
7.1.xForge AWS Elastic Beanstalk work into7.2.x.Keeps
7.2.4-SNAPSHOT. No per-line AWS workflow edits:source_refplusjavaVersionfromgradle.properties, OIDC*.x/v*.