Skip to content

Commit

Permalink
rework after review #232
Browse files Browse the repository at this point in the history
  • Loading branch information
iam-flo committed Feb 20, 2025
1 parent 5b25cbf commit 144efa3
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import de.tum.in.www1.hephaestus.activity.PullRequestBadPracticeRepository;
import de.tum.in.www1.hephaestus.activity.model.PullRequestBadPractice;
import de.tum.in.www1.hephaestus.config.BadPracticeDetectorConfig.BadPracticeDetectorService;
import de.tum.in.www1.hephaestus.config.IntelligenceServiceConfig.BadPracticeDetectorService;
import de.tum.in.www1.hephaestus.gitprovider.pullrequest.PullRequest;
import java.util.LinkedList;
import java.util.List;
Expand All @@ -27,6 +27,11 @@ public class PullRequestBadPracticeDetector {
@Autowired
private BadPracticeDetectorService detectorApi;

/**
* Detects bad practices in the given pull request and syncs them with the database.
* @param pullRequest The pull request to detect bad practices in.
* @return The detected bad practices.
*/
public List<PullRequestBadPractice> detectAndSyncBadPractices(PullRequest pullRequest) {
logger.info("Detecting bad practices for pull request: {}", pullRequest.getId());
DetectorRequest detectorRequest = new DetectorRequest();
Expand All @@ -44,7 +49,6 @@ public List<PullRequestBadPractice> detectAndSyncBadPractices(PullRequest pullRe
return detectedBadPractices;
}

@Transactional
protected PullRequestBadPractice handleDetectedBadPractices(PullRequest pullRequest, BadPractice badPractice) {

PullRequestBadPractice pullRequestBadPractice = new PullRequestBadPractice();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@

import de.tum.in.www1.hephaestus.gitprovider.pullrequest.PullRequest;

import jakarta.persistence.*;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Table;
import lombok.*;

@Entity
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package de.tum.in.www1.hephaestus.config;

import de.tum.in.www1.hephaestus.intelligenceservice.ApiClient;
import de.tum.in.www1.hephaestus.intelligenceservice.api.DetectorApi;
import de.tum.in.www1.hephaestus.intelligenceservice.api.MentorApi;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
Expand All @@ -23,4 +24,16 @@ public IntelligenceServiceApi() {
super(new ApiClient().setBasePath(intelligenceServiceUrl));
}
}

@Bean
public BadPracticeDetectorService badPracticeDetectorService() {
return new BadPracticeDetectorService();
}

public class BadPracticeDetectorService extends DetectorApi {

public BadPracticeDetectorService() {
super(new ApiClient().setBasePath(intelligenceServiceUrl));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ SELECT MIN(p.createdAt)
)
Optional<OffsetDateTime> firstContributionByAuthorLogin(@Param("authorLogin") String authorLogin);

@Transactional
@Query(
"""
SELECT p
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from langchain_core.prompts import PromptTemplate, ChatPromptTemplate
from pydantic import BaseModel, Field

from .prompts.pullrequest_badpractice_detector import BAD_PRACTICE_PROMPT_TEST
from ..model import model


Expand All @@ -24,10 +25,8 @@ class BadPracticeList(BaseModel):
bad_practices: List[BadPractice] = Field(description="A list of bad practices detected in a pull request.")


def detectbadpractices(title, description) -> BadPracticeList:
prompt_path = Path(__file__).parent / "prompts" / "pullrequest_badpractice_detector.txt"
with open(prompt_path, "r", encoding="utf-8") as f:
prompt_text = f.read()
def detect_bad_practices(title, description) -> BadPracticeList:
prompt_text = BAD_PRACTICE_PROMPT_TEST
prompt_template = ChatPromptTemplate.from_template(prompt_text)
prompt = prompt_template.invoke({"title": title, "description": description})
structured_llm = model.with_structured_output(BadPracticeList)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
BAD_PRACTICE_PROMPT_TEST = """
You are a bad practice detector reviewing pull requests for bad practices.
You analyze and review the title and description of the pull request to identify any bad practices.
You detect bad practices based on guidelines for good pull request titles and descriptions.
Expand Down Expand Up @@ -29,4 +30,4 @@
6. Multiple runs on the same title and description should return the same results if nothing has changed.
Pull Request Title: {title}
Pull Request Description: {description}
Pull Request Description: {description}"""

0 comments on commit 144efa3

Please sign in to comment.