const step = msg => console.log(chalk.cyan(msg))
async function main() {
+ if (!(await isInSyncWithRemote())) {
+ return
+ } else {
+ console.log(`${chalk.green(`✓`)} commit is up-to-date with rmeote.\n`)
+ }
+
let targetVersion = args._[0]
if (isCanary) {
const data = await res.json()
return data.workflow_runs.length > 0
} catch (e) {
+ console.error('Failed to get CI status for current commit.')
+ return false
+ }
+}
+
+async function isInSyncWithRemote() {
+ try {
+ const { stdout: sha } = await execa('git', ['rev-parse', 'HEAD'])
+ const { stdout: branch } = await execa('git', [
+ 'rev-parse',
+ '--abbrev-ref',
+ 'HEAD'
+ ])
+ const res = await fetch(
+ `https://api.github.com/repos/vuejs/core/commits/${branch}?per_page=1`
+ )
+ const data = await res.json()
+ return data.sha === sha
+ } catch (e) {
+ console.error(
+ 'Failed to check whether local HEAD is up-to-date with remote.'
+ )
return false
}
}