-
Notifications
You must be signed in to change notification settings - Fork 47
/
enable-security-alerts-for-org-check.js
43 lines (38 loc) · 1.21 KB
/
enable-security-alerts-for-org-check.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
#!/usr/bin/env node
require('dotenv').config()
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' })
const RequestPromises = []
octokit
.paginate(options)
.then(repositories => {
for (const repository of repositories) {
if (!repository.archived) {
const repo = repository.name
RequestPromises.push(octokit.repos.checkVulnerabilityAlerts({
owner,
repo
}).then(response => {
return true
}).catch(error => {
return `${owner}/${repo}`
}))
}
}
Promise.all(RequestPromises).then(responses => {
if (responses.every(value => { return value === true })) {
console.log('Success! All repos have security vulnerability alerts enabled')
} else {
const reposWithoutVulnerabilityAlerts = responses.filter(result => result !== true)
console.log(`Failure! Repos without security vulnerability alerts enabled:
${reposWithoutVulnerabilityAlerts}
`)
}
})
})