UNPKG

node-releaser

Version:

Software versioning, releasing and publishing tool.

51 lines (43 loc) 1.11 kB
import got from "got"; class Github { token=null userAgent=null constructor({token, userAgent}) { this.token = token this.userAgent = userAgent this.userTimeZone = this.findTimezone() } init() { } async createRelease(owner, repo, tag, body) { try { const response = await got({ method: 'POST', url: `https://api.github.com/repos/${owner}/${repo}/releases`, headers: { 'Authorization': `Bearer ${this.token}`, 'Accept': 'application/vnd.github+json', 'X-GitHub-Api-Version': '2022-11-28' }, json: { tag_name: tag, body: body } }) try { const body = JSON.parse(response.rawBody.toString()) } catch (err2) { return new Error(`Github release failed. Couldn't parse response body.`, {cause: err2}) } } catch (err) { return new Error(`Github release failed: ${e.message}`, {cause: err}) } return true } findTimezone() { return Intl.DateTimeFormat().resolvedOptions().timeZone } } export default Github