-
Notifications
You must be signed in to change notification settings - Fork 47
/
enable-security-alerts-for-org.js
51 lines (47 loc) · 1.27 KB
/
enable-security-alerts-for-org.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/env node
require('dotenv').config()
const pReduce = require('./lib/p-reduce');
const delay = require('./lib/delay');
const Octokit = require('@octokit/rest')
const octokit = new Octokit({
auth: process.env.GH_AUTH_TOKEN,
previews: ['dorian-preview']
})
const [, , ...args] = process.argv
const owner = args
const options = octokit.repos.listForOrg.endpoint.merge({org: owner, type: 'all'})
octokit
.paginate(options)
.then(repositories =>
pReduce(repositories, (repository) => {
if (repository.archived) {
return Promise.resolve();
}
const repo = repository.name
return octokit.repos
.enableVulnerabilityAlerts({
owner,
repo
})
.then(response => {
if (response && response.status === 204) {
console.log(`Success for ${owner}/${repo}`)
} else {
console.log(`Failed for ${owner}/${repo}`)
}
return delay(500);
})
.catch(error => {
console.error(`Failed for ${owner}/${repo}
${error.message}
${error.documentation_url}
`)
})
})
)
.catch(error => {
console.error(`Getting repositories for organization ${owner} failed.
${error.message} (${error.status})
${error.documentation_url}
`)
})