Skip to content

Conversation

@FelixTJDietrich
Copy link
Collaborator

Description

Adds support for GitHub Discussions and Git Commits to the gitprovider module, built on the new GraphQL-native architecture from #621.

Discussions

  • Discussion entity with state, categories, Q&A support (accepted answers), and labels
  • DiscussionCategory entity using String ID (node_id) since GitHub's GraphQL API doesn't expose databaseId for categories
  • DiscussionComment entity with reply threading and author association tracking
  • Sync service and processor following the established patterns

Git Commits

  • GitCommit entity using SHA as primary key (provider-agnostic)
  • GitCommitFileChange entity for tracking file changes per commit
  • Support for author/committer metadata (separate from linked User entities)
  • Sync service and processor for GraphQL-based fetching

GraphQL Operations

  • GetRepositoryDiscussions.graphql - Fetches discussions with comments, categories, labels
  • GetRepositoryCommits.graphql - Fetches commit history with statistics
  • GetDiscussionCategories.graphql - Fetches available discussion categories

How to Test

  1. Run ./mvnw compile to verify compilation
  2. CI covers database migration and integration tests
  3. Manual testing requires enabling discussion sync in a workspace

Notes

Implements entities, repositories, DTOs, processors, and sync services for:
- Discussions with categories, Q&A support, and comment threading
- Git commits with author/committer info and file change tracking

Built on the new GraphQL-native architecture from chore/remove-hub4j.

Note: DiscussionCategory uses String ID (node_id) since GitHub's GraphQL
API doesn't expose databaseId for this type.
@FelixTJDietrich FelixTJDietrich requested a review from a team as a code owner January 2, 2026 00:15
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 2, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added application-server Spring Boot server: APIs, business logic, database feature New feature or enhancement size:XXL This PR changes 1000+ lines, ignoring generated files. labels Jan 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

application-server Spring Boot server: APIs, business logic, database feature New feature or enhancement size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants