Skip to content

chore: migrate ownership and fix PHP 8.0 CI [AIS-591] - #202

Merged
Jared Jolton (jjolton-contentful) merged 7 commits into
masterfrom
migrate/ecosystem-to-applied-ai-solutions
Sep 17, 2026
Merged

Jared Jolton (jjolton-contentful) merged 7 commits into
masterfrom
migrate/ecosystem-to-applied-ai-solutions

Conversation

@jjolton-contentful

@jjolton-contentful Jared Jolton (jjolton-contentful) commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Updates ownership references to @contentful/group-applied-ai-solutions in CODEOWNERS and catalog-info.yaml.

Fixes PHP 8.0 CI: php:8.0 Bullseye devcontainer builds were failing on live deb.debian.org security mirror 404s. The official image ships pinned snapshot.debian.org sources (commented out) — we enable those with Acquire::Check-Valid-Until=false and restore the full test matrix.

Follow-up

Formal PHP 8.0 drop (5.0.0) is still worth doing eventually — this snapshot workaround is tied to the current php:8.0 image format; a retagged image without sources.list snapshot lines would silently skip the fix and CI would break again.

Test plan

  • CODEOWNERS validation on this PR (automatic)
  • CI passes including Test (PHP 8.0)

Summary by Bito

This change documents the reason the devcontainer Dockerfile accounts for PHP 8.0 Bullseye images and their pinned Debian snapshot repository. The modification is limited to an explanatory comment and does not alter build or CI behavior.

Detailed Changes
  • Documents in Dockerfile that live Debian security mirrors can return 404 errors for PHP 8.0 Bullseye images, clarifying the rationale for the existing snapshot-repository branch.
  • Clarifies that the snapshot handling is tied to the PHP 8.0 Bullseye image context without changing the Dockerfile's package installation or fallback behavior.

@bito-code-review

bito-code-review Bot commented Sep 15, 2026 •

Copy link
Copy Markdown

Code Review Agent Run #6f0a95

Actionable Suggestions - 0
Review Details
  • Files reviewed - 2 · Commit Range: 730b43b..730b43b
    • .github/CODEOWNERS
    • catalog-info.yaml
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Default Agent You can customize the agent settings here or contact your Bito workspace admin at jared.jolton@contentful.com.

Documentation & Help

AI Code Review powered by Bito Logo

@bito-code-review

bito-code-review Bot commented Sep 15, 2026 •

Copy link
Copy Markdown

Changelist by Bito

This pull request implements the following key changes.

Key Change Files Impacted Summary
Documentation - PHP 8.0 Bullseye Snapshot Workaround Documentation
Adds an explanatory comment documenting that PHP 8.0 Bullseye images may encounter 404 errors from live Debian security mirrors and should use the image-provided pinned snapshot repository.

@bito-code-review

bito-code-review Bot commented Sep 15, 2026 •

Copy link
Copy Markdown

Functional Validation by Bito

SourceRequirement / Code AreaStatusNotes
AIS-591Preserve untouched CODEOWNERS lines and avoid whitespace-only changes during the ownership transformation.✅ MetThe ownership transformation changes only the existing CODEOWNERS entry in .github/CODEOWNERS and does not introduce whitespace-only churn or alter other CODEOWNERS lines.
AIS-591Migrate ownership in all grant-ready repositories that have not already been migrated through taste tests.🟡 PartialThe diff migrates ownership for this repository by changing the default owner in .github/CODEOWNERS to @contentful/group-applied-ai-solutions and updating the catalog owner in catalog-info.yaml. However, the diff covers only one repository and does not provide evidence that all grant-ready repositories not already migrated through taste tests were handled.
AIS-591Apply AWS TFC tag-only plans resulting from catalog owner changes for each component repository.🟡 Partial[Non-Diff Requirement] catalog-info.yaml contains the catalog owner change, but the diff provides no verifiable evidence that the associated AWS TFC tag-only plan was applied for this component repository.
DockerfileAdded snapshot-aware Debian APT mirror handling and reformatted the installation command chain in .devcontainer/Dockerfile. This environment setup change is not covered by the Jira requirements.⭕ Out of ScopeAdded snapshot-aware Debian APT mirror handling and reformatted the installation command chain in .devcontainer/Dockerfile. This environment setup change is not covered by the Jira requirements.

