CRA Tool

GitHub Integration

Connect GitHub repositories to CRA Tool for streamlined project setup and automated pull request analysis.

StatusOpen
TypeClosed-Source Collaborative
Eligible CoursesSEMI, PRAK/PROJ, Bachelor/Master Thesis
Scope5 ECTS - 30 ECTS
Use of Artificial IntelligenceAllowed
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

  1. Go through the existing project setup and analysis code
  2. Create detailed GitHub issues for this work
  3. Define an implementation timeline in the GitHub Project Roadmap
  4. Implement the solution and adapt your plan if necessary
  5. 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

On this page