Skip to content

Task 2 4 1#15

Open
Denmurzik wants to merge 10 commits into
mainfrom
Task_2_4_1
Open

Task 2 4 1#15
Denmurzik wants to merge 10 commits into
mainfrom
Task_2_4_1

Conversation

@Denmurzik

Copy link
Copy Markdown
Owner

No description provided.

@github-actions

Copy link
Copy Markdown
File Coverage [37.35%]
StudentReport.java 92.94% 🍏
DslLoader.java 85.71% 🍏
ConfigScript.groovy 80.43% 🍏
LabResult.java 78.87%
Settings.java 75.86%
HtmlReporter.java 75.13%
Scoring.java 69.71%
Lab.java 58.93%
Group.java 51.52%
Student.java 41.67%
Assignment.java 38.89%
Checkpoint.java 34.62%
Config.java 28.67%
ProcessHelper.java 0%
GradleRunner.java 0%
CheckstyleRunner.java 0%
GitAuthCheck.java 0%
GitClient.java 0%
App.java 0%
Checker.java 0%
Total Project Coverage 37.35%

@github-actions

Copy link
Copy Markdown
File Coverage [37.62%]
StudentReport.java 92.94% 🍏
DslLoader.java 85.71% 🍏
ConfigScript.groovy 80.43% 🍏
LabResult.java 78.87%
Settings.java 75.86%
HtmlReporter.java 75.54%
Scoring.java 68.93%
Lab.java 58.93%
Group.java 51.52%
Student.java 41.67%
Assignment.java 38.89%
Checkpoint.java 34.62%
Config.java 28.67%
ProcessHelper.java 0%
GradleRunner.java 0%
CheckstyleRunner.java 0%
GitAuthCheck.java 0%
GitClient.java 0%
App.java 0%
Checker.java 0%
Total Project Coverage 37.62%

@Denmurzik Denmurzik closed this Apr 23, 2026
@Denmurzik Denmurzik reopened this Apr 23, 2026
@github-actions

Copy link
Copy Markdown
File Coverage [81.26%] 🍏
DslLoader.java 100% 🍏
Config.java 100% 🍏
Group.java 100% 🍏
LabResult.java 100% 🍏
Lab.java 100% 🍏
Settings.java 100% 🍏
Assignment.java 100% 🍏
Checkpoint.java 100% 🍏
StudentReport.java 100% 🍏
Student.java 100% 🍏
HtmlReporter.java 98.49% 🍏
Scoring.java 97.18% 🍏
ConfigScript.groovy 95.48% 🍏
ProcessHelper.java 88.54% 🍏
GitAuthCheck.java 85.19% 🍏
CheckstyleRunner.java 83.02% 🍏
GradleRunner.java 79.37%
GitClient.java 67.02%
Checker.java 44.42%
App.java 3.37%
Total Project Coverage 81.26% 🍏

@github-actions

Copy link
Copy Markdown
File Coverage [81.26%] 🍏
DslLoader.java 100% 🍏
Config.java 100% 🍏
Group.java 100% 🍏
LabResult.java 100% 🍏
Lab.java 100% 🍏
Settings.java 100% 🍏
Assignment.java 100% 🍏
Checkpoint.java 100% 🍏
StudentReport.java 100% 🍏
Student.java 100% 🍏
HtmlReporter.java 98.49% 🍏
Scoring.java 97.18% 🍏
ConfigScript.groovy 95.48% 🍏
ProcessHelper.java 88.54% 🍏
GitAuthCheck.java 85.19% 🍏
CheckstyleRunner.java 83.02% 🍏
GradleRunner.java 79.37%
GitClient.java 67.02%
Checker.java 44.42%
App.java 3.37%
Total Project Coverage 81.26% 🍏

@github-actions

Copy link
Copy Markdown
File Coverage [81.26%] 🍏
DslLoader.java 100% 🍏
Config.java 100% 🍏
Group.java 100% 🍏
LabResult.java 100% 🍏
Lab.java 100% 🍏
Settings.java 100% 🍏
Assignment.java 100% 🍏
Checkpoint.java 100% 🍏
StudentReport.java 100% 🍏
Student.java 100% 🍏
HtmlReporter.java 98.49% 🍏
Scoring.java 97.18% 🍏
ConfigScript.groovy 95.48% 🍏
ProcessHelper.java 88.54% 🍏
GitAuthCheck.java 85.19% 🍏
CheckstyleRunner.java 83.02% 🍏
GradleRunner.java 79.37%
GitClient.java 67.02%
Checker.java 44.42%
App.java 3.37%
Total Project Coverage 81.26% 🍏

html.append("table{border-collapse:collapse;margin:10px 0;} ");
html.append("th,td{border:1px solid #000;padding:4px 8px;} ");
html.append("caption{text-align:left;font-weight:bold;padding:4px 0;} ");
html.append("</style></head><body>\n");

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

объединить в один textblock?

continue;
}

html.append("<h2>Группа ").append(escape(group.getName())).append("</h2>\n");

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

более читаемый вариант сделать строку с плейсхолдером либо %s и через format подставить group.getName()


private String labTable(Lab lab, List<StudentReport> reports) {
StringBuilder sb = new StringBuilder();
sb.append("<table><caption>Лабораторная ").append(escape(lab.getId()))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

аналогично коментам выше

public int countViolations(File projectDir) {
File srcRoot = findJavaSrc(projectDir);
if (srcRoot == null) {
return -1;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

может исключения для ошибок использовать все-таки?)

File tmp = File.createTempFile("google_checks", ".xml");
tmp.deleteOnExit();
FileOutputStream out = new FileOutputStream(tmp);
byte[] buf = new byte[4096];

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

magic number

return out.substring(idx + 1);
}
}
for (String b : new String[]{"main", "master"}) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