@bito-code-review

bito-code-review Bot commented Sep 15, 2026 •

Copy link
Copy Markdown

Impact Analysis by Bito

Interaction Diagram
sequenceDiagram
participant Dev as Developer
participant CI as GitHub Actions CI
participant Docker as .devcontainer/Dockerfile<br/>🔄 Updated | ●●● High
participant Apt as Debian Apt Sources
participant PHP as PHP CLI Devcontainer
participant Composer as Composer and PHP Tooling
participant Owners as .github/CODEOWNERS<br/>🔄 Updated | ●●○ Medium
participant Catalog as catalog-info.yaml<br/>🔄 Updated | ●●○ Medium
participant Team as 🔗 Applied AI Solutions Group
Dev->>CI: Push branch and start validation workflows
CI->>Docker: Build devcontainer with PHP_VERSION
Docker->>Apt: Inspect configured Debian repositories
alt [Bullseye snapshot repository detected]
Docker->>Apt: Enable snapshot mirror and disable live mirror
Docker->>Apt: Update with Check-Valid-Until disabled
Apt-->>Docker: Return package indexes from snapshot
else [standard repository detected]
Docker->>Apt: Run standard apt-get update
Apt-->>Docker: Return current package indexes
    end
Docker->>PHP: Install extensions and create vscode user
Docker->>Composer: Install Composer and configure safe directory
Composer-->>PHP: Provide dependency and analysis tooling
CI->>PHP: Execute lint tests static analysis and PHPUnit
CI->>Owners: Resolve review ownership for changed files
Owners-->>Team: Route review request to applied AI solutions
CI->>Catalog: Read component ownership metadata
Catalog-->>Team: Associate component with owning group
PHP-->>CI: Return validation results
CI-->>Dev: Report build and test status
Loading

This MR updates the devcontainer build path to support PHP 8.0 Bullseye images through conditional Debian snapshot repository handling, while changing CODEOWNERS and Backstage catalog ownership to the Applied AI Solutions group. The main journey is developer or CI environment creation followed by Composer-based validation, with infrastructure configuration and repository metadata acting as the key architectural layers. Cross-repo scans found JavaScript SDK consumers such as agents-api and create-contentful-app, but no direct PHP SDK dependency change or runtime contract impact for them.

Cross-Repository Impact Analysis
What Changed Impact of Change Suggested Review Actions
The repository-wide CODEOWNERS entry changed from @contentful/team-developer-experience to @contentful/group-applied-ai-solutions. - No cross-repository consumers found for @contentful/team-developer-experience: The organization-wide indexed search returned no references to the removed GitHub team name. CODEOWNERS affects GitHub review routing rather than runtime library consumers. - Confirm that group-applied-ai-solutions is the intended GitHub team and has repository access.
- Open a test pull request or validate repository settings to confirm the new team is automatically requested as a reviewer.
The Backstage catalog owner changed from group:team-developer-experience to group:group-applied-ai-solutions. - No cross-repository consumers found for owner: group:team-developer-experience: The organization-wide indexed search returned no references to the removed Backstage owner value. The change affects catalog ownership and escalation metadata, not the PHP SDK API or runtime behavior. - Verify that group:group-applied-ai-solutions is a valid Backstage group and that catalog ingestion succeeds.
- Check that ownership-based dashboards, escalation routes, and support documentation resolve the new group correctly.
Code Paths Analyzed

Impact:
The change is operational and repository-metadata focused. The devcontainer build now conditionally switches Debian Bullseye-based PHP images to a snapshot mirror when the image already contains a snapshot source, while preserving the existing package and PHP extension installation flow. CODEOWNERS and Backstage ownership are transferred to group-applied-ai-solutions. No application PHP source, Composer dependency, public SDK API, serialization format, or database contract changed.

