GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Branch master (3a24ad)
by Chris
02:15
created

DigitalOcean::createAccessToken()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
crap 1
1
<?php
2
3
namespace ChrisHemmings\OAuth2\Client\Provider;
4
5
use ChrisHemmings\OAuth2\Client\Token\DigitalOceanAccessToken;
6
use League\OAuth2\Client\Grant\AbstractGrant;
7
use League\OAuth2\Client\Provider\AbstractProvider;
8
use League\OAuth2\Client\Provider\Exception\IdentityProviderException;
9
use League\OAuth2\Client\Provider\ResourceOwnerInterface;
10
use League\OAuth2\Client\Token\AccessToken;
11
use League\OAuth2\Client\Token\AccessTokenInterface;
12
use League\OAuth2\Client\Tool\BearerAuthorizationTrait;
13
use Psr\Http\Message\ResponseInterface;
14
15
class DigitalOcean extends AbstractProvider
16
{
17
    use BearerAuthorizationTrait;
18
19
    const ACCESS_TOKEN_RESOURCE_OWNER_ID = 'info.uuid';
20
21
    /**
22
     * Get authorization url to begin OAuth flow
23
     *
24
     * @return string
25
     */
26 6
    public function getBaseAuthorizationUrl()
27
    {
28 6
        return 'https://cloud.digitalocean.com/v1/oauth/authorize';
29
    }
30
31
    /**
32
     * Get access token url to retrieve token
33
     *
34
     * @param array $params
35
     *
36
     * @return string
37
     */
38 12
    public function getBaseAccessTokenUrl(array $params)
39
    {
40 12
        return 'https://cloud.digitalocean.com/v1/oauth/token';
41
    }
42
43
    /**
44
     * Get provider url to fetch user details
45
     *
46
     * @param AccessToken $token
47
     *
48
     * @return string
49
     */
50 3
    public function getResourceOwnerDetailsUrl(AccessToken $token)
51
    {
52 3
        return 'https://api.digitalocean.com/v2/account?' . http_build_query(['access_token' => $token->getToken()]);
53
    }
54
55
    /**
56
     * Get the default scopes used by this provider.
57
     *
58
     * @return array
59
     */
60 6
    protected function getDefaultScopes()
61
    {
62 6
        return [];
63
    }
64
65
    /**
66
     * Check a provider response for errors.
67
     *
68
     * @param ResponseInterface $response
69
     * @param array|string $data
70
     *
71
     * @throws IdentityProviderException
72
     */
73 9
    protected function checkResponse(ResponseInterface $response, $data)
74
    {
75 9
        if ($response->getStatusCode() >= 400) {
76 3
            throw new IdentityProviderException(
77 3
                $data['error'] ?: $response->getReasonPhrase(),
78 3
                $response->getStatusCode(),
79 2
                $data
80
            );
81
        }
82 6
    }
83
84
    /**
85
     * Generate a user object from a successful user details request.
86
     *
87
     * @param array $response
88
     * @param AccessToken $token
89
     *
90
     * @return League\OAuth2\Client\Provider\ResourceOwnerInterface
91
     */
92 3
    protected function createResourceOwner(array $response, AccessToken $token)
93
    {
94 3
        return new DigitalOceanResourceOwner($response);
95
    }
96
97
    /**
98
     * Creates an access token from a response.
99
     *
100
     * The grant that was used to fetch the response can be used to provide
101
     * additional context.
102
     *
103
     * @param  array $response
104
     * @param  AbstractGrant $grant
105
     * @return AccessTokenInterface
106
     */
107 6
    protected function createAccessToken(array $response, AbstractGrant $grant)
108
    {
109 6
        return new DigitalOceanAccessToken($response);
110
    }
111
}
112