Skip to content

Commit 8056115

Browse files
committed
Port to PHP
1 parent 707568a commit 8056115

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Gerrit code review backlog tracker
33

44
# Usage
5-
hh vatkain.php
5+
php vatkain.php
66

77
# Example output
88
```

vatkain.php

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
<?hh
1+
<?php
22

33
require 'vendor/autoload.php';
44

55
$gerrit = 'https://gerrit.wikimedia.org/r/';
66
$projects = [
7-
'mediawiki/extensions/Translate',
8-
'mediawiki/extensions/UniversalLanguageSelector',
97
'mediawiki/extensions/ContentTranslation',
108
'mediawiki/services/cxserver',
9+
'mediawiki/extensions/Translate',
10+
'mediawiki/extensions/UniversalLanguageSelector',
1111
'mediawiki/extensions/Babel',
1212
'mediawiki/extensions/TwnMainPage',
13-
'mediawiki/extensions/InviteSignup',
1413
'mediawiki/extensions/CleanChanges',
1514
'mediawiki/extensions/LocalisationUpdate',
1615
'mediawiki/extensions/cldr',
@@ -23,7 +22,7 @@
2322
use GuzzleHttp\Client;
2423

2524
class Vatkain {
26-
private Client $client;
25+
private $client;
2726

2827
public function __construct( string $api ) {
2928
$this->client = new Client( [
@@ -45,10 +44,10 @@ private function buildQuery( array $input ) {
4544
return rtrim( $output, '&' );
4645
}
4746

48-
public function getChangeData( array<string> $projects ) {
47+
public function getChangeData( array $projects ) {
4948
$step = 100;
5049

51-
$projects = array_map( $p ==> "project:$p", $projects );
50+
$projects = array_map( function( $p ) { return "project:$p"; }, $projects );
5251
$projects = '(' . implode( ' OR ', $projects ) . ')';
5352

5453
$query = [
@@ -125,13 +124,17 @@ private function doChangesQuery( array $query ) {
125124
$grouped[$item['project']][] = $item;
126125
}
127126

128-
$stringAge = $_ ==> $_['__ps_age']->format( '%a' );
129-
127+
$stringAge = function( $_ ) {
128+
return $_['__ps_age']->format( '%a' );
129+
};
130+
$sortCallback = function ( $a, $b ) use ( $stringAge ) {
131+
return strnatcmp( $stringAge( $a ), $stringAge( $b ) );
132+
};
130133
foreach ( $grouped as $ext => $items ) {
131-
uasort( $grouped[$ext], ( $a, $b ) ==> strnatcmp( $stringAge( $a ), $stringAge( $b ) ) );
134+
uasort( $grouped[$ext], $sortCallback );
132135
}
133136

134-
$fl = ( $string, $length ) ==> str_pad( substr( $string, 0, $length ), $length, ' ' );
137+
$fl = function ( $string, $length ) { return str_pad( substr( $string, 0, $length ), $length, ' ' ); };
135138

136139
$totalReviewIdle = 0;
137140

@@ -148,15 +151,17 @@ private function doChangesQuery( array $query ) {
148151
$patchCount = count( $items );
149152

150153
foreach ( $items as $item ) {
154+
$wip = ( strpos( $item['subject'], 'WIP' ) !== false || isset( $item['work_in_progress'] ) );
155+
151156
$rows[] = [
152157
$item['change_id'],
153158
$item['subject'],
154-
$item['__state'],
159+
$wip ? 'WIP' : $item['__state'],
155160
$item['__age']->format( '%a' ),
156161
$item['__ps_age']->format( '%a' ),
157162
];
158163

159-
if ( $item['__state'] === 'REVIEW' && strpos( $item['subject'], 'WIP' ) === false ) {
164+
if ( $item['__state'] === 'REVIEW' && !$wip ) {
160165
$reviewIdle += $item['__ps_age']->format( '%a' );
161166
$unreviewed += 1;
162167
}

0 commit comments

Comments
 (0)