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   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 97
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 7

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 9
lcom 0
cbo 7
dl 0
loc 97
ccs 19
cts 19
cp 1
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A getBaseAuthorizationUrl() 0 4 1
A getBaseAccessTokenUrl() 0 4 1
A getResourceOwnerDetailsUrl() 0 4 1
A getDefaultScopes() 0 4 1
A checkResponse() 0 10 3
A createResourceOwner() 0 4 1
A createAccessToken() 0 4 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