Skip to content

chore(source-github): DO NOT MERGE - pin prerelease SDM 7.39.0.post5.dev39879313492 (airbyte-python-cdk#1248) - #89696

Closed
devin-ai-integration[bot] wants to merge 1 commit into
masterfrom
pnilan/sdm-prerelease-1248-source-github
Closed

devin-ai-integration[bot] wants to merge 1 commit into
masterfrom
pnilan/sdm-prerelease-1248-source-github

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

🤖 This PR was generated by an AI Agent.

DO NOT MERGE. Test-only PR, requested by Patrick Nilan (@pnilan). It pins source-github to the SDM prerelease built from airbyte-python-cdk#1248 so a connector prerelease can be published and tested.

What

Points connectorBuildOptions.baseImage at airbyte/source-declarative-manifest:7.39.0.post5.dev39879313492. That image was built by CDK publish run 39879313492 from devin/1792688475-check-skip-dynamic-streams.

How

  • metadata.yaml:
    • baseImage changes from SDM 7.37.1 to 7.39.0.post5.dev39879313492@sha256:a45420a851310e75d893c93c73e8a353d610bc214788c39384f7bd776b614d7f.
    • dockerImageTag goes from 2.8.0 to 2.8.1.
  • No manifest, changelog or docs change.

Review guide

  1. airbyte-integrations/connectors/source-github/metadata.yaml

User Impact

None. This is never merged. Use /publish-connectors-prerelease to get a 2.8.1-preview.<sha> image for pinning.

The title contains "DO NOT MERGE", so the semantic-title check fails on purpose. Checks that expect a changelog entry may fail too.

Can this PR be safely reverted and rolled back?

  • YES 💚
  • NO ❌

Link to Devin session: https://app.devin.ai/sessions/a359f078a4634bbab6d79afaaf709c17
Open in Devin Desktop: https://app.devin.ai/desktop/session/a359f078a4634bbab6d79afaaf709c17?variant=devin

Important

Active progressive rollout warning for source-github.

  • (Click to Approve:) Bypass the active progressive rollout warning for source-github in the PR comment here.

Important

Autopilot Progressive Rollout Enabled

Autopilot progressive rollouts are enabled for one or more connector(s) modified in this PR. Check the box below if you need to bypass normal rollout safety processes and release to all users immediately upon merge:

  • ⚡ Release immediately (bypasses automatic progressive rollout)

Note:

  • ⚠️ The above bypass option is for emergency/hotfix use only.
  • 🔗 You can monitor or manually advance a rollout at ops.internal.airbyte.ai.

…dev39879313492 (airbyte-python-cdk#1248)

Co-Authored-By: patrick.nilan@airbyte.io <patrick.nilan@airbyte.io>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@github-actions

Copy link
Copy Markdown
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

💡 Show Tips and Tricks

PR Slash Commands

Airbyte Maintainers (that's you!) can execute the following slash commands on your PR:

  • 🛠️ Quick Fixes
    • /format-fix - Fixes most formatting issues.
    • /bump-version - Bumps connector versions, scraping changelog description from the PR title.
      • Bump types: patch (default), minor, major, major_rc, rc, promote.
      • The rc type is a smart default: applies minor_rc if stable, or bumps the RC number if already RC.
      • The promote type strips the RC suffix to finalize a release.
      • Example: /bump-version type=rc or /bump-version type=minor
    • /bump-progressive-rollout-version - Alias for /bump-version type=rc. Bumps with an RC suffix and enables progressive rollout.
  • ❇️ AI Testing and Review (internal link: AI-SDLC Docs):
    • /ai-prove-fix - Runs prerelease readiness checks, including testing against customer connections.
    • /ai-canary-prerelease - Rolls out prerelease to 5-10 connections for canary testing.
    • /ai-review - AI-powered PR review for connector safety and quality gates.
    • /ai-breaking-change-review - Step 1 for a connector breaking change. Reviews whether the change needs to be breaking, destination data-loss risk, and whether the migration guide, metadata message, and docs let users upgrade safely. Opens one conversation on the PR for each item the author needs to handle.
    • /ai-breaking-change-ready - Step 2, after you've replied to and resolved each of those conversations. Checks that every one has a reply and is resolved, then pings the breaking-change reviewers in Slack for human review.
  • 📝 AI Documentation:
    • /ai-docs-review - AI-powered documentation review for PRs with connector changes.
    • /ai-create-docs-pr - Creates a documentation PR for connector changes, stacked on the current PR.
  • 🚀 Connector Releases:
    • /publish-connectors-prerelease - Publishes pre-release connector builds (tagged as {version}-preview.{git-sha}) for all modified connectors in the PR.
    • /enable-autopilot-rollouts - Enables autopilot progressive rollouts for the modified connector(s) in the PR, remediating "autopilot rollouts not enabled for {connector-name}" auto-merge blockers. Sets defaultRolloutMode: autopilot and enableProgressiveRollout: true, preserving any existing autopilotConfig.
      • Optional args: connector=<CONNECTOR_NAME> (defaults to the modified connectors in the PR), strategy=fast|slow|default (defaults to fast).
      • Example: /enable-autopilot-rollouts or /enable-autopilot-rollouts connector=source-faker strategy=slow
  • ☕️ JVM connectors:
    • /update-connector-cdk-version connector=<CONNECTOR_NAME> - Updates the specified connector to the latest CDK version.
      Example: /update-connector-cdk-version connector=destination-bigquery
  • 🐍 Python connectors:
    • /poe connector source-example lock - Run the Poe lock task on the source-example connector, committing the results back to the branch.
    • /poe source example lock - Alias for /poe connector source-example lock.
    • /poe source example use-cdk-branch my/branch - Pin the source-example CDK reference to the branch name specified.
    • /poe source example use-cdk-latest - Update the source-example CDK dependency to the latest available version.
  • ⚙️ Admin commands:
    • /force-merge reason="<REASON>" - Force merges the PR using admin privileges, bypassing CI checks. Requires a reason.
      Example: /force-merge reason="CI is flaky, tests pass locally"
📚 Show Repo Guidance

Helpful Resources

📝 Edit this welcome message.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Detected source-github Active Rollout: true

Important

Active progressive rollout warning for source-github.

To bypass this warning, click on the matching checkbox in the PR description. Look for the checkbox text:

(Click to Approve:) Bypass the active progressive rollout warning for source-github in the PR comment

  • Rollout version: 2.8.0
  • Rollout state: in_progress
  • Rollout last updated by: Airbyte Support Bot <airbyte-support-bot@airbyte.io>
  • Open Connector Rollout Manager in Retool to clean up or close out this rollout if appropriate.

Version on master Branch: 2.8.0

  • RC marker on master branch: false

PR Description Checkbox Status

  • Bypass checkbox checked: false

ℹ️ More Information

Show/hide details...

🤔 What happens if this PR is merged

Checking the checkbox will allow the PR to merge, but it does not necessarily stop the active rollout by itself. The result of the PR merging depends on what connector version is published.

Expected outcomes by type of version number change:

If connector version is not modified in this PR...

No new connector version should be released, and the active rollout should continue unchanged.

If the connector version increments to a higher version...

After this PR is merged, the new version will be published and advertised as this connector's rollout candidate, replacing the current one. An -rc suffix is not required for this: with enableProgressiveRollout, an ordinary version bump becomes the rollout candidate. When it is registered, the platform cancels — not finalizes — any existing non-terminal rollout for this connector, without unpinning actors. Actors pinned to 2.8.0 therefore keep syncing on that old image: they are not rolled back to the previous default version, and the merge itself does not move them to the new candidate.

The new rollout still has to be started before those actors move. With defaultRolloutMode: autopilot, the autopilot cron starts it on its next eligible pass; otherwise a human starts it from Connector Rollout Manager. Starting it migrates the previous rollout's pins onto the new candidate version by default (migratePins), which is what moves those actors forward. Until then, they stay on the old version.

If the connector version changes from RC to non-RC (GA) version...

You should not merge the PR unless/until the RC has been finalized as canceled. See above Rollout state for detected status.

[!Warning]
This PR should not be merged if the RC rollout is still active. First finalize the active rollout as successful or cancel it in Connector Rollout Manager.

When you finalize an RC rollout as successful, the platform triggers a promotion workflow that strips the -rc suffix, removes stable-version registryOverrides, disables progressive rollout, force-merges that promotion, and unpins actors.

🔁 How to rerun this check

To rerun the check, simply check and uncheck the box, or else modify the PR description and/or title in any way.

Alternatively, you can find the Active Progressive Rollout CI workflow and manually rerun it (although this is generally slower than the above methods).


This comment will be updated as PR and/or rollout status changes.

Workflow run

@pnilan

Patrick Nilan (pnilan) commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

/ai-prove-fix specifically want to confirm this stack of PRs functions as expected.

Connector What it exercises Expected result
source-google-ads streams() override; a config with end_date: "" SUCCEEDED after the P0 fix (FAILED on this head)
source-amazon-seller-partner CheckDynamicStream, stream_count: 1, api_budget, spec validators Same status as 7.39.0
source-airtable CheckDynamicStream over dynamic streams only Same status as 7.39.0
source-hubspot HttpComponentsResolver and api_budget Same status as 7.39.0
source-bing-ads Slowest check in the epic benchmark; dynamic streams Same status, faster
source-github config_overrides on the check component Same status as 7.39.0

AI Prove Fix Started

Running readiness checks and testing against customer connections.
View workflow run
🔍 AI Prove Fix session starting... Running readiness checks and testing against customer connections. View playbook

✅ Devin AI session created successfully!

@airbyte-support-bot

Airbyte Support Bot (airbyte-support-bot) commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

🧪 Fix Validation Evidence

🟢 Outcome: Fix Proven

BLUF: For the source-github row of the matrix (config_overrides on the check component), the CDK stack (airbytehq/airbyte-python-cdk#1247 → #1248) behaves as expected. In a regression run, source-github 2.8.1 on SDM 7.39.0.post5.dev39879313492 matched published 2.8.0 (SDM 7.37.1) on every command: CHECK SUCCEEDED on both, DISCOVER unchanged across 40 streams, READ 1074 records / 63 states on both, and the record comparison (counts, PKs, field values) passed. A local check with an invalid token still fails with HTTP 401 and still logs the max_waiting_time override on the target. Scope: this verdict covers only source-github, because this PR only pins source-github. The other five rows (google-ads, amazon-seller-partner, airtable, hubspot, bing-ads) were not tested here.

Next Steps:

  1. Treat the source-github row as done: same status as before, and the config_overrides path works on the new static-only check path.
  2. The other five rows each need their own test PR pinning that connector to the SDM prerelease, then a run of /ai-prove-fix or the regression tests on it. That matters most for source-google-ads, where the expected result differs by head.
  3. Don't merge this PR (it is test-only, per its description).
📋 Connector & PR Details

Connector: source-github
PR: #89696
Head SHA tested: 76889a9d20c2948634c7d2dc1ac3653c00e6e5a1
CDK stack: airbytehq/airbyte-python-cdk#1248 (stacked on #1247)
Pre-release Version Tested: dev (target built from the PR head by the regression harness, with BASE_IMAGE=docker.io/airbyte/source-declarative-manifest:7.39.0.post5.dev39879313492@sha256:a45420a8…)
Comparison Baseline: latest (auto): airbyte/source-github:2.8.0 (SDM 7.37.1)
Detailed Evidence: Devin session

📝 Evidence Plan

What the stack changes for source-github: CheckStream now builds only the named static streams (_streams_by_name) instead of calling streams(). The source-github check is CheckStream on [branches] with config_overrides: {max_waiting_time: 1}. branches is a static stream, the manifest has no dynamic_streams, and the manifest-only source does not override streams(), so check takes the new static-only path with the override applied.

Proving Criteria: Target CHECK SUCCEEDED, same as control. The max_waiting_time override is still applied during check. SPEC, DISCOVER and READ match control.

Disproving Criteria: Target CHECK fails or differs from control, the override log line is missing, or any SPEC/DISCOVER/READ regression (missing streams, fewer records, or PK/field/state differences).

True-Positive Case: The stack loosens check only for dynamic-stream failures. source-github has no dynamic streams, so that loosening does not apply here. As a guard, I ran check with an invalid PAT on the target and expected it to still fail.

Testing Strategy: Regression tests only (comparison mode, all streams, GSM credentials), plus a local invalid-token check. No pre-release publish and no live connection pinning.

✅ Pre-flight Checks
  • Viability: the PR only changes metadata.yaml, moving the base image onto the CDK prerelease under test
  • Safety: no code change; the image digest is pinned
  • Breaking change: none (no schema, spec, stream or state change)
  • Reversibility: patch bump (2.8.0 → 2.8.1), no state or config format change
  • Pin exclusion: no live connections pinned
  • ⚠️ Design intent: n/a. The PR is marked DO NOT MERGE (test-only), and progressive rollout is active.
🔍 Detailed Evidence Log

Regression test: run 39882611431, conclusion success, connector repo checked out at 76889a9d

Command Result
SPEC ✅
CHECK ✅ (target: SUCCEEDED, control: SUCCEEDED)
DISCOVER ✅ "Discovered catalog unchanged across 40 streams"
READ ✅ target 1074 RECORD / 63 STATE, control 1074 / 63. "Record comparison passed (counts, PKs, field values)"

True-positive check (local, invalid PAT, the PR's manifest.yaml + components.py mounted into each SDM image):

SDM image connectionStatus Override log
7.39.0.post5.dev39879313492 (target) FAILED: "Stream branches is not available: HTTP Status Code: 401. Error: Unauthorized…" Overriding config keys for the check operation: max_waiting_time
7.37.1 (control) FAILED: same message same

Not covered: the other five rows of the requester's matrix. This PR doesn't build them on the prerelease.

@github-actions

Copy link
Copy Markdown
Contributor

source-github Connector Test Results

503 tests   496 ✅  33m 44s ⏱️
  2 suites    7 💤
  2 files      0 ❌

Results for commit 76889a9.

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

Closing: test-only DO NOT MERGE PR; the /ai-prove-fix run is complete (see the Fix Validation Evidence comment above). Requested by Patrick Nilan (@pnilan).

Written by Devin

@github-actions

Copy link
Copy Markdown
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

💡 Show Tips and Tricks

PR Slash Commands

Airbyte Maintainers (that's you!) can execute the following slash commands on your PR:

  • 🛠️ Quick Fixes
    • /format-fix - Fixes most formatting issues.
    • /bump-version - Bumps connector versions, scraping changelog description from the PR title.
      • Bump types: patch (default), minor, major, major_rc, rc, promote.
      • The rc type is a smart default: applies minor_rc if stable, or bumps the RC number if already RC.
      • The promote type strips the RC suffix to finalize a release.
      • Example: /bump-version type=rc or /bump-version type=minor
    • /bump-progressive-rollout-version - Alias for /bump-version type=rc. Bumps with an RC suffix and enables progressive rollout.
  • ❇️ AI Testing and Review (internal link: AI-SDLC Docs):
    • /ai-prove-fix - Runs prerelease readiness checks, including testing against customer connections.
    • /ai-canary-prerelease - Rolls out prerelease to 5-10 connections for canary testing.
    • /ai-review - AI-powered PR review for connector safety and quality gates.
    • /ai-breaking-change-review - Step 1 for a connector breaking change. Reviews whether the change needs to be breaking, destination data-loss risk, and whether the migration guide, metadata message, and docs let users upgrade safely. Opens one conversation on the PR for each item the author needs to handle.
    • /breaking-change-ready - Step 2, after you've replied to and resolved each of those conversations. Checks that every one has a reply and is resolved, then pings the breaking-change reviewers in Slack for human review.
  • 📝 AI Documentation:
    • /ai-docs-review - AI-powered documentation review for PRs with connector changes.
    • /ai-create-docs-pr - Creates a documentation PR for connector changes, stacked on the current PR.
  • 🚀 Connector Releases:
    • /publish-connectors-prerelease - Publishes pre-release connector builds (tagged as {version}-preview.{git-sha}) for all modified connectors in the PR.
    • /enable-autopilot-rollouts - Enables autopilot progressive rollouts for the modified connector(s) in the PR, remediating "autopilot rollouts not enabled for {connector-name}" auto-merge blockers. Sets defaultRolloutMode: autopilot and enableProgressiveRollout: true, preserving any existing autopilotConfig.
      • Optional args: connector=<CONNECTOR_NAME> (defaults to the modified connectors in the PR), strategy=fast|slow|default (defaults to fast).
      • Example: /enable-autopilot-rollouts or /enable-autopilot-rollouts connector=source-faker strategy=slow
  • ☕️ JVM connectors:
    • /update-connector-cdk-version connector=<CONNECTOR_NAME> - Updates the specified connector to the latest CDK version.
      Example: /update-connector-cdk-version connector=destination-bigquery
  • 🐍 Python connectors:
    • /poe connector source-example lock - Run the Poe lock task on the source-example connector, committing the results back to the branch.
    • /poe source example lock - Alias for /poe connector source-example lock.
    • /poe source example use-cdk-branch my/branch - Pin the source-example CDK reference to the branch name specified.
    • /poe source example use-cdk-latest - Update the source-example CDK dependency to the latest available version.
  • ⚙️ Admin commands:
    • /force-merge reason="<REASON>" - Force merges the PR using admin privileges, bypassing CI checks. Requires a reason.
      Example: /force-merge reason="CI is flaky, tests pass locally"
📚 Show Repo Guidance

Helpful Resources

📝 Edit this welcome message.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Pre-release Connector Publish Started

Publishing pre-release build for connector source-github.
PR: #89696

Pre-release versions will be tagged as {version}-preview.76889a9
and are available for version pinning via the scoped_configuration API.

View workflow run
Pre-release Publish: SUCCESS ✅

Docker image (pre-release):
airbyte/source-github:2.8.1-preview.76889a9

Docker Hub: https://hub.docker.com/layers/airbyte/source-github/2.8.1-preview.76889a9

Registry JSON:

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

Prerelease published from this PR's original head commit, as requested. Closing again (DO NOT MERGE test PR).

Written by Devin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

connectors/source/github hyd-prove Hydra: ai-prove-fix stage has run

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants