Files
grafana/scripts/cli/tasks/cherrypick.ts
Torkel Ödegaard 5aea77fc95 Automation: Updates to yarn cli cherrypick & changelog tasks (#16357)
* Automation: Updated cherrypick task to show merge sha

* Fixed changelog milestone filtering
2019-04-03 09:50:24 +02:00

40 lines
1.1 KiB
TypeScript

import { Task, TaskRunner } from './task';
import axios from 'axios';
interface CherryPickOptions {}
const cherryPickRunner: TaskRunner<CherryPickOptions> = async () => {
let client = axios.create({
baseURL: 'https://api.github.com/repos/grafana/grafana',
timeout: 10000,
});
const res = await client.get('/issues', {
params: {
state: 'closed',
labels: 'cherry-pick needed',
},
});
// sort by closed date
res.data.sort(function(a, b) {
return new Date(b.closed_at).getTime() - new Date(a.closed_at).getTime();
});
for (const item of res.data) {
if (!item.milestone) {
console.log(item.number + ' missing milestone!');
continue;
}
console.log(`${item.title} (${item.number}) closed_at ${item.closed_at}`);
console.log(`\tURL: ${item.closed_at} ${item.html_url}`);
const issueDetails = await client.get(item.pull_request.url);
console.log(`\tMerge sha: ${issueDetails.data.merge_commit_sha}`);
}
};
export const cherryPickTask = new Task<CherryPickOptions>();
cherryPickTask.setName('Cherry pick task');
cherryPickTask.setRunner(cherryPickRunner);