Flow:
PHP_VERSION build argument → php:${PHP_VERSION}-cli base image → detect snapshot.debian.org in /etc/apt/sources.list → optionally rewrite Debian sources and disable Valid-Until checks → apt-get update → install build dependencies → install PHP extensions → install Composer. Separately, .github/CODEOWNERS controls GitHub reviewer assignment and catalog-info.yaml controls Backstage component ownership.

Direct Changes (Diff Files):
• .devcontainer/Dockerfile [1-34] — Reworked the single Docker RUN instruction into a fail-fast shell block that conditionally enables the Debian snapshot mirror, disables live Debian mirrors when applicable, uses Acquire::Check-Valid-Until=false for snapshots, and retains user, package, PHP extension, Composer, and cleanup setup.
• .github/CODEOWNERS [1] — Changed the repository-wide GitHub CODEOWNER from @contentful/team-developer-experience to @contentful/group-applied-ai-solutions.
• catalog-info.yaml [15] — Changed the Backstage component owner from group:team-developer-experience to group:group-applied-ai-solutions.

Repository Impact:
• Developer container and CI execution environment: The repository documents that CI jobs use the devcontainer. Changes to apt source handling affect PHP syntax, static analysis, backward-compatibility, and matrix test jobs that build this container.
• Debian package installation: The new branch changes which apt repositories are used and disables repository metadata expiry checks for snapshot repositories.
• GitHub review ownership: All pull requests using CODEOWNERS will request reviewers from a different team.
• Backstage service catalog: Ownership, support routing, and catalog-based reporting will resolve to group-applied-ai-solutions.

Cross-Repository Dependencies:
• Organization-wide GitHub and Backstage ownership tooling: The new ownership group is already referenced by multiple indexed repositories, but those matches represent other repositories' metadata rather than confirmed consumers of this repository's changed files.

Database/Caching Impact:
• None

API Contract Violations:
• None.

Infrastructure Dependencies:
• The Dockerfile depends on the layout and syntax of Debian apt sources in the selected php:${PHP_VERSION}-cli image.
• The workaround only examines /etc/apt/sources.list; images that store repositories in /etc/apt/sources.list.d or deb822 .sources files may not enter the snapshot branch.
• The snapshot branch disables Acquire::Check-Valid-Until, which is operationally necessary for expired snapshot metadata but weakens repository metadata freshness validation.
• The Dockerfile downloads Composer through https://getcomposer.org/installer without pinning the installer or Composer version.
• The CI workflow passes PHP_VERSION values 8.0 through 8.4 into the devcontainer, so the Dockerfile logic should be validated against every matrix base image, not only the default PHP 8.1 image.

Additional Insights:
• Dockerfile comment accuracy: The comment states php:8.0 Bullseye, while the default build argument is PHP_VERSION=8.1 and CI also builds PHP 8.1 through 8.4. The rationale should either be generalized or explicitly scoped to the affected image versions.
• Build reproducibility: Using an image-provided snapshot source preserves the base image's pinned snapshot behavior, but the Dockerfile does not independently pin a snapshot timestamp or package versions.

Testing Recommendations

Frontend Impact:
• None.

Service Integration:
• Build the devcontainer with PHP_VERSION=8.0, 8.1, 8.2, 8.3, and 8.4, matching the CI matrix, and verify that apt update, dependency installation, PHP extension installation, and Composer installation all complete.
• Run the existing devcontainer-backed CI commands after the image build: PHP syntax linting, composer run lint-static-analysis, composer run test-for-bc-breaks, and composer test-quick-fail.
• Test both Docker branches using representative base images: one with a commented snapshot.debian.org source and one using live Debian sources. Confirm that only the former rewrites sources and disables Valid-Until checking.

Data Serialization:
• None.

Privacy Compliance:
• None.

