Skip to content

Conversation

@cmanallen
Copy link
Member

@cmanallen cmanallen commented Jan 30, 2026

Add actions and tests (prune unnecessary; add missing):

  • get_issue_comments
  • create_issue_comment
  • delete_issue_comment
  • get_pull_request_comments
  • create_pull_request_comment
  • delete_pull_request_comment
  • get_comment_reactions
  • create_comment_reaction
  • delete_comment_reaction
  • get_issue_reactions
  • create_issue_reaction
  • delete_issue_reaction

Each action has its own contract. It needs to return a generic response that effectively communicates what callers want to receive. It should also include the raw response and the provider type so that deeper introspection can be accomplish for service specific customization.

Add provider implementations:

  • GitHub
  • GitLab (depending on how fast the GitLab project progresses -- do last)

Integration tests for:

  • is_rate_limited
  • is_rate_limited_with_allocation_policy
  • map_integration_to_provider
  • map_repository_model_to_repository
  • fetch_service_provider
  • fetch_repository

Integration tests for:

  • GitHub provider
  • GitLab provider
@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Jan 30, 2026
organization_id: int,
integration: Integration | RpcIntegration,
) -> Provider:
client = integration.get_installation(organization_id=organization_id).get_client()
Copy link
Member

Choose a reason for hiding this comment

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

Instead of using the client directly, would it make sense to add to the existing GitHubIntegration class? While that class is fairly large in implementation, it does include quite a bit of logic that could simplify some of these provider implementations.

The existing class also includes feature-based metric collection and error handling that would need to be reimplemented here as well.

Copy link
Member Author

Choose a reason for hiding this comment

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

We'll work our way up to it if necessary. Likely we'll just port features from that class as we'll need a generic contract design and callers will need to conform. Leaving existing code in place means the migration path is async.

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

Labels

Scope: Backend Automatically applied to PRs that change backend components

3 participants