Compare commits

..
5 Commits
Author SHA1 Message Date
github-actions[bot] d89c1de63c v1.4.4 2023-05-10 05:27:50 +00:00
github-actions[bot]andgithub-actions[bot] 28271921f0 Version Packages (#292)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-10 07:26:55 +02:00
Mateusz Burzyński ba5ea93f34 Replace Parcel with ncc 2023-05-09 17:44:11 +02:00
Mateusz Burzyński 4e64830a00 Update Jest 2023-05-09 17:32:35 +02:00
Viktor VarlandandMateusz Burzyński db8a1099bc Wire up @octokit/plugin-throttling with all GitHub Octokit instances (#291)
* fix: use throttling-wired octokit everywhere

* test: fix run.test.ts

* Update .changeset/new-worms-knock.md

---------

Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
2023-05-09 17:21:08 +02:00
8 changed files with 1547 additions and 6704 deletions
+6
View File
@@ -1,5 +1,11 @@
# @changesets/action # @changesets/action
## 1.4.4
### Patch Changes
- [#291](https://github.com/changesets/action/pull/291) [`db8a109`](https://github.com/changesets/action/commit/db8a1099bc0ba1dd6f46a5b9df4212e4f69e78c9) Thanks [@varl](https://github.com/varl)! - Wire up [`@octokit/plugin-throttling`](https://github.com/octokit/plugin-throttling.js) with all GitHub Octokit instances
## 1.4.3 ## 1.4.3
### Patch Changes ### Patch Changes
+59 -967
View File
File diff suppressed because one or more lines are too long
+6 -6
View File
@@ -1,19 +1,19 @@
{ {
"name": "@changesets/action", "name": "@changesets/action",
"version": "1.4.3", "version": "1.4.4",
"main": "dist/index.js", "main": "dist/index.js",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@changesets/changelog-github": "^0.4.2", "@changesets/changelog-github": "^0.4.2",
"@changesets/cli": "^2.20.0", "@changesets/cli": "^2.20.0",
"@changesets/write": "^0.1.6", "@changesets/write": "^0.1.6",
"@vercel/ncc": "^0.36.1",
"fixturez": "^1.1.0", "fixturez": "^1.1.0",
"parcel": "^1.12.3",
"prettier": "^2.0.5", "prettier": "^2.0.5",
"typescript": "^5.0.4" "typescript": "^5.0.4"
}, },
"scripts": { "scripts": {
"build": "parcel build ./src/index.ts --no-source-maps --target=node --bundle-node-modules", "build": "ncc build src/index.ts -o dist --transpile-only --minify",
"test": "jest", "test": "jest",
"test:watch": "yarn test --watch", "test:watch": "yarn test --watch",
"changeset": "changeset", "changeset": "changeset",
@@ -35,13 +35,13 @@
"@manypkg/get-packages": "^1.1.3", "@manypkg/get-packages": "^1.1.3",
"@octokit/plugin-throttling": "5.1.1", "@octokit/plugin-throttling": "5.1.1",
"@types/fs-extra": "^8.0.0", "@types/fs-extra": "^8.0.0",
"@types/jest": "^24.0.18", "@types/jest": "^29.5.1",
"@types/node": "^12.7.1", "@types/node": "^12.7.1",
"@types/semver": "^6.0.2", "@types/semver": "^6.0.2",
"babel-jest": "^24.9.0", "babel-jest": "^29.5.0",
"fs-extra": "^8.1.0", "fs-extra": "^8.1.0",
"husky": "^3.0.3", "husky": "^3.0.3",
"jest": "^24.9.0", "jest": "^29.5.0",
"mdast-util-to-string": "^1.0.6", "mdast-util-to-string": "^1.0.6",
"remark-parse": "^7.0.1", "remark-parse": "^7.0.1",
"remark-stringify": "^7.0.3", "remark-stringify": "^7.0.3",
+10 -10
View File
@@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`version creates simple PR 1`] = ` exports[`version creates simple PR 1`] = `
Array [ [
Object { {
"base": "some-branch", "base": "some-branch",
"body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated. "body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated.
@@ -34,8 +34,8 @@ Array [
`; `;
exports[`version does not include any release information if a message with simplified release info exceeds size limit 1`] = ` exports[`version does not include any release information if a message with simplified release info exceeds size limit 1`] = `
Array [ [
Object { {
"base": "some-branch", "base": "some-branch",
"body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated. "body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated.
@@ -52,8 +52,8 @@ Array [
`; `;
exports[`version does not include changelog entries if full message exceeds size limit 1`] = ` exports[`version does not include changelog entries if full message exceeds size limit 1`] = `
Array [ [
Object { {
"base": "some-branch", "base": "some-branch",
"body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated. "body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated.
@@ -74,8 +74,8 @@ Array [
`; `;
exports[`version doesn't include ignored package that got a dependency update in the PR body 1`] = ` exports[`version doesn't include ignored package that got a dependency update in the PR body 1`] = `
Array [ [
Object { {
"base": "some-branch", "base": "some-branch",
"body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated. "body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated.
@@ -96,8 +96,8 @@ Array [
`; `;
exports[`version only includes bumped packages in the PR body 1`] = ` exports[`version only includes bumped packages in the PR body 1`] = `
Array [ [
Object { {
"base": "some-branch", "base": "some-branch",
"body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated. "body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated.
+4 -4
View File
@@ -1,18 +1,18 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`it sorts the things right 1`] = ` exports[`it sorts the things right 1`] = `
Array [ [
Object { {
"highestLevel": 3, "highestLevel": 3,
"name": "c", "name": "c",
"private": false, "private": false,
}, },
Object { {
"highestLevel": 1, "highestLevel": 1,
"name": "b", "name": "b",
"private": false, "private": false,
}, },
Object { {
"highestLevel": 3, "highestLevel": 3,
"name": "a", "name": "a",
"private": true, "private": true,
+14 -4
View File
@@ -1,5 +1,6 @@
import fixturez from "fixturez"; import fixturez from "fixturez";
import * as github from "@actions/github"; import * as github from "@actions/github";
import * as githubUtils from "@actions/github/lib/utils";
import fs from "fs-extra"; import fs from "fs-extra";
import path from "path"; import path from "path";
import writeChangeset from "@changesets/write"; import writeChangeset from "@changesets/write";
@@ -15,7 +16,19 @@ jest.mock("@actions/github", () => ({
ref: "refs/heads/some-branch", ref: "refs/heads/some-branch",
sha: "xeac7", sha: "xeac7",
}, },
getOctokit: jest.fn(), }));
jest.mock("@actions/github/lib/utils", () => ({
GitHub: {
plugin: () => {
// function necessary to be used as constructor
return function() {
return {
rest: mockedGithubMethods,
}
}
},
},
getOctokitOptions: jest.fn(),
})); }));
jest.mock("./gitUtils"); jest.mock("./gitUtils");
@@ -30,9 +43,6 @@ let mockedGithubMethods = {
createRelease: jest.fn(), createRelease: jest.fn(),
}, },
}; };
(github.getOctokit as any).mockImplementation(() => ({
rest: mockedGithubMethods,
}));
let f = fixturez(__dirname); let f = fixturez(__dirname);
+39 -33
View File
@@ -26,8 +26,42 @@ import type {} from "@octokit/plugin-throttling/dist-types/types.d";
// To avoid that, we ensure to cap the message to 60k chars. // To avoid that, we ensure to cap the message to 60k chars.
const MAX_CHARACTERS_PER_MESSAGE = 60000; const MAX_CHARACTERS_PER_MESSAGE = 60000;
const setupOctokit = (githubToken) => {
return new (GitHub.plugin(throttling))(
getOctokitOptions(githubToken, {
throttle: {
onRateLimit: (retryAfter, options: any, octokit, retryCount) => {
core.warning(
`Request quota exhausted for request ${options.method} ${options.url}`
);
if (retryCount <= 2) {
core.info(`Retrying after ${retryAfter} seconds!`);
return true;
}
},
onSecondaryRateLimit: (
retryAfter,
options: any,
octokit,
retryCount
) => {
core.warning(
`SecondaryRateLimit detected for request ${options.method} ${options.url}`
);
if (retryCount <= 2) {
core.info(`Retrying after ${retryAfter} seconds!`);
return true;
}
},
},
})
);
};
const createRelease = async ( const createRelease = async (
octokit: ReturnType<typeof github.getOctokit>, octokit: ReturnType<typeof GitHub>,
{ pkg, tagName }: { pkg: Package; tagName: string } { pkg, tagName }: { pkg: Package; tagName: string }
) => { ) => {
try { try {
@@ -83,37 +117,7 @@ export async function runPublish({
createGithubReleases, createGithubReleases,
cwd = process.cwd(), cwd = process.cwd(),
}: PublishOptions): Promise<PublishResult> { }: PublishOptions): Promise<PublishResult> {
const octokit = new (GitHub.plugin(throttling))( const octokit = setupOctokit(githubToken);
getOctokitOptions(githubToken, {
throttle: {
onRateLimit: (retryAfter, options: any, octokit, retryCount) => {
core.warning(
`Request quota exhausted for request ${options.method} ${options.url}`
);
if (retryCount <= 2) {
core.info(`Retrying after ${retryAfter} seconds!`);
return true;
}
},
onSecondaryRateLimit: (
retryAfter,
options: any,
octokit,
retryCount
) => {
core.warning(
`SecondaryRateLimit detected for request ${options.method} ${options.url}`
);
if (retryCount <= 2) {
core.info(`Retrying after ${retryAfter} seconds!`);
return true;
}
},
},
})
);
let [publishCommand, ...publishArgs] = script.split(/\s+/); let [publishCommand, ...publishArgs] = script.split(/\s+/);
@@ -302,10 +306,12 @@ export async function runVersion({
hasPublishScript = false, hasPublishScript = false,
prBodyMaxCharacters = MAX_CHARACTERS_PER_MESSAGE, prBodyMaxCharacters = MAX_CHARACTERS_PER_MESSAGE,
}: VersionOptions): Promise<RunVersionResult> { }: VersionOptions): Promise<RunVersionResult> {
const octokit = setupOctokit(githubToken);
let repo = `${github.context.repo.owner}/${github.context.repo.repo}`; let repo = `${github.context.repo.owner}/${github.context.repo.repo}`;
let branch = github.context.ref.replace("refs/heads/", ""); let branch = github.context.ref.replace("refs/heads/", "");
let versionBranch = `changeset-release/${branch}`; let versionBranch = `changeset-release/${branch}`;
let octokit = github.getOctokit(githubToken);
let { preState } = await readChangesetState(cwd); let { preState } = await readChangesetState(cwd);
await gitUtils.switchToMaybeExistingBranch(versionBranch); await gitUtils.switchToMaybeExistingBranch(versionBranch);
+1409 -5680
View File
File diff suppressed because it is too large Load Diff