Completed
Pull Request — master (#68)
by Hiraku
02:14
created

GitHubRequest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 7
Bugs 0 Features 1
Metric Value
wmc 4
c 7
b 0
f 1
lcom 1
cbo 2
dl 0
loc 29
ccs 17
cts 17
cp 1
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 2
A getURL() 0 8 1
A promptAuth() 0 5 1
1
<?php
2
/*
3
 * hirak/prestissimo
4
 * @author Hiraku NAKANO
5
 * @license MIT https://github.com/hirak/prestissimo
6
 */
7
namespace Hirak\Prestissimo\Aspects;
8
9
use Composer\IO;
10
11
/**
12
 * Simple Container for http-get request
13
 * GitHub edition
14
 */
15
class GitHubRequest extends HttpGetRequest
16
{
17
    const TOKEN_LABEL = 'github-token';
18
19 6
    public function __construct($origin, $url, IO\IOInterface $io)
20
    {
21 6
        parent::__construct($origin, $url, $io);
22 6
        if ($this->password === 'x-oauth-basic') {
23 1
            $this->query['access_token'] = $this->username;
24
            // forbid basic-auth
25 1
            $this->username = $this->password = null;
26 1
        }
27 6
    }
28
29 3
    public function getURL()
30
    {
31 3
        return preg_replace(
32 3
            '%^https://api\.github\.com/repos(/[^/]+/[^/]+/)zipball(.*)%',
33 3
            'https://codeload.github.com$1legacy.zip$2',
34 3
            parent::getURL()
35 3
        );
36
    }
37
38 1
    public function promptAuth(HttpGetResponse $res, IO\IOInterface $io)
39
    {
40 1
        $util = new \Composer\Util\GitHub($io, $this->config, null);
41 1
        $this->promptAuthWithUtil(404, $util, $res, $io);
0 ignored issues
show
Documentation introduced by
$util is of type object<Composer\Util\GitHub>, but the function expects a object<Composer\Composer...r\Composer\Util\GitLab>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
42 1
    }
43
}
44