Backward Compatibility:
• Verify that the installed extension set remains unchanged: bcmath, dom, intl, mbstring, soap, xml, and zip.
• Confirm that the vscode user still has UID/GID 1000 and that remoteUser vscode can execute the post-create command and Composer workflows.

OAuth Functionality:
• None

Reliability Testing:
• None

Additional Insights:
• Add a Dockerfile validation or smoke test that inspects apt source files beyond /etc/apt/sources.list if newer Debian base images use deb822 sources under /etc/apt/sources.list.d.
• Validate CODEOWNERS syntax and confirm that @contentful/group-applied-ai-solutions can be resolved and requested by GitHub.
• Run Backstage catalog validation or ingestion against catalog-info.yaml and verify that group:group-applied-ai-solutions exists and is visible.
• Consider updating the Dockerfile comment to describe the actual affected PHP image versions rather than only php:8.0.

Analysis based on known dependency patterns and edges. Actual impact may vary.

@bito-code-review

Copy link
Copy Markdown

✅ Review Settings Overridden

Status: Overridden Successfully

Guidelines:

  • Accepted:

    • General : Review Posture, Repo Truth And Alignment, Domain Invariants

Note: Extra guidelines beyond 3 general purpose guidelines and 1 language specific guideline per language are not processed. Guidelines are fetched from the source branch.

bito-code-review[bot]
bito-code-review Bot previously approved these changes Sep 15, 2026
PHP 8.0 devcontainer builds fail on Debian Bullseye apt 404s for
ICU security packages. PHP 8.0 is EOL; lint/static analysis already
run on 8.1.

Co-authored-by: Cursor <cursoragent@cursor.com>

@bito-code-review bito-code-review Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Agent Run #c28150

Actionable Suggestions - 1
  • .github/workflows/ci.yml - 1
Additional Suggestions - 1
  • .github/workflows/ci.yml - 1
    • CI floor vs composer floor mismatch · Line 73-73
      This removes the only PHP 8.0 test coverage, but `composer.json` still declares `"php": "^8.0"` and AGENTS.md/domain-invariants state the floor is 8.0. The library now advertises 8.0 support it no longer tests, so 8.1+ syntax could slip in and break downstream 8.0 users. Bump the composer floor to `^8.1` (with changelog + doc updates) or keep 8.0 in the matrix.
Review Details
  • Files reviewed - 1 · Commit Range: 730b43b..51a7ac5
    • .github/workflows/ci.yml
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Default Agent You can customize the agent settings here or contact your Bito workspace admin at jared.jolton@contentful.com.

Documentation & Help

AI Code Review powered by Bito Logo

Comment thread .github/workflows/ci.yml Outdated
Align composer.json and docs with the CI matrix after dropping PHP 8.0
(EOL; Bullseye devcontainer builds are broken).

Co-authored-by: Cursor <cursoragent@cursor.com>
@bito-code-review

bito-code-review Bot commented Sep 15, 2026 •

Copy link
Copy Markdown

Code Review Agent Run #0f60f6

Actionable Suggestions - 0
Review Details
  • Files reviewed - 6 · Commit Range: 51a7ac5..ead7ef3
    • AGENTS.md
    • CHANGELOG.md
    • CONTRIBUTING.md
    • README.md
    • composer.json
    • docs/ADRs/0005-devcontainer-for-reproducible-dev-and-ci.md
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Default Agent You can customize the agent settings here or contact your Bito workspace admin at jared.jolton@contentful.com.

Documentation & Help

AI Code Review powered by Bito Logo

Restore composer.json and docs; PHP 8.0 drop belongs in a separate 5.0.0
release per team precedent. CI matrix still omits 8.0 while Bullseye
devcontainer builds are broken.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jjolton-contentful

Copy link
Copy Markdown
Contributor Author

Reverted the composer.json / docs PHP 8.1 bump from this PR — per lisawhite's read, the floor drop should ship as 5.0.0 in a follow-up, not bundled with CODEOWNERS.

This PR now keeps ^8.0 in composer and only drops 8.0 from the CI matrix (with a comment) so Bullseye apt 404s don't block merge.

@bito-code-review

bito-code-review Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

Code Review Agent Run #9baf4d

Actionable Suggestions - 0
Filtered by Review Rules

Bito filtered these suggestions based on rules created automatically for your feedback. Manage rules.

  • CHANGELOG.md - 1
    • Inaccurate changelog entry · Line 9-9
Review Details
  • Files reviewed - 7 · Commit Range: ead7ef3..cdda185
    • .github/workflows/ci.yml
    • AGENTS.md
    • CHANGELOG.md
    • CONTRIBUTING.md
    • README.md
    • composer.json
    • docs/ADRs/0005-devcontainer-for-reproducible-dev-and-ci.md
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Default Agent You can customize the agent settings here or contact your Bito workspace admin at jared.jolton@contentful.com.

Documentation & Help

AI Code Review powered by Bito Logo

bito-code-review[bot]
bito-code-review Bot previously approved these changes Sep 16, 2026
Branch protection still requires Test (PHP 8.0) after removing it from the
matrix. Report a passing no-op job until 5.0.0 drops support formally.

Co-authored-by: Cursor <cursoragent@cursor.com>

@bito-code-review bito-code-review Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Agent Run #7a67cd

Actionable Suggestions - 1
  • .github/workflows/ci.yml - 1
Review Details
  • Files reviewed - 1 · Commit Range: cdda185..2f56c5d
    • .github/workflows/ci.yml
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Default Agent You can customize the agent settings here or contact your Bito workspace admin at jared.jolton@contentful.com.

Documentation & Help

AI Code Review powered by Bito Logo

Comment thread .github/workflows/ci.yml Outdated
php:8.0 Bullseye images 404 on live security mirrors. Enable the image's
pinned snapshot.debian.org sources with Acquire::Check-Valid-Until=false
and restore the full test matrix.

Co-authored-by: Cursor <cursoragent@cursor.com>
@wiz-inc-38d59fb8d7

wiz-inc-38d59fb8d7 Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

Wiz Scan Summary

Scanner Findings
Vulnerability Finding Vulnerabilities -
Data Finding Sensitive Data -
Secret Finding Secrets -
IaC Misconfiguration IaC Misconfigurations 9 Medium
SAST Finding SAST Findings -
Software Management Finding Software Management Findings -
Total 9 Medium

View scan details in Wiz

To detect these findings earlier in the dev lifecycle, try the Wiz Code extension for VS Code, JetBrains, or Visual Studio.

bito-code-review[bot]
bito-code-review Bot previously approved these changes Sep 16, 2026
@bito-code-review

bito-code-review Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

Code Review Agent Run #f41300

Actionable Suggestions - 0
Review Details
  • Files reviewed - 2 · Commit Range: 2f56c5d..0086465
    • .devcontainer/Dockerfile
    • .github/workflows/ci.yml
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Default Agent You can customize the agent settings here or contact your Bito workspace admin at jared.jolton@contentful.com.

Documentation & Help

AI Code Review powered by Bito Logo

Co-authored-by: Cursor <cursoragent@cursor.com>
@jjolton-contentful Jared Jolton (jjolton-contentful) changed the title chore: update CODEOWNERS [AIS-591] chore: migrate ownership and fix PHP 8.0 CI [AIS-591] Sep 16, 2026
@bito-code-review

bito-code-review Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

Code Review Agent Run #01425f

Actionable Suggestions - 0
Review Details
  • Files reviewed - 1 · Commit Range: 0086465..cb9a128
    • .devcontainer/Dockerfile
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Default Agent You can customize the agent settings here or contact your Bito workspace admin at jared.jolton@contentful.com.

Documentation & Help

AI Code Review powered by Bito Logo

@jjolton-contentful
Jared Jolton (jjolton-contentful) merged commit d507181 into master Sep 17, 2026
18 checks passed
@jjolton-contentful
Jared Jolton (jjolton-contentful) deleted the migrate/ecosystem-to-applied-ai-solutions branch September 17, 2026 20:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants