apify-test-tools 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/.github/workflows/_check_code.yaml +17 -19
  2. package/.github/workflows/_update_release_metadata.yaml +1 -1
  3. package/.github/workflows/manual_release_stable.yaml +1 -0
  4. package/.github/workflows/on_master.yaml +2 -0
  5. package/.husky/pre-commit +13 -0
  6. package/CHANGELOG.md +11 -3
  7. package/CONTRIBUTING.md +5 -0
  8. package/README.md +39 -43
  9. package/bin/build.ts +138 -87
  10. package/bin/diff-changes.ts +156 -0
  11. package/bin/diff-json-schema.ts +50 -0
  12. package/bin/git.ts +42 -11
  13. package/bin/github.ts +7 -6
  14. package/bin/main.ts +21 -11
  15. package/bin/slack.ts +6 -2
  16. package/bin/test-report.ts +55 -44
  17. package/bin/types.ts +56 -59
  18. package/bin/utils.ts +19 -131
  19. package/dist/bin/build.d.ts +1 -1
  20. package/dist/bin/build.d.ts.map +1 -1
  21. package/dist/bin/build.js +49 -31
  22. package/dist/bin/build.js.map +1 -1
  23. package/dist/bin/diff-changes.d.ts +16 -0
  24. package/dist/bin/diff-changes.d.ts.map +1 -0
  25. package/dist/bin/diff-changes.js +103 -0
  26. package/dist/bin/diff-changes.js.map +1 -0
  27. package/dist/bin/diff-json-schema.d.ts +7 -0
  28. package/dist/bin/diff-json-schema.d.ts.map +1 -0
  29. package/dist/bin/diff-json-schema.js +45 -0
  30. package/dist/bin/diff-json-schema.js.map +1 -0
  31. package/dist/bin/git.d.ts +8 -3
  32. package/dist/bin/git.d.ts.map +1 -1
  33. package/dist/bin/git.js +35 -10
  34. package/dist/bin/git.js.map +1 -1
  35. package/dist/bin/github.d.ts +1 -3
  36. package/dist/bin/github.d.ts.map +1 -1
  37. package/dist/bin/github.js +5 -5
  38. package/dist/bin/github.js.map +1 -1
  39. package/dist/bin/main.js +14 -5
  40. package/dist/bin/main.js.map +1 -1
  41. package/dist/bin/slack.d.ts +1 -1
  42. package/dist/bin/slack.d.ts.map +1 -1
  43. package/dist/bin/slack.js +1 -1
  44. package/dist/bin/slack.js.map +1 -1
  45. package/dist/bin/test-report.d.ts.map +1 -1
  46. package/dist/bin/test-report.js +9 -3
  47. package/dist/bin/test-report.js.map +1 -1
  48. package/dist/bin/types.d.ts +0 -1
  49. package/dist/bin/types.d.ts.map +1 -1
  50. package/dist/bin/utils.d.ts +0 -14
  51. package/dist/bin/utils.d.ts.map +1 -1
  52. package/dist/bin/utils.js +12 -95
  53. package/dist/bin/utils.js.map +1 -1
  54. package/dist/lib/extend-expect.d.ts.map +1 -1
  55. package/dist/lib/extend-expect.js +11 -11
  56. package/dist/lib/extend-expect.js.map +1 -1
  57. package/dist/lib/lib.d.ts +3 -2
  58. package/dist/lib/lib.d.ts.map +1 -1
  59. package/dist/lib/lib.js +7 -3
  60. package/dist/lib/lib.js.map +1 -1
  61. package/dist/lib/run-test-result.d.ts +1 -1
  62. package/dist/lib/run-test-result.d.ts.map +1 -1
  63. package/dist/lib/run-test-result.js.map +1 -1
  64. package/dist/lib/types.d.ts +2 -3
  65. package/dist/lib/types.d.ts.map +1 -1
  66. package/dist/lib/utils.d.ts +1 -1
  67. package/dist/lib/utils.d.ts.map +1 -1
  68. package/dist/lib/utils.js +4 -1
  69. package/dist/lib/utils.js.map +1 -1
  70. package/dist/test/unit/bin/diff-changes.test.d.ts +2 -0
  71. package/dist/test/unit/bin/diff-changes.test.d.ts.map +1 -0
  72. package/dist/test/unit/bin/diff-changes.test.js +159 -0
  73. package/dist/test/unit/bin/diff-changes.test.js.map +1 -0
  74. package/dist/test/unit/bin/diff.test.d.ts +2 -0
  75. package/dist/test/unit/bin/diff.test.d.ts.map +1 -0
  76. package/dist/test/unit/bin/diff.test.js +143 -0
  77. package/dist/test/unit/bin/diff.test.js.map +1 -0
  78. package/dist/test/unit/bin/git.test.js +48 -19
  79. package/dist/test/unit/bin/git.test.js.map +1 -1
  80. package/dist/test/unit/custom-matchers.test.js +3 -8
  81. package/dist/test/unit/custom-matchers.test.js.map +1 -1
  82. package/dist/test/unit/parse-commit.test.js +1 -1
  83. package/dist/test/unit/parse-commit.test.js.map +1 -1
  84. package/dist/test/unit/should-built-and-test.test.js +159 -39
  85. package/dist/test/unit/should-built-and-test.test.js.map +1 -1
  86. package/dist/tsconfig.tsbuildinfo +1 -1
  87. package/eslint.config.mjs +4 -2
  88. package/knip.json +1 -1
  89. package/lib/extend-expect.ts +21 -21
  90. package/lib/lib.ts +17 -17
  91. package/lib/run-test-result.ts +6 -2
  92. package/lib/types.ts +5 -8
  93. package/lib/utils.ts +13 -9
  94. package/package.json +10 -3
  95. package/test/tsconfig.json +2 -4
  96. package/test/unit/bin/diff-changes.test.ts +182 -0
  97. package/test/unit/bin/diff.test.ts +212 -0
  98. package/test/unit/bin/git.test.ts +59 -20
  99. package/test/unit/custom-matchers.test.ts +10 -9
  100. package/test/unit/parse-commit.test.ts +2 -1
  101. package/test/unit/should-built-and-test.test.ts +181 -40
  102. package/bin/consts.ts +0 -6
  103. package/dist/bin/consts.d.ts +0 -4
  104. package/dist/bin/consts.d.ts.map +0 -1
  105. package/dist/bin/consts.js +0 -6
  106. package/dist/bin/consts.js.map +0 -1
  107. package/example-github-events/pull-request.json +0 -523
  108. package/example-github-events/push.json +0 -216
