Skip to content

Conversation

devin-ai-integration[bot]
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot commented Jul 18, 2025

Add PR welcome message system with uvx installation examples

Summary

This PR implements an automated PR welcome message system for PyAirbyte, similar to the one used in the Python CDK. When new PRs are opened (especially from community forks), a GitHub workflow automatically posts a welcome comment with:

  • uvx installation syntax for testing PyAirbyte from the specific PR branch
  • Available slash commands for PR automation (fix-pr, test-pr, poetry-lock)
  • Community resources including links to documentation, Slack (#pyairbyte channel), and GitHub discussions
  • Different templates for internal team members vs external contributors

The implementation adds 3 new files:

  • GitHub workflow that triggers on PR open/reopen events
  • Community welcome template with comprehensive getting-started info
  • Internal welcome template with streamlined info for team members

Review & Testing Checklist for Human

  • Test uvx commands work correctly - Verify the uvx installation syntax actually installs PyAirbyte from a branch: uvx 'git+https://github.com/airbytehq/PyAirbyte.git@branch-name' pyab --help
  • Verify workflow triggers on test PR - Create a test PR to confirm the welcome message posts automatically and templates render correctly
  • Validate all external links - Check that Slack channel, documentation, and GitHub discussion links are accessible and current
  • Confirm slash command accuracy - Verify that /fix-pr, /test-pr, and /poetry-lock commands actually exist and work as described
  • Test template variable substitution - Ensure {{ .repo_name }} and {{ .branch_name }} variables populate correctly in the rendered messages

Diagram

%%{ init : { "theme" : "default" }}%%
graph TD
    PR["New PR Created<br/>(Community Fork)"] --> Workflow["welcome-message.yml<br/>(GitHub Actions)"]:::major-edit
    Workflow --> Template["Template Selection<br/>(Fork vs Internal)"]
    Template --> CommunityTemplate[".github/pr-welcome-community.md<br/>(Community Contributors)"]:::major-edit
    Template --> InternalTemplate[".github/pr-welcome-internal.md<br/>(Team Members)"]:::major-edit
    CommunityTemplate --> Comment["Automated PR Comment<br/>(with uvx syntax)"]
    InternalTemplate --> Comment
    
    SlashCommands["existing slash_command_dispatch.yml<br/>(fix-pr, test-pr, poetry-lock)"]:::context --> Comment
    PythonCDK["airbyte-python-cdk<br/>welcome system<br/>(reference implementation)"]:::context --> Workflow
    
    subgraph Legend
        L1[Major Edit]:::major-edit
        L2[Minor Edit]:::minor-edit  
        L3[Context/No Edit]:::context
    end
    
    classDef major-edit fill:#90EE90
    classDef minor-edit fill:#87CEEB
    classDef context fill:#FFFFFF
Loading

Notes

  • Based on the working implementation from airbyte-python-cdk repository
  • Uses the same GitHub Actions and template rendering approach for consistency
  • Includes uvx syntax specific to PyAirbyte's CLI structure (pyab and pyairbyte aliases)
  • References existing slash commands already configured in PyAirbyte's workflow infrastructure
  • Community template includes the #pyairbyte Slack channel link as requested by @aaronsteers

Link to Devin session: https://app.devin.ai/sessions/8a2585a98e604164a973493586dbe063
Requested by: @aaronsteers

Important

Auto-merge enabled.

This PR is set to merge automatically when all requirements are met.

Note

Auto-merge may have been disabled. Please check the PR status to confirm.

- Add GitHub workflow to automatically comment on new PRs
- Include community and internal welcome message templates
- Provide uvx syntax for testing PyAirbyte from PR branches
- Include links to #pyairbyte Slack channel and documentation
- Add slash command documentation for PR automation

Requested by @aaronsteers

Co-Authored-By: AJ Steers <[email protected]>
Copy link
Contributor Author

Original prompt from AJ Steers:

@Devin - Add a PR welcome message similar to the one in the Python CDK. I specifically want to give the example `uvx` syntax for installing/testing from the given PR's branch.

Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Copy link

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Testing This PyAirbyte Version

You can test this version of PyAirbyte using the following:

# Run PyAirbyte CLI from this branch:
uvx 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1752801376-add-pr-welcome-message' pyab --help

# Or use the full command name:
uvx 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1752801376-add-pr-welcome-message' pyairbyte --help

# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1752801376-add-pr-welcome-message'

Helpful Resources

PR Slash Commands

Airbyte Maintainers can execute the following slash commands on your PR:

  • /fix-pr - Fixes most formatting and linting issues
  • /poetry-lock - Updates poetry.lock file
  • /test-pr - Runs tests with the updated PyAirbyte

Community Support

Questions? Join the #pyairbyte channel in our Slack workspace.

📝 Edit this welcome message.

- Replace hardcoded airbytehq/PyAirbyte with {{ .repo_name }} template variable
- Ensures uvx commands work correctly for community forks
- Addresses feedback from @aaronsteers on PR #721

Co-Authored-By: AJ Steers <[email protected]>
@aaronsteers aaronsteers enabled auto-merge (squash) July 18, 2025 01:59
@aaronsteers aaronsteers disabled auto-merge July 18, 2025 01:59
- Add --from flag to uvx commands as required when package name differs from CLI name
- Addresses @aaronsteers feedback on PR #721 about incorrect uvx syntax
- Follows PyAirbyte CLI documentation pattern: uvx --from=airbyte pyab --help

Co-Authored-By: AJ Steers <[email protected]>
- Remove shorter 'pyab' syntax to save space in welcome message
- Keep only the full 'pyairbyte' command as suggested by @aaronsteers
- Addresses feedback on PR #721 about reducing template verbosity

Co-Authored-By: AJ Steers <[email protected]>
@aaronsteers aaronsteers reopened this Jul 18, 2025
Copy link

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Testing This PyAirbyte Version

You can test this version of PyAirbyte using the following:

# Run PyAirbyte CLI from this branch:
uvx --from 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1752801376-add-pr-welcome-message' pyairbyte --help

# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1752801376-add-pr-welcome-message'

Helpful Resources

PR Slash Commands

Airbyte Maintainers can execute the following slash commands on your PR:

  • /fix-pr - Fixes most formatting and linting issues
  • /poetry-lock - Updates poetry.lock file
  • /test-pr - Runs tests with the updated PyAirbyte

Community Support

Questions? Join the #pyairbyte channel in our Slack workspace.

📝 Edit this welcome message.

@aaronsteers aaronsteers enabled auto-merge (squash) July 18, 2025 02:05
@aaronsteers aaronsteers disabled auto-merge July 18, 2025 02:10
@aaronsteers aaronsteers merged commit 661db91 into main Jul 18, 2025
33 checks passed
@aaronsteers aaronsteers deleted the devin/1752801376-add-pr-welcome-message branch July 18, 2025 02:10
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.

1 participant