find-github-release.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { Octokit } from '@octokit/rest';
  2. import { createGitHubTokenStrategy } from './github-token';
  3. import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from './types';
  4. if (process.argv.length < 3) {
  5. console.log('Usage: find-release version');
  6. process.exit(1);
  7. }
  8. const version = process.argv[2];
  9. const targetRepo = findRepo();
  10. const octokit = new Octokit({
  11. authStrategy: createGitHubTokenStrategy(targetRepo)
  12. });
  13. function findRepo (): ElectronReleaseRepo {
  14. return version.indexOf('nightly') > 0 ? NIGHTLY_REPO : ELECTRON_REPO;
  15. }
  16. async function findRelease () {
  17. const releases = await octokit.repos.listReleases({
  18. owner: ELECTRON_ORG,
  19. repo: targetRepo
  20. });
  21. const targetRelease = releases.data.find(release => release.tag_name === version);
  22. let returnObject = {};
  23. if (targetRelease) {
  24. returnObject = {
  25. id: targetRelease.id,
  26. draft: targetRelease.draft,
  27. exists: true
  28. };
  29. } else {
  30. returnObject = {
  31. exists: false,
  32. draft: false
  33. };
  34. }
  35. console.log(JSON.stringify(returnObject));
  36. }
  37. findRelease()
  38. .catch((err) => {
  39. console.error(err);
  40. process.exit(1);
  41. });