GitHub Integration
Connect GitHub repositories to CRA Tool for streamlined project setup and automated pull request analysis.
| Status | Open |
| Type | Closed-Source Collaborative |
| Eligible Courses | SEMI, PRAK/PROJ, Bachelor/Master Thesis |
| Scope | 5 ECTS - 30 ECTS |
| Use of Artificial Intelligence | Allowed |
| CLA Required? | Yes |
Summary
Many users host their repositories on GitHub. A native GitHub integration would simplify onboarding and unlock powerful automation features.
Currently, users must manually enter repository URLs, branch names, and commit hashes into free-text fields. By registering a GitHub App, CRA Tool can authenticate directly with a user's repository, replacing these fields with concrete dropdowns for repositories, branches, tags, and commits. This removes the need for manual credential setup and lets users browse and analyze their repositories without re-authenticating.
Beyond onboarding, a GitHub App enables automated pull request analysis.
When a pull request is opened or updated, CRA Tool should automatically create a new project version, trigger an analysis, and post a summary comment on the pull request.
Users can define criteria that determine whether the status check passes or fails (e.g. "fail if any newly introduced dependency has a PROHIBITED governance classification"). CRA Tool should report the result as a status check on the pull request, blocking the merge when the criteria are not met.
For reference, tools like Vercel and Mintlify follow a similar pattern with automatic deployment previews on pull requests.
Expected Tasks
- Go through the existing project setup and analysis code
- Create detailed GitHub issues for this work
- Define an implementation timeline in the GitHub Project Roadmap
- Implement the solution and adapt your plan if necessary
- Write a brief project report (1-2 pages max)
Technologies
You should be familiar with the following programming languages:
- TypeScript
- Java
You should be familiar with the following frameworks/libraries:
- Next.js
- Spring Boot
Knowing the following concepts will be helpful:
- GitHub Apps (installation, authentication, webhooks)
- GitHub Status Checks API
- OAuth / token-based authentication