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.
Passed
Push — master ( 6b4e63...3bee67 )
by
unknown
09:47
created

credentials.TestDefaultChainNoCred   A

Complexity

Conditions 2

Size

Total Lines 31
Code Lines 29

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 29
nop 1
dl 0
loc 31
rs 9.184
c 0
b 0
f 0
1
package credentials
2
3
import (
4
	"os"
5
	"testing"
6
7
	"github.com/alibabacloud-go/tea/tea"
8
	"github.com/stretchr/testify/assert"
9
)
10
11
func TestProviderChain(t *testing.T) {
12
	env := newEnvProvider()
13
	pp := newProfileProvider()
14
	instanceP := newInstanceCredentialsProvider()
15
16
	pc := newProviderChain([]Provider{env, pp, instanceP})
17
18
	originAccessKeyIdNew := os.Getenv(EnvVarAccessKeyIdNew)
19
	originAccessKeyId := os.Getenv(EnvVarAccessKeyId)
20
	originAccessKeySecret := os.Getenv(EnvVarAccessKeySecret)
21
	os.Setenv(EnvVarAccessKeyId, "")
22
	os.Setenv(EnvVarAccessKeyIdNew, "")
23
	os.Setenv(EnvVarAccessKeySecret, "")
24
	defer func() {
25
		os.Setenv(EnvVarAccessKeyIdNew, originAccessKeyIdNew)
26
		os.Setenv(EnvVarAccessKeyId, originAccessKeyId)
27
		os.Setenv(EnvVarAccessKeySecret, originAccessKeySecret)
28
	}()
29
	c, err := pc.resolve()
30
	assert.Nil(t, c)
31
	assert.EqualError(t, err, "ALIBABA_CLOUD_ACCESS_KEY_ID or ALIBABA_CLOUD_ACCESS_KEY_Id cannot be empty")
32
33
	os.Setenv(EnvVarAccessKeyId, "AccessKeyId")
34
	os.Setenv(EnvVarAccessKeySecret, "AccessKeySecret")
35
	c, err = pc.resolve()
36
	assert.NotNil(t, c)
37
	assert.Nil(t, err)
38
39
	os.Unsetenv(EnvVarAccessKeyId)
40
	os.Unsetenv(EnvVarAccessKeySecret)
41
	os.Unsetenv(ENVCredentialFile)
42
	os.Unsetenv(ENVEcsMetadata)
43
44
	c, err = pc.resolve()
45
	assert.Nil(t, c)
46
	assert.EqualError(t, err, "No credential found")
47
}
48
49
func TestDefaultChainNoCred(t *testing.T) {
50
	accessKeyIdNew := os.Getenv(EnvVarAccessKeyIdNew)
51
	accessKeyId := os.Getenv(EnvVarAccessKeyId)
52
	accessKeySecret := os.Getenv(EnvVarAccessKeySecret)
53
	ecsMetadata := os.Getenv(ENVEcsMetadata)
54
	roleArn := os.Getenv(ENVRoleArn)
55
	oidcProviderArn := os.Getenv(ENVOIDCProviderArn)
56
	oidcTokenFilePath := os.Getenv(ENVOIDCTokenFile)
57
	roleSessionName := os.Getenv(ENVRoleSessionName)
58
	os.Unsetenv(EnvVarAccessKeyId)
59
	os.Unsetenv(EnvVarAccessKeySecret)
60
	os.Unsetenv(ENVCredentialFile)
61
	os.Unsetenv(ENVEcsMetadata)
62
	os.Unsetenv(ENVRoleArn)
63
	os.Unsetenv(ENVOIDCProviderArn)
64
	os.Unsetenv(ENVOIDCTokenFile)
65
	os.Unsetenv(ENVRoleSessionName)
66
	defer func() {
67
		os.Setenv(EnvVarAccessKeyIdNew, accessKeyIdNew)
68
		os.Setenv(EnvVarAccessKeyId, accessKeyId)
69
		os.Setenv(EnvVarAccessKeySecret, accessKeySecret)
70
		os.Setenv(ENVEcsMetadata, ecsMetadata)
71
		os.Setenv(ENVRoleArn, roleArn)
72
		os.Setenv(ENVOIDCProviderArn, oidcProviderArn)
73
		os.Setenv(ENVOIDCTokenFile, oidcTokenFilePath)
74
		os.Setenv(ENVRoleSessionName, roleSessionName)
75
	}()
76
77
	chain, err := defaultChain.resolve()
78
	assert.Nil(t, chain)
79
	assert.Equal(t, "No credential found", err.Error())
80
}
81
82
func TestDefaultChainHasCred(t *testing.T) {
83
	accessKeyIdNew := os.Getenv(EnvVarAccessKeyIdNew)
84
	accessKeyId := os.Getenv(EnvVarAccessKeyId)
85
	accessKeySecret := os.Getenv(EnvVarAccessKeySecret)
86
	os.Unsetenv(EnvVarAccessKeyId)
87
	os.Unsetenv(EnvVarAccessKeySecret)
88
	os.Unsetenv(ENVCredentialFile)
89
90
	path, _ := os.Getwd()
91
	oidcTokenFilePathVar := path + "/oidc_token"
92
	roleArn := os.Getenv(ENVRoleArn)
93
	oidcProviderArn := os.Getenv(ENVOIDCProviderArn)
94
	oidcTokenFilePath := os.Getenv(ENVOIDCTokenFile)
95
	roleSessionName := os.Getenv(ENVRoleSessionName)
96
	os.Setenv(ENVRoleArn, "acs:ram::roleArn:role/roleArn")
97
	os.Setenv(ENVOIDCProviderArn, "acs:ram::roleArn")
98
	os.Setenv(ENVOIDCTokenFile, oidcTokenFilePathVar)
99
	os.Setenv(ENVRoleSessionName, "roleSessionName")
100
	defer func() {
101
		os.Setenv(EnvVarAccessKeyIdNew, accessKeyIdNew)
102
		os.Setenv(EnvVarAccessKeyId, accessKeyId)
103
		os.Setenv(EnvVarAccessKeySecret, accessKeySecret)
104
		os.Setenv(ENVRoleArn, roleArn)
105
		os.Setenv(ENVOIDCProviderArn, oidcProviderArn)
106
		os.Setenv(ENVOIDCTokenFile, oidcTokenFilePath)
107
		os.Setenv(ENVRoleSessionName, roleSessionName)
108
	}()
109
110
	config, err := defaultChain.resolve()
111
	assert.NotNil(t, config)
112
	assert.Nil(t, err)
113
	assert.Equal(t, "acs:ram::roleArn:role/roleArn", tea.StringValue(config.RoleArn))
114
	assert.Equal(t, "acs:ram::roleArn", tea.StringValue(config.OIDCProviderArn))
115
	assert.Equal(t, oidcTokenFilePathVar, tea.StringValue(config.OIDCTokenFilePath))
116
	assert.Equal(t, "roleSessionName", tea.StringValue(config.RoleSessionName))
117
	assert.Equal(t, "oidc_role_arn", tea.StringValue(config.Type))
118
119
	cred, err := NewCredential(nil)
120
	assert.Nil(t, err)
121
	assert.NotNil(t, cred)
122
	assert.Contains(t, "oidc_role_arn", tea.StringValue(cred.GetType()))
123
}
124