diff --git a/.github/workflows/comment_pr.yml b/.github/workflows/comment_pr.yml new file mode 100644 index 0000000000..34949da5d1 --- /dev/null +++ b/.github/workflows/comment_pr.yml @@ -0,0 +1,69 @@ +name: Comment on PR + +on: pull_request + +jobs: + welcome: + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v3 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + var a = await github.pulls.listFiles({ + pull_number: context.payload.number, + owner: context.repo.owner, + repo: context.repo.repo, + }); + var bt = await github.pulls.listReviews({ + pull_number: context.payload.number, + owner: context.repo.owner, + repo: context.repo.repo, + }); + var b = bt.data + //await github.pulls.createReview({ + // pull_number: context.payload.number, + // owner: context.repo.owner, + // repo: context.repo.repo, + // body: "yes" + //}) + //console.log(context.repo) + //console.log(context) + //console.log(github) + //console.log(a) + for (index = 0; index < b.length; ++index) { + console.log(b[index]); + console.log(b[index].user); + } + //b.forEach(function(entry) { + // console.log(entry.user); + //}); + console.log(b) + + + // Get a list of all issues created by the PR opener + // See: https://octokit.github.io/rest.js/#pagination + //const creator = context.payload.sender.login + //const opts = github.issues.listForRepo.endpoint.merge({ + // ...context.issue, + // creator, + // state: 'all' + //}) + //const issues = await github.paginate(opts) + + //for (const issue of issues) { + // if (issue.number === context.issue.number) { + // continue + // } + + // if (issue.pull_request) { + // return // Creator is already a contributor. + // } + //} + + //await github.issues.createComment({ + // issue_number: context.issue.number, + // owner: context.repo.owner, + // repo: context.repo.repo, + // body: 'Welcome, new contributor!' + //}) diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000000..73f69e0958 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/domjudge.iml b/.idea/domjudge.iml new file mode 100644 index 0000000000..9a6b8a68ad --- /dev/null +++ b/.idea/domjudge.iml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000000..c73d2199e9 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/.idea/jsLinters/jshint.xml b/.idea/jsLinters/jshint.xml new file mode 100644 index 0000000000..d7c6485fe8 --- /dev/null +++ b/.idea/jsLinters/jshint.xml @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000000..d4a949c3dd --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000000..2aa5f557b2 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000..94a25f7f4c --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/webapp/src/Controller/Jury/RejudgingController.php b/webapp/src/Controller/Jury/RejudgingController.php index f650586c64..3a38cbe9d6 100644 --- a/webapp/src/Controller/Jury/RejudgingController.php +++ b/webapp/src/Controller/Jury/RejudgingController.php @@ -708,7 +708,7 @@ private function getStats(Rejudging $rejudging): array ->leftJoin('j.rejudging', 'r') ->leftJoin('j.submission', 's') ->leftJoin('j.judgehost', 'jh') - ->select('j.judgingid', 's.submitid', 'jh.hostname', 'j.result', + ->select('r.rejudgingid, j.judgingid', 's.submitid', 'jh.hostname', 'j.result', 'AVG(jr.runtime) AS runtime_avg', 'COUNT(jr.runtime) AS ntestcases', '(j.endtime - j.starttime) AS duration' ) @@ -812,19 +812,19 @@ function ($a, $b) { 'count' => count($submissions[$submitid]), 'verdict' => ( !array_key_exists($submitid, $submissions_to_result) - ? '*multiple*' + ? join(', ', $results) : $submissions_to_result[$submitid] ) ]; } $judgehost_stats = []; - foreach ($judgehosts as $judgehost => $judgings) { + foreach ($judgehosts as $judgehost => $host_judgings) { $totaltime = 0.0; // Actual time begin--end of judging $totalrun = 0.0; // Time spent judging runs $sumsquare = 0.0; $njudged = 0; - foreach ($judgings as $judging) { + foreach ($host_judgings as $judging) { $runtime = $judging['runtime_avg']*$judging['ntestcases']; $totaltime += $judging['duration']; $totalrun += $runtime; @@ -849,7 +849,8 @@ function ($a, $b) { 'judging_runs_differ' => array_slice($judging_runs_differ, 0, $max_list_len), 'judging_runs_differ_overflow' => count($judging_runs_differ) - $max_list_len, 'runtime_spread' => $runtime_spread_list, - 'judgehost_stats' => $judgehost_stats + 'judgehost_stats' => $judgehost_stats, + 'judgings' => $judgings ]; } } diff --git a/webapp/templates/jury/partials/submission_testcase_boxes.html.twig b/webapp/templates/jury/partials/submission_testcase_boxes.html.twig new file mode 100644 index 0000000000..e69de29bb2 diff --git a/webapp/templates/jury/rejudging.html.twig b/webapp/templates/jury/rejudging.html.twig index a0d37bc618..844ab00e23 100644 --- a/webapp/templates/jury/rejudging.html.twig +++ b/webapp/templates/jury/rejudging.html.twig @@ -148,6 +148,20 @@ {% endfor %} + +

Judging verdicts

+ + + {% for judging in stats.judgings %} + + + + + + + + {% endfor %} +
jIDrIDJudgehostruntimeverdict
{{ judging.judgingid }}{{ judging.rejudgingid }}{{ judging.hostname }}{{ judging.duration | number_format(3) }}{{ judging.result | printResult }}
{% endif %} {% endif %}