1
1
import * as httpm from "@actions/http-client" ;
2
2
import * as core from "@actions/core" ;
3
3
4
+ interface HttpBinData {
5
+ url : string ;
6
+ data : any ;
7
+ json : any ;
8
+ headers : any ;
9
+ args ?: any ;
10
+ }
11
+
4
12
( async ( ) => {
5
13
// call API
6
14
let _http = new httpm . HttpClient ( ) ;
@@ -23,30 +31,31 @@ import * as core from "@actions/core";
23
31
}
24
32
25
33
var authIDToken = await core . getIDToken ( ) ;
26
- var secretsString = "" ;
27
34
28
- core . getMultilineInput ( "secrets" ) . forEach ( ( secret ) => {
29
- secretsString = secretsString + secret + "," ;
30
- } ) ;
35
+ var secretsString = core . getMultilineInput ( "secrets" ) ;
36
+ console . log ( JSON . stringify ( secretsString ) ) ;
31
37
32
- secretsString = secretsString . slice ( 0 , - 1 ) ;
38
+ var url = "https://prod.api.stepsecurity.io/v1/secrets" ;
39
+ const additionalHeaders = { Authorization : "Bearer " + authIDToken } ;
33
40
34
- var url =
35
- "https://prod.api.stepsecurity.io/v1/secrets?secrets=" + secretsString ;
41
+ var putResponse = await _http . putJson < HttpBinData > (
42
+ url ,
43
+ secretsString ,
44
+ additionalHeaders
45
+ ) ;
46
+ if ( putResponse . statusCode !== 200 ) {
47
+ console . log ( `error in sending secret metadata` ) ;
48
+ return ;
49
+ }
36
50
37
51
while ( true ) {
38
52
try {
39
- const additionalHeaders = { Authorization : "Bearer " + authIDToken } ;
40
-
41
53
var response = await _http . get ( url , additionalHeaders ) ;
42
- // The response should be something like
43
- // {"repo":"step-security/secureworkflows","runId":"123","areSecretsSet":true,"secrets":[{"Name":"secret1","Value":"val1"},{"Name":"secret2","Value":"valueofsecret2"}] }
44
54
if ( response . message . statusCode === 200 ) {
45
55
const body : string = await response . readBody ( ) ;
46
56
const respJSON = JSON . parse ( body ) ;
47
57
48
58
if ( respJSON . areSecretsSet === true ) {
49
- //something
50
59
respJSON . secrets . forEach ( ( secret ) => {
51
60
core . setOutput ( secret . Name , secret . Value ) ;
52
61
core . setSecret ( secret . Value ) ;
@@ -59,9 +68,12 @@ import * as core from "@actions/core";
59
68
}
60
69
break ;
61
70
} else {
62
- console . log ( "\x1b[32m%s\x1b[0m" , "Visit this URL to input secrets:" ) ;
63
- console . log ( secretUrl ) ;
64
-
71
+ console . log (
72
+ "\x1b[32m%s\x1b[0m" ,
73
+ "Visit this URL to input secrets:" ,
74
+ secretUrl
75
+ ) ;
76
+
65
77
await sleep ( 9000 ) ;
66
78
}
67
79
@@ -102,4 +114,4 @@ function sleep(ms) {
102
114
return new Promise ( ( resolve ) => {
103
115
setTimeout ( resolve , ms ) ;
104
116
} ) ;
105
- }
117
+ }
0 commit comments