package/dist/bin/build.js CHANGED
@@ -1,10 +1,9 @@
1
- import { ACTOR_SOURCE_TYPES } from '@apify/consts';
2
1
  import { ApifyClient } from 'apify-client';
2
+ import { ACTOR_SOURCE_TYPES } from '@apify/consts';
3
3
  import { getEnvVar } from './utils.js';
4
4
  class ApifyBuilder {
5
5
  apifyClient;
6
6
  actorName;
7
- // eslint-disable-next-line no-empty-function
8
7
  constructor(apifyClient, actorName) {
9
8
  this.apifyClient = apifyClient;
10
9
  this.actorName = actorName;
@@ -20,8 +19,8 @@ class ApifyBuilder {
20
19
  console.error(`Default build tag for ${this.actorName} is ${defaultBuildTag}`);
21
20
  // We could technically allow this but in most cases this is accidentally set wrongly and there is a workaround
22
21
  if (defaultBuildTag.match(/\d+\.\d+\.\d+/)) {
23
- throw new Error(`[${this.actorName}] Default build is a build number, not a tag. While this could work, `
24
- + `we want to have a default as tag so this is often an accidental misconfiguration from the dev`);
22
+ throw new Error(`[${this.actorName}] Default build is a build number, not a tag. While this could work, ` +
23
+ `we want to have a default as tag so this is often an accidental misconfiguration from the dev`);
25
24
  }
26
25
  // I reported that buildNumber should probably not be optional
27
26
  const defaultBuildNumber = actorInfo.taggedBuilds[defaultBuildTag].buildNumber;
@@ -29,13 +28,13 @@ class ApifyBuilder {
29
28
  console.error(`Default version for ${this.actorName} is ${defaultVersionNumber}`);
30
29
  return { defaultBuildNumber, defaultVersionNumber, defaultBuildTag };
31
30
  };
32
- startActorBuild = async ({ buildTag, versionNumber, gitRepoUrl, }) => {
31
+ startActorBuild = async ({ buildTag, versionNumber, gitRepoUrl }) => {
33
32
  const actorClient = this.apifyClient.actor(this.actorName);
34
33
  const actorInfo = await actorClient.get();
35
34
  if (!actorInfo) {
36
- throw new Error(`No actor named '${this.actorName}' was found on the platform. If this`
37
- + ' is unexpected, make sure the actor you are targeting is spelled the'
38
- + ' same as the folder in the repository.');
35
+ throw new Error(`No actor named '${this.actorName}' was found on the platform. If this` +
36
+ ' is unexpected, make sure the actor you are targeting is spelled the' +
37
+ ' same as the folder in the repository.');
39
38
  }
40
39
  const actorVersion = {
41
40
  buildTag,
@@ -64,8 +63,8 @@ class ApifyBuilder {
64
63
  const build = await this.apifyClient.build(buildId).waitForFinish();
65
64
  const versionNumber = build.buildNumber;
66
65
  if (build.status === 'FAILED' || build.status === 'TIMED-OUT') {
67
- const message = `[BUILD][${actorName}]: Build ${buildId} (${versionNumber}) failed. `
68
- + `Not continuing with other builds and tests.`;
66
+ const message = `[BUILD][${actorName}]: Build ${buildId} (${versionNumber}) failed. ` +
67
+ `Not continuing with other builds and tests.`;
69
68
  console.error(`[${this.actorName}]: ${versionNumber}`);
70
69
  throw new Error(message);
71
70
  }
@@ -73,8 +72,8 @@ class ApifyBuilder {
73
72
  return build;
74
73
  };
75
74
  /**
76
- * Create ApifyBuilder with actor owner's token
77
- */
75
+ * Create ApifyBuilder with actor owner's token
76
+ */
78
77
  static fromActorName = (actorName) => {
79
78
  const username = actorName.split('/')[0];
80
79
  // GitHib secrets only allow word characters (alphanum + underscore)
@@ -82,8 +81,8 @@ class ApifyBuilder {
82
81
  const usernameEnvVar = `APIFY_TOKEN_${usernameInGitHubSecretsFormat}`;
83
82
  const token = process.env[usernameEnvVar];
84
83
  if (!token) {
85
- throw new Error(`Cannot find Apify API token for username: ${username}. `
86
- + `Have you set secret env var to this GitHub repo with key: ${usernameEnvVar}?`);
84
+ throw new Error(`Cannot find Apify API token for username: ${username}. ` +
85
+ `Have you set secret env var to this GitHub repo with key: ${usernameEnvVar}?`);
87
86
  }
88
87
  const apifyClient = new ApifyClient({ token });
89
88
  const builder = new ApifyBuilder(apifyClient, actorName);
@@ -97,7 +96,21 @@ class ApifyBuilder {
97
96
  // Even though we don't version our current Actors, if we ever such Actors to GitHub CI, we would accidentally delete old supported versions
98
97
  // This hardcoded solution is not ideal, but it should prevent most imaginable cases
99
98
  // All currently popular versioned Actors use `version-${number}` format
100
- const PROTECTED_TAGS_PREFIX = ['latest', 'v-', 'version', 'v0', 'v1', 'v2', 'v3', 'v4', 'v5', 'v6', 'v7', 'v8', 'v9'];
99
+ const PROTECTED_TAGS_PREFIX = [
100
+ 'latest',
101
+ 'v-',
102
+ 'version',
103
+ 'v0',
104
+ 'v1',
105
+ 'v2',
106
+ 'v3',
107
+ 'v4',
108
+ 'v5',
109
+ 'v6',
110
+ 'v7',
111
+ 'v8',
112
+ 'v9',
113
+ ];
101
114
  // We don't want to be too short because we might to debug something
102
115
  // but also not too long because it increases the risk of users using outdated versions
103
116
  const DEFAULT_DAYS_BACK_PROD_VERSIONS = 30;
@@ -107,16 +120,19 @@ class ApifyBuilder {
107
120
  const taggedDevelBuildNumber = actorInfo.taggedBuilds.devel?.buildNumber;
108
121
  const allTags = Object.keys(actorInfo.taggedBuilds ?? {});
109
122
  const protectedTags = allTags.filter((tag) => PROTECTED_TAGS_PREFIX.some((prefix) => tag.startsWith(prefix)));
110
- const protectedBuildNumbers = protectedTags.map((tag) => ({ buildNumber: actorInfo.taggedBuilds[tag].buildNumber, tag }));
111
- const { items } = (await this.apifyClient.actor(this.actorName).builds().list());
123
+ const protectedBuildNumbers = protectedTags.map((tag) => ({
124
+ buildNumber: actorInfo.taggedBuilds[tag].buildNumber,
125
+ tag,
126
+ }));
127
+ const { items } = await this.apifyClient.actor(this.actorName).builds().list();
112
128
  // Deleting default build throws an error, so we skip it
113
129
  const { defaultBuildNumber, defaultBuildTag } = await ApifyBuilder.fromActorName(this.actorName).getDefaultVersionAndTag();
114
130
  const daysAgoUnixProd = Date.now() - DEFAULT_DAYS_BACK_PROD_VERSIONS * 24 * 60 * 60 * 1000;
115
131
  const daysAgoUnixDevel = Date.now() - DEFAULT_DAYS_BACK_DEVEL * 24 * 60 * 60 * 1000;
116
132
  const buildsToDelete = items.filter((build) => {
117
133
  if (build.buildNumber === defaultBuildNumber) {
118
- console.error(`[DELETE OLD BUILDS][${this.actorName}]: Skipping default build ${defaultBuildNumber} (${defaultBuildTag}). `
119
- + `We never delete default builds`);
134
+ console.error(`[DELETE OLD BUILDS][${this.actorName}]: Skipping default build ${defaultBuildNumber} (${defaultBuildTag}). ` +
135
+ `We never delete default builds`);
120
136
  return false;
121
137
  }
122
138
  const protectedTagFound = protectedBuildNumbers.find((protectedBuildNumber) => protectedBuildNumber.buildNumber === build.buildNumber);
@@ -133,14 +149,14 @@ class ApifyBuilder {
133
149
  }
134
150
  return build.startedAt.getTime() < daysAgoUnixProd;
135
151
  });
136
- console.error(`[DELETE OLD BUILDS][${this.actorName}]: Deleting ${buildsToDelete.length} old builds that are non-default and `
137
- + `older than 30 days from total ${items.length}`);
152
+ console.error(`[DELETE OLD BUILDS][${this.actorName}]: Deleting ${buildsToDelete.length} old builds that are non-default and ` +
153
+ `older than 30 days from total ${items.length}`);
138
154
  for (const build of buildsToDelete) {
139
155
  await this.apifyClient.build(build.id).delete();
140
156
  }
141
157
  }
142
158
  }
143
- export const runBuilds = async ({ repoUrl, branch, actorConfigs, isLatest = false, dryRun, }) => {
159
+ export const runBuilds = async ({ repoUrl, branch, actorConfigs, isLatest = false, dryRun }) => {
144
160
  const buildConfigs = [];
145
161
  const circleActors = isLatest ? await findCircleApifyManaged(actorConfigs) : [];
146
162
  for (const { actorName, folder } of actorConfigs.concat(circleActors)) {
@@ -164,25 +180,25 @@ export const runBuilds = async ({ repoUrl, branch, actorConfigs, isLatest = fals
164
180
  if (dryRun) {
165
181
  return buildConfigs;
166
182
  }
167
- console.error("=========================================");
168
- console.error("STARTED BUILDS:");
183
+ console.error('=========================================');
184
+ console.error('STARTED BUILDS:');
169
185
  const startedBuilds = await Promise.all(buildConfigs.map(async (buildConfig) => {
170
186
  const builder = ApifyBuilder.fromActorName(buildConfig.actorName);
171
187
  const buildData = await builder.startActorBuild(buildConfig);
172
188
  return buildData;
173
189
  }));
174
- console.error("=========================================");
175
- console.error("FINISHED BUILDS:");
190
+ console.error('=========================================');
191
+ console.error('FINISHED BUILDS:');
176
192
  await Promise.all(startedBuilds.map(async (buildData) => {
177
193
  const builder = ApifyBuilder.fromActorName(buildData.actorName);
178
194
  await builder.waitForBuildToFinish(buildData.buildId, buildData.actorName);
179
195
  }));
180
- console.error("=========================================");
181
- console.error("SUMMARY:");
196
+ console.error('=========================================');
197
+ console.error('SUMMARY:');
182
198
  for (const buildData of startedBuilds.sort((a, b) => a.actorName.localeCompare(b.actorName))) {
183
199
  console.error(`[${buildData.actorName}]: ${buildData.buildNumber} `);
184
200
  }
185
- console.error("=========================================");
201
+ console.error('=========================================');
186
202
  return startedBuilds;
187
203
  };
188
204
  export const deleteOldBuilds = async (actorConfigs) => {
@@ -201,7 +217,8 @@ const findCircleApifyManaged = async (actorConfigs) => {
201
217
  // This token is hardcoded in the runner Actor, locally you have to inject it
202
218
  const client = new ApifyClient({ token: getEnvVar('APIFY_TOKEN_CIRC_LE') });
203
219
  const { items: circleActors } = await client.actors().list();
204
- const actorsToBuild = circleActors.map((circleActor) => {
220
+ const actorsToBuild = circleActors
221
+ .map((circleActor) => {
205
222
  // They prefix all with apify-managed---, I communicated with Jacques to keep doing that
206
223
  let actorConfigFound = actorConfigs.find((actorConfig) => circleActor.name.replace('apify-managed---', '') === actorConfig.actorName.split('/')[1]);
207
224
  // Hack for bad naming of circ_le/apify-managed-google-search, we don't want to rename now to break customers
@@ -217,7 +234,8 @@ const findCircleApifyManaged = async (actorConfigs) => {
217
234
  };
218
235
  }
219
236
  return undefined;
220
- }).filter((config) => config !== undefined);
237
+ })
238
+ .filter((config) => config !== undefined);
221
239
  console.error(`Found ${actorsToBuild.length} circ_le actors that match Actors we built out of total ${circleActors.length} circ_le actors`);
222
240
  console.error(`All circ_le actors: ${circleActors.map((actor) => actor.name).join(', ')}`);
223
241
  console.error(`circ_le Actors to build: ${actorsToBuild.map((actor) => actor.actorName).join(', ')}`);
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../bin/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../bin/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ActorConfig, Commit } from './types.js';
2
+ interface ShouldBuildAndTestOptions {
3
+ filepathsChanged: string[];
4
+ actorConfigs: ActorConfig[];
5
+ isLatest?: boolean;
6
+ commits: Commit[];
7
+ }
8
+ export declare const maybeParseActorFolder: (lowercaseFilePath: string) => {
9
+ isActorFolder: true;
10
+ actorName: string;
11
+ } | {
12
+ isActorFolder: false;
13
+ };
14
+ export declare const getChangedActors: ({ filepathsChanged, actorConfigs, isLatest, commits, }: ShouldBuildAndTestOptions) => ActorConfig[];
15
+ export {};
16
+ //# sourceMappingURL=diff-changes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-changes.d.ts","sourceRoot":"","sources":["../../bin/diff-changes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEtD,UAAU,yBAAyB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,GAC9B,mBAAmB,MAAM,KAC1B;IAAE,aAAa,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,aAAa,EAAE,KAAK,CAAA;CAOrE,CAAC;AAyEF,eAAO,MAAM,gBAAgB,GAAI,wDAK9B,yBAAyB,KAAG,WAAW,EA0DzC,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { isCosmeticOnlyJsonSchemaChange } from './diff-json-schema.js';
2
+ export const maybeParseActorFolder = (lowercaseFilePath) => {
3
+ const match = lowercaseFilePath.match(/^(?:standalone-)?actors\/([^/]+)\/.+/);
4
+ if (match) {
5
+ // Some usernames weirdly use underscores, e.g. google_maps_email_extractor_standby-contact-details-scraper so we only need replace the last one
6
+ return { isActorFolder: true, actorName: match[1].replace(/_(?=[^_]*$)/, '/') };
7
+ }
8
+ return { isActorFolder: false };
9
+ };
10
+ /**
11
+ * Also works for folders
12
+ */
13
+ const isIgnoredTopLevelFile = (lowercaseFilePath) => {
14
+ // On top level, we should only have dev-only readme and .actor/ is just for apify push CLI (real Actor configs are in /actors)
15
+ const IGNORED_TOP_LEVEL_FILES = [
16
+ '.vscode/',
17
+ '.gitignore',
18
+ 'readme.md',
19
+ '.husky/',
20
+ '.eslintrc',
21
+ 'eslint.config.mjs',
22
+ '.prettierrc',
23
+ '.editorconfig',
24
+ '.actor/',
25
+ ];
26
+ // Strip out deprecated /code and /shared folders, treat them as top-level code
27
+ const sanitizedLowercaseFilePath = lowercaseFilePath.replace(/^code\//, '').replace(/^shared\//, '');
28
+ return IGNORED_TOP_LEVEL_FILES.some((ignoredFile) => sanitizedLowercaseFilePath.startsWith(ignoredFile));
29
+ };
30
+ const classifyFileChange = (lowercaseFilePath, actorConfigs, commits) => {
31
+ if (isIgnoredTopLevelFile(lowercaseFilePath)) {
32
+ return { impact: 'ignored' };
33
+ }
34
+ if (lowercaseFilePath.endsWith('changelog.md')) {
35
+ return { impact: 'cosmetic', includes: 'all-actors' };
36
+ }
37
+ const actorFolderInfo = maybeParseActorFolder(lowercaseFilePath);
38
+ if (actorFolderInfo.isActorFolder) {
39
+ const actorConfigChanged = actorConfigs.find(({ actorName }) => actorName.toLowerCase() === actorFolderInfo.actorName);
40
+ // This is some super weird case that happened once in the past but I don't remember the context anymore
41
+ if (actorConfigChanged === undefined) {
42
+ console.error('SHOULD NEVER HAPPEN: changes was found in an actor folder which no longer exists in the current commit, skipping this file', {
43
+ actorName: actorFolderInfo.actorName,
44
+ lowercaseFilePath,
45
+ });
46
+ return { impact: 'ignored' };
47
+ }
48
+ if (lowercaseFilePath.endsWith('readme.md')) {
49
+ return { impact: 'cosmetic', includes: actorConfigChanged };
50
+ }
51
+ if (lowercaseFilePath.endsWith('.json') && isCosmeticOnlyJsonSchemaChange(commits, lowercaseFilePath)) {
52
+ return { impact: 'cosmetic', includes: actorConfigChanged };
53
+ }
54
+ return { impact: 'functional', includes: actorConfigChanged };
55
+ }
56
+ // For any other files, we assume they can interact with the code
57
+ return { impact: 'functional', includes: 'all-actors' };
58
+ };
59
+ export const getChangedActors = ({ filepathsChanged, actorConfigs, isLatest = false, commits, }) => {
60
+ // folder -> ActorConfig
61
+ const actorsChangedMap = new Map();
62
+ const actorConfigsWithoutStandalone = actorConfigs.filter(({ isStandalone }) => !isStandalone);
63
+ const lowercaseFiles = filepathsChanged.map((file) => file.toLowerCase());
64
+ for (const lowercaseFilePath of lowercaseFiles) {
65
+ const fileChange = classifyFileChange(lowercaseFilePath, actorConfigs, commits);
66
+ if (fileChange.impact === 'ignored') {
67
+ continue;
68
+ }
69
+ if (fileChange.impact === 'cosmetic' && !isLatest) {
70
+ continue;
71
+ }
72
+ if (fileChange.includes !== 'all-actors') {
73
+ actorsChangedMap.set(fileChange.includes.folder, fileChange.includes);
74
+ }
75
+ else if (fileChange.includes === 'all-actors') {
76
+ // Standalone Actors are handled always via specific actors change, not all-actors
77
+ for (const actorConfig of actorConfigsWithoutStandalone) {
78
+ actorsChangedMap.set(actorConfig.folder, actorConfig);
79
+ }
80
+ }
81
+ }
82
+ const actorsChanged = Array.from(actorsChangedMap.values());
83
+ // All below here is just for logging
84
+ const ignoredFilesChanged = lowercaseFiles.filter((file) => classifyFileChange(file, actorConfigs, commits).impact === 'ignored');
85
+ console.error(`[DIFF]: Ignored files (don't trigger test or build): ${ignoredFilesChanged.join(', ')}`);
86
+ const cosmeticFilesChanged = lowercaseFiles.filter((file) => classifyFileChange(file, actorConfigs, commits).impact === 'cosmetic');
87
+ console.error(`[DIFF]: Cosmetic files (should only trigger release build): ${cosmeticFilesChanged.join(', ')}`);
88
+ const functionalFilesChanged = lowercaseFiles.filter((file) => classifyFileChange(file, actorConfigs, commits).impact === 'functional');
89
+ console.error(`[DIFF]: Functional files (trigger test & release build): ${functionalFilesChanged.join(', ')}`);
90
+ if (actorsChanged.length > 0) {
91
+ const miniactors = actorsChanged.filter((config) => !config.isStandalone).map((config) => config.actorName);
92
+ const standaloneActors = actorsChanged
93
+ .filter((config) => config.isStandalone)
94
+ .map((config) => config.actorName);
95
+ console.error(`[DIFF]: MiniActors to be built and tested: ${miniactors.join(', ')}`);
96
+ console.error(`[DIFF]: Standalone Actors to be built and tested: ${standaloneActors.join(', ')}`);
97
+ }
98
+ else {
99
+ console.error(`[DIFF]: No relevant files changed, skipping builds and tests`);
100
+ }
101
+ return actorsChanged;
102
+ };
103
+ //# sourceMappingURL=diff-changes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-changes.js","sourceRoot":"","sources":["../../bin/diff-changes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Commit } from './types.js';
2
+ /**
3
+ * Returns true if the two JSON strings differ only in cosmetic fields
4
+ * (title, description, example, enumTitles, sectionCaption, sectionDescription).
5
+ */
6
+ export declare const isCosmeticOnlyJsonSchemaChange: (commits: Commit[], changedFilepath: string) => boolean;
7
+ //# sourceMappingURL=diff-json-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-json-schema.d.ts","sourceRoot":"","sources":["../../bin/diff-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AA0BzC;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GAAI,SAAS,MAAM,EAAE,EAAE,iBAAiB,MAAM,KAAG,OAmB3F,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { spawnCommandInGhWorkspace } from './utils.js';
2
+ const COSMETIC_JSON_FIELD_NAMES = new Set([
3
+ 'title',
4
+ 'description',
5
+ 'example',
6
+ 'enumTitles',
7
+ 'sectionCaption',
8
+ 'sectionDescription',
9
+ ]);
10
+ const isPlainObject = (val) => typeof val === 'object' && val !== null && !Array.isArray(val);
11
+ const isCosmeticObjectChange = (oldVal, newVal, currentKey) => {
12
+ // If the key itself is cosmetic, any change under it is fine
13
+ if (currentKey && COSMETIC_JSON_FIELD_NAMES.has(currentKey))
14
+ return true;
15
+ if (JSON.stringify(oldVal) === JSON.stringify(newVal))
16
+ return true;
17
+ if (isPlainObject(oldVal) && isPlainObject(newVal)) {
18
+ const allKeys = new Set([...Object.keys(oldVal), ...Object.keys(newVal)]);
19
+ return [...allKeys].every((key) => isCosmeticObjectChange(oldVal[key], newVal[key], key));
20
+ }
21
+ return false;
22
+ };
23
+ /**
24
+ * Returns true if the two JSON strings differ only in cosmetic fields
25
+ * (title, description, example, enumTitles, sectionCaption, sectionDescription).
26
+ */
27
+ export const isCosmeticOnlyJsonSchemaChange = (commits, changedFilepath) => {
28
+ // TODO: validate this is the right commit range
29
+ const oldRef = `${commits[0].sha}~`;
30
+ const newRef = commits[commits.length - 1].sha;
31
+ let oldJson;
32
+ let newJson;
33
+ try {
34
+ const oldContent = spawnCommandInGhWorkspace(`git show ${oldRef}:${changedFilepath}`);
35
+ const newContent = spawnCommandInGhWorkspace(`git show ${newRef}:${changedFilepath}`);
36
+ oldJson = JSON.parse(oldContent);
37
+ newJson = JSON.parse(newContent);
38
+ }
39
+ catch {
40
+ console.error(`Failed to get or parse JSON content for ${changedFilepath} at refs ${oldRef} and ${newRef}, maybe it is new file or deleted? Treating it as a non-cosmetic change.`);
41
+ return false;
42
+ }
43
+ return isCosmeticObjectChange(oldJson, newJson);
44
+ };
45
+ //# sourceMappingURL=diff-json-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-json-schema.js","sourceRoot":"","sources":["../../bin/diff-json-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACtC,OAAO;IACP,aAAa;IACb,SAAS;IACT,YAAY;IACZ,gBAAgB;IAChB,oBAAoB;CACvB,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,GAAY,EAAkC,EAAE,CACnE,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnE,MAAM,sBAAsB,GAAG,CAAC,MAAe,EAAE,MAAe,EAAE,UAAmB,EAAW,EAAE;IAC9F,6DAA6D;IAC7D,IAAI,UAAU,IAAI,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,OAAiB,EAAE,eAAuB,EAAW,EAAE;IAClG,gDAAgD;IAChD,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/C,IAAI,OAAgB,CAAC;IACrB,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,yBAAyB,CAAC,YAAY,MAAM,IAAI,eAAe,EAAE,CAAC,CAAC;QACtF,MAAM,UAAU,GAAG,yBAAyB,CAAC,YAAY,MAAM,IAAI,eAAe,EAAE,CAAC,CAAC;QAEtF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,KAAK,CACT,2CAA2C,eAAe,YAAY,MAAM,QAAQ,MAAM,0EAA0E,CACvK,CAAC;QACF,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC,CAAC"}
package/dist/bin/git.d.ts CHANGED
@@ -1,14 +1,19 @@
1
- import { Commit, Config } from './types.js';
1
+ import type { Commit, Config } from './types.js';
2
2
  export declare const GIT_FORMAT_SEPARATOR = "\u00BB\u00A6\u00AB";
3
3
  /**
4
4
  * Gets the list of changed files between the given commits (inclusive).
5
5
  */
6
6
  export declare const getChangedFiles: (commits: Commit[]) => string[];
7
+ /**
8
+ *
9
+ * @param shaOrCommit Supports both a SHA string or a Commit object in JSON format. Can be empty.
10
+ * @returns The SHA string if valid, otherwise throws an error.
11
+ */
12
+ export declare const parseBaseCommit: (shaOrCommit: string | undefined) => string | undefined;
7
13
  /**
8
14
  * Gets the commits between sourceBranch and targetBranch (exclusive).
9
15
  * - If baseCommit is provided, only returns commits after the baseCommit.
10
16
  */
11
- export declare const getCommits: ({ sourceBranch, targetBranch, baseCommit: baseCommitSha }: Config) => Commit[];
12
- export declare const getCommitInfo: (commitSha: string) => Commit;
17
+ export declare const getCommits: ({ sourceBranch, targetBranch, baseCommit }: Config) => Commit[];
13
18
  export declare const parseCommit: (commitString: string) => Commit;
14
19
  //# sourceMappingURL=git.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG5C,eAAO,MAAM,oBAAoB,uBAAQ,CAAC;AAG1C;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,MAAM,EAAE,aAMhD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,2DAA2D,MAAM,KAAG,MAAM,EAapG,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,KAAG,MAIjD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,MAYlD,CAAC"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGjD,eAAO,MAAM,oBAAoB,uBAAQ,CAAC;AAG1C;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,MAAM,EAAE,aAQhD,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAc1E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,4CAA4C,MAAM,KAAG,MAAM,EAyBrF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,MAYlD,CAAC"}
package/dist/bin/git.js CHANGED
@@ -5,28 +5,53 @@ const GIT_LOG_FORMAT = ['%H', '%aN<%aE>', '%aD', '%s'].join(GIT_FORMAT_SEPARATOR
5
5
  * Gets the list of changed files between the given commits (inclusive).
6
6
  */
7
7
  export const getChangedFiles = (commits) => {
8
- const changedFiles = spawnCommandInGhWorkspace(`git diff --name-only ${commits[0].sha}~..${commits[commits.length - 1].sha}`);
9
- return changedFiles.split('\n');
8
+ const changedFilesString = spawnCommandInGhWorkspace(`git diff --name-only ${commits[0].sha}~..${commits[commits.length - 1].sha}`);
9
+ const changedFiles = changedFilesString.split('\n');
10
+ console.error(`Changed files (up to 50): ${changedFiles.slice(0, 50).join(', ')}`);
11
+ return changedFiles;
12
+ };
13
+ const SHA_REGEX = /^[0-9a-f]{40}$/i;
14
+ /**
15
+ *
16
+ * @param shaOrCommit Supports both a SHA string or a Commit object in JSON format. Can be empty.
17
+ * @returns The SHA string if valid, otherwise throws an error.
18
+ */
19
+ export const parseBaseCommit = (shaOrCommit) => {
20
+ if (!shaOrCommit)
21
+ return undefined;
22
+ let sha;
23
+ if (shaOrCommit.startsWith('{')) {
24
+ sha = JSON.parse(shaOrCommit).sha;
25
+ }
26
+ else {
27
+ sha = shaOrCommit;
28
+ }
29
+ if (!SHA_REGEX.test(sha)) {
30
+ throw new Error(`Invalid base commit SHA: "${sha}". It should be a 40-character hexadecimal string, instead got input: "${shaOrCommit}".`);
31
+ }
32
+ return sha;
10
33
  };
11
34
  /**
12
35
  * Gets the commits between sourceBranch and targetBranch (exclusive).
13
36
  * - If baseCommit is provided, only returns commits after the baseCommit.
14
37
  */
15
- export const getCommits = ({ sourceBranch, targetBranch, baseCommit: baseCommitSha }) => {
38
+ export const getCommits = ({ sourceBranch, targetBranch, baseCommit }) => {
39
+ const baseCommitSha = parseBaseCommit(baseCommit);
16
40
  const commitsStrings = spawnCommandInGhWorkspace(`git log --pretty=format:'${GIT_LOG_FORMAT}' ${targetBranch}..${sourceBranch}`).split('\n');
17
41
  const commits = commitsStrings.map((commitString) => parseCommit(commitString));
18
42
  commits.reverse();
19
43
  const baseCommitIndex = commits.findIndex((commit) => commit.sha === baseCommitSha);
20
44
  const hasBaseCommit = baseCommitIndex !== -1;
21
- if (hasBaseCommit)
22
- return commits.slice(baseCommitIndex + 1);
45
+ if (hasBaseCommit) {
46
+ const commitsUpToBaseCommit = commits.slice(baseCommitIndex + 1);
47
+ console.error(`Found base commit ${baseCommitSha} at index ${baseCommitIndex}, returning ${commitsUpToBaseCommit.length} commits after it`);
48
+ console.error(`Commits being returned: ${commitsUpToBaseCommit.map((c) => c.sha).join(', ')}`);
49
+ return commitsUpToBaseCommit;
50
+ }
51
+ console.error(`Base commit ${baseCommitSha} not found in the commit range, returning all ${commits.length} commits`);
52
+ console.error(`Commits being returned: ${commits.map((c) => c.sha).join(', ')}`);
23
53
  return commits;
24
54
  };
25
- export const getCommitInfo = (commitSha) => {
26
- const commitString = spawnCommandInGhWorkspace(`git log -1 --pretty=format:'${GIT_LOG_FORMAT}' ${commitSha}`);
27
- const commit = parseCommit(commitString);
28
- return commit;
29
- };
30
55
  export const parseCommit = (commitString) => {
31
56
  const splits = commitString.split(GIT_FORMAT_SEPARATOR);
32
57
  if (splits.length !== 4) {
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAC1C,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAiB,EAAE,EAAE;IACjD,MAAM,YAAY,GAAG,yBAAyB,CAC1C,wBAAwB,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAChF,CAAC;IAEF,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAU,EAAY,EAAE;IACtG,MAAM,cAAc,GAAG,yBAAyB,CAC5C,4BAA4B,cAAc,KAAK,YAAY,KAAK,YAAY,EAAE,CACjF,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,OAAO,EAAE,CAAC;IAElB,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,aAAa,CAAC,CAAC;IAEpF,MAAM,aAAa,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC;IAC7C,IAAI,aAAa;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;IAE7D,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAU,EAAE;IACvD,MAAM,YAAY,GAAG,yBAAyB,CAAC,+BAA+B,cAAc,KAAK,SAAS,EAAE,CAAC,CAAC;IAC9G,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,YAAoB,EAAU,EAAE;IACxD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAC5C,OAAO;QACH,GAAG;QACH,MAAM;QACN,IAAI;QACJ,OAAO;KACV,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAC1C,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAiB,EAAE,EAAE;IACjD,MAAM,kBAAkB,GAAG,yBAAyB,CAChD,wBAAwB,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAChF,CAAC;IAEF,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,6BAA6B,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnF,OAAO,YAAY,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAEpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAA+B,EAAsB,EAAE;IACnF,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,GAAW,CAAC;IAChB,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAY,CAAC,GAAG,CAAC;IAClD,CAAC;SAAM,CAAC;QACJ,GAAG,GAAG,WAAW,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACX,6BAA6B,GAAG,0EAA0E,WAAW,IAAI,CAC5H,CAAC;IACN,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAU,EAAY,EAAE;IACvF,MAAM,aAAa,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,yBAAyB,CAC5C,4BAA4B,cAAc,KAAK,YAAY,KAAK,YAAY,EAAE,CACjF,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,OAAO,EAAE,CAAC;IAElB,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,aAAa,CAAC,CAAC;IAEpF,MAAM,aAAa,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC;IAC7C,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CACT,qBAAqB,aAAa,aAAa,eAAe,eAAe,qBAAqB,CAAC,MAAM,mBAAmB,CAC/H,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,2BAA2B,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/F,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,KAAK,CACT,eAAe,aAAa,iDAAiD,OAAO,CAAC,MAAM,UAAU,CACxG,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjF,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,YAAoB,EAAU,EAAE;IACxD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAC5C,OAAO;QACH,GAAG;QACH,MAAM;QACN,IAAI;QACJ,OAAO;KACV,CAAC;AACN,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Commit, GitHubEventPush } from './types.js';
1
+ import type { Commit } from './types.js';
2
2
  export declare const getPushData: (path: string) => Promise<{
3
3
  branch: string;
4
4
  commits: Commit[];
@@ -8,6 +8,4 @@ export declare const getPushData: (path: string) => Promise<{
8
8
  repository: string;
9
9
  author: string;
10
10
  }>;
11
- export declare const loadGitHubEvent: (path: string) => Promise<GitHubEventPush>;
12
- export declare const getChangelogChanges: (changedFiles: string[], event: GitHubEventPush) => string | null;
13
11
  //# sourceMappingURL=github.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../bin/github.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGrD,eAAO,MAAM,WAAW,GAAU,MAAM,MAAM;;;;;;;;EAyB7C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,eAAe,CAG3E,CAAC;AAOF,eAAO,MAAM,mBAAmB,GAAI,cAAc,MAAM,EAAE,EAAE,OAAO,eAAe,KAAG,MAAM,GAAG,IA0B7F,CAAC"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../bin/github.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,YAAY,CAAC;AAG1D,eAAO,MAAM,WAAW,GAAU,MAAM,MAAM;;;;;;;;EAyB7C,CAAC"}
@@ -1,11 +1,11 @@
1
- import fs from 'fs/promises';
1
+ import fs from 'node:fs/promises';
2
2
  import { spawnCommandInGhWorkspace } from './utils.js';
3
3
  export const getPushData = async (path) => {
4
4
  const event = await loadGitHubEvent(path);
5
5
  const branch = event.ref.replace('refs/heads/', '');
6
6
  const { commits: ghCommits, repository: { ssh_url: repoUrl, name }, head_commit: { author }, } = event;
7
- const commits = ghCommits.map(({ author, message, id, timestamp }) => ({
8
- author: author.username,
7
+ const commits = ghCommits.map(({ author: commitAuthor, message, id, timestamp }) => ({
8
+ author: commitAuthor.username,
9
9
  sha: id,
10
10
  message,
11
11
  date: timestamp,
@@ -22,7 +22,7 @@ export const getPushData = async (path) => {
22
22
  author: author.name,
23
23
  };
24
24
  };
25
- export const loadGitHubEvent = async (path) => {
25
+ const loadGitHubEvent = async (path) => {
26
26
  const pushEvent = JSON.parse((await fs.readFile(path)).toString());
27
27
  return pushEvent;
28
28
  };
@@ -30,7 +30,7 @@ const getChangedFiles = ({ after, before }) => {
30
30
  const changedFiles = spawnCommandInGhWorkspace(`git diff --name-only ${after}..${before}`);
31
31
  return changedFiles.split('\n');
32
32
  };
33
- export const getChangelogChanges = (changedFiles, event) => {
33
+ const getChangelogChanges = (changedFiles, event) => {
34
34
  const changelogPath = 'CHANGELOG.md';
35
35
  if (!changedFiles.includes(changelogPath)) {
36
36
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../bin/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IAC9C,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,EACF,OAAO,EAAE,SAAS,EAClB,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EACtC,WAAW,EAAE,EAAE,MAAM,EAAE,GAC1B,GAAG,KAAK,CAAC;IACV,MAAM,OAAO,GAAa,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7E,MAAM,EAAE,MAAM,CAAC,QAAQ;QACvB,GAAG,EAAE,EAAE;QACP,OAAO;QACP,IAAI,EAAE,SAAS;KAClB,CAAC,CAAC,CAAC;IACJ,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO;QACH,MAAM;QACN,OAAO;QACP,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,MAAM,CAAC,IAAI;KACtB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAA4B,EAAE;IAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAoB,CAAC;IACtF,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAmB,EAAY,EAAE;IACrE,MAAM,YAAY,GAAG,yBAAyB,CAAC,wBAAwB,KAAK,KAAK,MAAM,EAAE,CAAC,CAAC;IAC3F,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,YAAsB,EAAE,KAAsB,EAAiB,EAAE;IACjG,MAAM,aAAa,GAAG,cAAc,CAAC;IACrC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,IAAI,GAAG,yBAAyB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5F,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,0GAA0G;QAC1G,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACrF,gBAAgB,GAAG,IAAI,CAAC;YACxB,SAAS;QACb,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM;YACV,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC,CAAC"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../bin/github.ts"],"names":[],"mappings":"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"}