Created
November 5, 2021 08:46
-
-
Save Jolg42/cdfa37fcd7686d5f5905e2d15e16c47a to your computer and use it in GitHub Desktop.
Run with `deno run --allow-net deno.ts`
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Octokit } from 'https://cdn.skypack.dev/@octokit/core' | |
// import { Endpoints } from 'https://cdn.skypack.dev/@octokit/types' | |
// type listMilestonesParameters = Endpoints['GET /repos/{owner}/{repo}/milestones']['parameters'] | |
// type listMilestonesResponse = Endpoints['GET /repos/{owner}/{repo}/milestones']['response'] | |
const token = 'ghp_....' | |
const octokit = new Octokit({ auth: token }) | |
// const repos = await octokit.request('GET /user/repos') | |
// console.log(repos.data) | |
const milestones = [ | |
{ | |
title: '3.5.0', | |
// "description": "" | |
due_on: '2021-11-16T07:00:00Z', | |
}, | |
] | |
const repos = [ | |
'studio', | |
'studio-code', | |
'prisma-engines', | |
'pdp-control-plane', | |
'prisma-examples', | |
'introspection-ci', | |
'migrations-ci', | |
'e2e-tests', | |
'language-tools', | |
'engines-wrapper', | |
'prisma-client-go', | |
'checkpoint.prisma.io', | |
'checkpoint-client', | |
're-introspection-ci', | |
// 'quaint', // no permission | |
'nexus-prisma', | |
'lens', | |
'migrations-team', | |
'prisma-private', | |
'error-reporting-gui', | |
'database-schema-examples', | |
] | |
// // https://docs.github.com/en/rest/reference/issues#milestones | |
// // const milestonesPrisma = await octokit.request(`GET /repos/{owner}/{repo}/milestones`) | |
// // console.log(milestonesPrisma) | |
for (let r = 0; r < repos.length; r++) { | |
const repo = repos[r] | |
// // List and close a specific milestone | |
const milestoneTitleToClose = '3.4.0' | |
if (milestoneTitleToClose) { | |
const milestones = await octokit.request(`GET /repos/{owner}/{repo}/milestones`, { | |
owner: 'prisma', | |
repo: repo, | |
}) | |
// @ts-ignore | |
const milestoneToClose = milestones.data.find((it) => it.title === milestoneTitleToClose && it.state === 'open') | |
console.log('Found a milestone to close') | |
if (milestoneToClose) { | |
const closeMilestoneResult = await octokit.request(`patch /repos/{owner}/{repo}/milestones/{milestone_number}`, { | |
owner: 'prisma', | |
repo: repo, | |
milestone_number: milestoneToClose.number, | |
state: 'closed', | |
}) | |
console.log(`Closed id:${closeMilestoneResult.data.number} title:${closeMilestoneResult.data.title}`) | |
} | |
} | |
// // Create milestones | |
// for (let m = 0; m < milestones.length; m++) { | |
// const milestone = milestones[m] | |
// const payload = { | |
// owner: 'prisma', | |
// repo: repo, | |
// title: milestone.title, | |
// // description: milestone.description, | |
// due_on: milestone.due_on, | |
// } | |
// try { | |
// const result = await octokit.request(`POST /repos/{owner}/{repo}/milestones`, payload) | |
// console.log(result) | |
// } catch (e) { | |
// if (e.status === 422) { | |
// console.log(`${repo} - ${milestone.title} already exists`) | |
// } else { | |
// throw e | |
// } | |
// } | |
// } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment