Skip to content

Conversation

jpefaur
Copy link
Contributor

@jpefaur jpefaur commented Oct 10, 2025

What

We have a workflow that once a day checks if the latest CDK version would break any connector. If there are test failures, it sends a slack alert. In addition to sending a slack alert, we would like to get an oncall ticket in our github project. We should only do this for destinations (connectors owned by move)

How

Added a few extra steps to the workflow that calls a script that creates gh issues. It checks if an issue already exists for the connector. If it does it will update the description with information about the new failure. If it doesn't it will create a new ticket

How did I test this?

Tested in this PR #67617. Confirmed that tickets were created if they didn't exist and that they were updated if they did exist.

Can this PR be safely reverted and rolled back?

  • YES 💚
  • NO ❌

Copy link
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Helpful Resources

PR Slash Commands

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

  • /format-fix - Fixes most formatting issues.
  • /bump-version - Bumps connector versions.
    • You can specify a custom changelog by passing changelog. Example: /bump-version changelog="My cool update"
    • Leaving the changelog arg blank will auto-populate the changelog from the PR title.
  • /run-cat-tests - Runs legacy CAT tests (Connector Acceptance Tests)
  • /build-connector-images - Builds and publishes a pre-release docker image for the modified connector(s).
  • 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
    • /bump-bulk-cdk-version type=patch changelog='foo' - Bump the Bulk CDK's version. type can be major/minor/patch.
  • 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.

📝 Edit this welcome message.

id: check-move-notify
if: always()
run: |
echo "should-notify=${{
Copy link
Contributor Author

Choose a reason for hiding this comment

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

setting condition here so that I don't repeat it everywhere

working-directory: airbyte-integrations/connectors/${{ matrix.connector }}
run: poe test-integration-tests

- name: Check if move team should be notified
Copy link
Contributor Author

Choose a reason for hiding this comment

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

note that this is only to notify the move team. The logic to create a gh issue changes quite a bit depending on how teams manage their oncall tickets so I thought it made sense to just do it for the ones we own (and also by doing this we are not making other team sign up to how we want to deal with these issues).

token: ${{ secrets.SLACK_BOT_TOKEN_AIRBYTE_TEAM }}
method: chat.postMessage
payload: |
channel: C09H56MT8J2 # jose-alert-test channel. The use of this channel is meant to be temporary while we evaluate the usefulness of these notifications.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I renamed the channel to cdk-connector-compatibility-tests

ISSUES_REPOSITORY="${ISSUES_REPOSITORY:-airbytehq/airbyte-internal-issues}"
PROJECT_NUMBER="${PROJECT_NUMBER:-98}"
STATUS_FIELD_ID="${STATUS_FIELD_ID:-PVTSSF_lADOA4_XW84Am4WkzgetXZM}"
ONCALL_OPTION_ID="${ONCALL_OPTION_ID:-3ecf8bb4}"
Copy link
Contributor Author

Choose a reason for hiding this comment

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

using all these ids is not pretty, but afaik this is the only way to deal creating issues and editing their fields

Copy link
Contributor

Choose a reason for hiding this comment

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

can you add a comment explaining how to find these IDs? I actually don't know where to find them 😅

@jpefaur jpefaur changed the title Jose/cdk compatibility test create gh issue ci: make cdk connector compatibility test create gh issue Oct 10, 2025
@jpefaur jpefaur marked this pull request as ready for review October 10, 2025 21:41
@jpefaur jpefaur requested a review from a team October 10, 2025 21:41
Copy link
Contributor

@edgao edgao left a comment

Choose a reason for hiding this comment

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

:shipit:

out of curiosity, definitely not saying you should - did you look at e.g. https://github.com/marketplace/actions/create-issues for the issue creation piece? Or is the stuff around "create if not exists" just too bespoke for anything off the shelf

ISSUES_REPOSITORY="${ISSUES_REPOSITORY:-airbytehq/airbyte-internal-issues}"
PROJECT_NUMBER="${PROJECT_NUMBER:-98}"
STATUS_FIELD_ID="${STATUS_FIELD_ID:-PVTSSF_lADOA4_XW84Am4WkzgetXZM}"
ONCALL_OPTION_ID="${ONCALL_OPTION_ID:-3ecf8bb4}"
Copy link
Contributor

Choose a reason for hiding this comment

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

can you add a comment explaining how to find these IDs? I actually don't know where to find them 😅

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.

2 participants