new String[]{"main", "master"}
это очень круто, но давайте в какой-нибудь константный лист в классе вынесем

}

/** Запускает команду и возвращает результат. */
public static Result run(File workDir, long timeoutSeconds, String... command)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

может добавим немного ооп?

public class App {

/** Парсит команду, находит DSL-скрипт и запускает проверку. */
public static void main(String[] args) throws Exception {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

давайте не кидаться исключениями, а ловить их и выводить пользователю инфу об ошибке

File script = new File(workDir, "oop-checker.groovy");
if (!script.exists()) {
System.err.println("В рабочей директории не найден oop-checker.groovy");
System.exit(1);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

не надо так


Config config = new DslLoader().load(script);

if (command.equals("test") || command.equals("report")) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

в будущем собираемся добавить еще 10 команд. как поступим с текущим подходом?

@github-actions

github-actions Bot commented May 4, 2026

Copy link
Copy Markdown
File Coverage [81.71%] 🍏
DslLoader.java 100% 🍏
LabResult.java 100% 🍏
Settings.java 100% 🍏
Assignment.java 100% 🍏
Checkpoint.java 100% 🍏
StudentReport.java 100% 🍏
Student.java 100% 🍏
Config.java 100% 🍏
Group.java 100% 🍏
Lab.java 100% 🍏
HtmlReporter.java 98.45% 🍏
Scoring.java 97.18% 🍏
ConfigScript.groovy 95.48% 🍏
ProcessHelper.java 90.91% 🍏
GitAuthCheck.java 85.19% 🍏
CheckstyleRunner.java 80.73% 🍏
GradleRunner.java 79.37%
GitClient.java 65.66%
App.java 64.71%
ReportCommand.java 51.11%
GitOperationException.java 44.44%
RunnerException.java 44.44%
Checker.java 44.42%
CheckstyleRunException.java 0%
Total Project Coverage 81.71% 🍏

}
} catch (Exception ignore) {
// не смогли получить git log — возвращаем пустой список
} catch (GitOperationException e) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

лишнее

}

/** Даты коммитов в диапазоне, в формате ISO. */
public List<String> commitDates(File repoDir, LocalDate from, LocalDate to) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

может тогда не лист строк возвращать, а лист дат?

@github-actions

github-actions Bot commented May 5, 2026

Copy link
Copy Markdown
File Coverage [87.58%] 🍏
DslLoader.java 100% 🍏
GitOperationException.java 100% 🍏
RunnerException.java 100% 🍏
LabResult.java 100% 🍏
Settings.java 100% 🍏
Assignment.java 100% 🍏
Checkpoint.java 100% 🍏
StudentReport.java 100% 🍏
Student.java 100% 🍏
Config.java 100% 🍏
Group.java 100% 🍏
Lab.java 100% 🍏
HtmlReporter.java 98.45% 🍏
Scoring.java 97.18% 🍏
ConfigScript.groovy 95.48% 🍏
ProcessHelper.java 90.91% 🍏
GitAuthCheck.java 85.19% 🍏
CheckstyleRunner.java 80.73% 🍏
GradleRunner.java 79.37%
Checker.java 78.36%
GitClient.java 69.13%
App.java 64.71%
ReportCommand.java 51.11%
CheckstyleRunException.java 0%
Total Project Coverage 87.58% 🍏

@github-actions

Copy link
Copy Markdown
File Coverage [91.44%] 🍏
DslLoader.java 100% 🍏
GitOperationException.java 100% 🍏
RunnerException.java 100% 🍏
LabResult.java 100% 🍏
Settings.java 100% 🍏
Assignment.java 100% 🍏
Checkpoint.java 100% 🍏
StudentReport.java 100% 🍏
Student.java 100% 🍏
Config.java 100% 🍏
Group.java 100% 🍏
Lab.java 100% 🍏
ProcessHelper.java 99.35% 🍏
HtmlReporter.java 98.51% 🍏
Scoring.java 96.76% 🍏
ConfigScript.groovy 95.5% 🍏
CheckstyleRunner.java 90.98% 🍏
GradleRunner.java 90.57% 🍏
GitAuthCheck.java 90.32% 🍏
GitClient.java 90.08% 🍏
Checker.java 81.67% 🍏
App.java 68.89%
ReportCommand.java 39.66%
CheckstyleRunException.java 0%
Total Project Coverage 91.44% 🍏

@github-actions

Copy link
Copy Markdown
File Coverage [91.44%] 🍏
DslLoader.java 100% 🍏
GitOperationException.java 100% 🍏
RunnerException.java 100% 🍏
LabResult.java 100% 🍏
Settings.java 100% 🍏
Assignment.java 100% 🍏
Checkpoint.java 100% 🍏
StudentReport.java 100% 🍏
Student.java 100% 🍏
Config.java 100% 🍏
Group.java 100% 🍏
Lab.java 100% 🍏
ProcessHelper.java 99.35% 🍏
HtmlReporter.java 98.51% 🍏
Scoring.java 96.76% 🍏
ConfigScript.groovy 95.5% 🍏
CheckstyleRunner.java 90.98% 🍏
GradleRunner.java 90.57% 🍏
GitAuthCheck.java 90.32% 🍏
GitClient.java 90.08% 🍏
Checker.java 81.67% 🍏
App.java 68.89%
ReportCommand.java 39.66%
CheckstyleRunException.java 0%
Total Project Coverage 91.44% 🍏

@farkhutdinovDmitry farkhutdinovDmitry left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

нейминг коммитов по-прежнему бессодержательный, по остальному ок

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants