mirror of
https://github.com/ivabus/pantry
synced 2024-11-30 12:15:06 +03:00
42 lines
986 B
TypeScript
42 lines
986 B
TypeScript
|
#!/usr/bin/env -S tea -E
|
||
|
|
||
|
/*---
|
||
|
args:
|
||
|
- deno
|
||
|
- run
|
||
|
- --allow-read
|
||
|
- --allow-env
|
||
|
- --allow-net
|
||
|
- --import-map={{ srcroot }}/import-map.json
|
||
|
---*/
|
||
|
|
||
|
import { usePantry } from "hooks"
|
||
|
import { panic } from "utils"
|
||
|
import * as semver from "semver"
|
||
|
|
||
|
const url = Deno.env.get("WATCHER_URL") ?? panic("missing $WATCHER_URL")
|
||
|
const token = Deno.env.get("TEA_API_TOKEN") ?? panic("missing $TEA_API_TOKEN")
|
||
|
|
||
|
const pantry = usePantry()
|
||
|
|
||
|
const rv: Set<{project: string, github: string}> = new Set()
|
||
|
|
||
|
for await (const {project} of pantry.ls()) {
|
||
|
const yml = await pantry.getYAML({project, constraint: new semver.Range('*') }).parse()
|
||
|
if (yml?.versions?.github) {
|
||
|
const github = yml.versions.github.split('/').slice(0, 2).join('/')
|
||
|
rv.add({ project, github })
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const options = {
|
||
|
method: 'PUT',
|
||
|
headers: {
|
||
|
'Content-Type': 'application/json',
|
||
|
'Authorization': `bearer ${token}`,
|
||
|
},
|
||
|
body: JSON.stringify([...rv]),
|
||
|
}
|
||
|
|
||
|
console.log(rv)
|
||
|
await fetch(url, options)
|