Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@dvashim/changesets-gitlab

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dvashim/changesets-gitlab - npm Package Compare versions

Comparing version
0.0.4
to
0.1.0
+1
lib/comment/comment.d.ts
export declare const comment: () => Promise<import("@gitbeaker/core").DiscussionSchema | import("@gitbeaker/core").MergeRequestNoteSchema | import("@gitbeaker/core").MergeRequestDiscussionNoteSchema | undefined>;
import { ValidationError } from '@changesets/errors';
import { GitbeakerRequestError } from '@gitbeaker/rest';
import { humanId } from 'human-id';
import { createApi } from "../api.js";
import * as context from "../context.js";
import { env } from "../env.js";
import { getChangedPackages } from "../get-changed-packages.js";
import { HTTP_STATUS_NOT_FOUND, TRUTHY_VALUES } from "../utils/constants.js";
import { VERBOSE_LOGGER } from "./constants.js";
import { getAbsentMessage } from "./getAbsentMessage.js";
import { getApproveMessage } from "./getApproveMessage.js";
import { getNewChangesetTemplate } from "./getNewChangesetTemplate.js";
import { getNoteInfo } from "./getNoteInfo.js";
import { hasChangesetBeenAdded } from "./hasChangesetBeenAdded.js";
export const comment = async () => {
if (env.GITLAB_CHANGESETS_DEBUG) {
VERBOSE_LOGGER.enable();
VERBOSE_LOGGER.print('running comment');
}
const mrBranch = env.CI_MERGE_REQUEST_SOURCE_BRANCH_NAME;
if (!mrBranch) {
console.warn('[changesets-gitlab:comment] It should only be used on MR');
return;
}
if (mrBranch.startsWith('changeset-release')) {
VERBOSE_LOGGER.print('Wrong branch', mrBranch);
return;
}
const { CI_MERGE_REQUEST_IID: mrIid, GITLAB_COMMENT_TYPE: commentType, GITLAB_ADD_CHANGESET_MESSAGE: commitMessage, CI_MERGE_REQUEST_SOURCE_BRANCH_SHA: latestCommitSha, } = env;
VERBOSE_LOGGER.print('env', {
mrIid,
commentType,
commitMessage,
latestCommitSha,
});
const api = createApi();
let errFromFetchingChangedFiles = '';
try {
const changedFilesPromise = api.MergeRequests.allDiffs(context.projectId, mrIid).catch(async (err) => {
VERBOSE_LOGGER.print('error 0', err);
if (!(err instanceof GitbeakerRequestError)
|| err.cause?.response.status !== HTTP_STATUS_NOT_FOUND) {
throw err;
}
const { changes } = await api.MergeRequests.showChanges(context.projectId, mrIid);
return changes;
});
const [noteInfo, hasChangeset, { changedPackages, releasePlan }] = await Promise.all([
getNoteInfo(api, mrIid, commentType),
hasChangesetBeenAdded(changedFilesPromise),
getChangedPackages({
changedFiles: changedFilesPromise.then((changedFiles) => changedFiles.map(({ new_path }) => new_path)),
api,
}).catch((err) => {
VERBOSE_LOGGER.print('error 1', err);
if (err instanceof ValidationError) {
errFromFetchingChangedFiles = `<details><summary>💥 An error occurred when fetching the changed packages and changesets in this MR</summary>\n\n\`\`\`\n${err.message}\n\`\`\`\n\n</details>\n`;
}
else {
console.error(err);
}
return {
changedPackages: ['@fake-scope/fake-pkg'],
releasePlan: null,
};
}),
]);
const newChangesetFileName = `.changeset/${humanId({
separator: '-',
capitalize: false,
})}.md`;
const newChangesetTemplate = getNewChangesetTemplate(changedPackages, env.CI_MERGE_REQUEST_TITLE);
const addChangesetUrl = `${env.CI_MERGE_REQUEST_PROJECT_URL}/-/new/${mrBranch}?file_name=${newChangesetFileName}&file=${encodeURIComponent(newChangesetTemplate)}${commitMessage
? `&commit_message=${encodeURIComponent(commitMessage)}`
: ''}`;
const newChangesetTemplateFallback = `
If the above link doesn't fill the changeset template file name and content which is [a known regression on GitLab >= 16.11](https://gitlab.com/gitlab-org/gitlab/-/issues/532221), you can copy and paste the following template into ${newChangesetFileName} instead:
\`\`\`yaml
${newChangesetTemplate}
\`\`\`
`.trim();
const prComment = (hasChangeset
? getApproveMessage(latestCommitSha, addChangesetUrl, newChangesetTemplateFallback, releasePlan)
: getAbsentMessage(latestCommitSha, addChangesetUrl, newChangesetTemplateFallback, releasePlan)) + errFromFetchingChangedFiles;
switch (commentType) {
case 'discussion': {
if (noteInfo) {
if (hasChangeset
&& TRUTHY_VALUES.has(env.GITLAB_COMMENT_DISCUSSION_AUTO_RESOLVE || '1')) {
await api.MergeRequestDiscussions.resolve(context.projectId, mrIid, noteInfo.discussionId, true);
}
return api.MergeRequestDiscussions.editNote(context.projectId, mrIid, noteInfo.discussionId, noteInfo.noteId, {
body: prComment,
});
}
return api.MergeRequestDiscussions.create(context.projectId, mrIid, prComment);
}
case 'note': {
if (noteInfo) {
return api.MergeRequestNotes.edit(context.projectId, mrIid, noteInfo.noteId, { body: prComment });
}
return api.MergeRequestNotes.create(context.projectId, mrIid, prComment);
}
default: {
VERBOSE_LOGGER.print('error 2', `Invalid comment type "${commentType}", should be "discussion" or "note"`);
throw new Error(`Invalid comment type "${commentType}", should be "discussion" or "note"`);
}
}
}
catch (err) {
VERBOSE_LOGGER.print('error 3', err);
if (err instanceof GitbeakerRequestError && err.cause) {
const { description, request, response } = err.cause;
console.error(description);
try {
console.error('request:', await request.text());
}
catch {
console.error("The error's request could not be used as plain text");
}
try {
console.error('response:', await response.text());
}
catch {
console.error("The error's response could not be used as plain text");
}
}
throw err;
}
};
//# sourceMappingURL=comment.js.map
{"version":3,"file":"comment.js","sourceRoot":"","sources":["../../src/comment/comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;IAChC,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC;QAChC,cAAc,CAAC,MAAM,EAAE,CAAA;QACvB,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,mCAAmC,CAAA;IAExD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;QACxE,OAAM;IACR,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC7C,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QAC9C,OAAM;IACR,CAAC;IAED,MAAM,EACJ,oBAAoB,EAAE,KAAK,EAC3B,mBAAmB,EAAE,WAAW,EAChC,4BAA4B,EAAE,aAAa,EAC3C,kCAAkC,EAAE,eAAe,GACpD,GAAG,GAAG,CAAA;IAEP,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE;QAC1B,KAAK;QACL,WAAW;QACX,aAAa;QACb,eAAe;KAChB,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;IAEvB,IAAI,2BAA2B,GAAG,EAAE,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,mBAAmB,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CACpD,OAAO,CAAC,SAAS,EACjB,KAAK,CACN,CAAC,KAAK,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;YAC7B,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;YAEpC,IACE,CAAC,CAAC,GAAG,YAAY,qBAAqB,CAAC;mBACpC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,qBAAqB,EACvD,CAAC;gBACD,MAAM,GAAG,CAAA;YACX,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,WAAW,CACrD,OAAO,CAAC,SAAS,EACjB,KAAK,CACN,CAAA;YAED,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,GAC9D,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC;YACpC,qBAAqB,CAAC,mBAAmB,CAAC;YAC1C,kBAAkB,CAAC;gBACjB,YAAY,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CACtD,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAC7C;gBACD,GAAG;aACJ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACxB,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;gBAEpC,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;oBACnC,2BAA2B,GAAG,4HAA4H,GAAG,CAAC,OAAO,0BAA0B,CAAA;gBACjM,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACpB,CAAC;gBAED,OAAO;oBACL,eAAe,EAAE,CAAC,sBAAsB,CAAC;oBACzC,WAAW,EAAE,IAAI;iBAClB,CAAA;YACH,CAAC,CAAC;SACM,CAAC,CAAA;QAEb,MAAM,oBAAoB,GAAG,cAAc,OAAO,CAAC;YACjD,SAAS,EAAE,GAAG;YACd,UAAU,EAAE,KAAK;SAClB,CAAC,KAAK,CAAA;QAEP,MAAM,oBAAoB,GAAG,uBAAuB,CAClD,eAAe,EACf,GAAG,CAAC,sBAAsB,CAC3B,CAAA;QAED,MAAM,eAAe,GAAG,GAAG,GAAG,CAAC,4BAA4B,UAAU,QAAQ,cAAc,oBAAoB,SAAS,kBAAkB,CAAC,oBAAoB,CAAC,GAC9J,aAAa;YACX,CAAC,CAAC,mBAAmB,kBAAkB,CAAC,aAAa,CAAC,EAAE;YACxD,CAAC,CAAC,EACN,EAAE,CAAA;QAEF,MAAM,4BAA4B,GAAG;yOACgM,oBAAoB;;;EAG3P,oBAAoB;;CAErB,CAAC,IAAI,EAAE,CAAA;QAEJ,MAAM,SAAS,GACb,CAAC,YAAY;YACX,CAAC,CAAC,iBAAiB,CACf,eAAe,EACf,eAAe,EACf,4BAA4B,EAC5B,WAAW,CACZ;YACH,CAAC,CAAC,gBAAgB,CACd,eAAe,EACf,eAAe,EACf,4BAA4B,EAC5B,WAAW,CACZ,CAAC,GAAG,2BAA2B,CAAA;QAEtC,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,QAAQ,EAAE,CAAC;oBACb,IACE,YAAY;2BACT,aAAa,CAAC,GAAG,CAClB,GAAG,CAAC,sCAAsC,IAAI,GAAG,CAClD,EACD,CAAC;wBACD,MAAM,GAAG,CAAC,uBAAuB,CAAC,OAAO,CACvC,OAAO,CAAC,SAAS,EACjB,KAAK,EACL,QAAQ,CAAC,YAAY,EACrB,IAAI,CACL,CAAA;oBACH,CAAC;oBAED,OAAO,GAAG,CAAC,uBAAuB,CAAC,QAAQ,CACzC,OAAO,CAAC,SAAS,EACjB,KAAK,EACL,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,MAAM,EACf;wBACE,IAAI,EAAE,SAAS;qBAChB,CACF,CAAA;gBACH,CAAC;gBAED,OAAO,GAAG,CAAC,uBAAuB,CAAC,MAAM,CACvC,OAAO,CAAC,SAAS,EACjB,KAAK,EACL,SAAS,CACV,CAAA;YACH,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAC/B,OAAO,CAAC,SAAS,EACjB,KAAK,EACL,QAAQ,CAAC,MAAM,EACf,EAAE,IAAI,EAAE,SAAS,EAAE,CACpB,CAAA;gBACH,CAAC;gBAED,OAAO,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;YAC1E,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACR,cAAc,CAAC,KAAK,CAClB,SAAS,EACT,yBAAyB,WAAW,qCAAqC,CAC1E,CAAA;gBAED,MAAM,IAAI,KAAK,CACb,yBAAyB,WAAW,qCAAqC,CAC1E,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAEpC,IAAI,GAAG,YAAY,qBAAqB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACtD,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,KAAK,CAAA;YACpD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YAC1B,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;YACtE,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACvE,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC,CAAA"}
import { Logger } from '../Logger.ts';
export declare const CUSTOM_LINKS: string | undefined;
export declare const ADD_CHANGESET_URL_PLACEHOLDER_REGEXP: RegExp;
export declare const RANDOM_BOT_NAME_PATTERN: RegExp;
export declare const GENERATED_BY_BOT_NOTE = "Generated By Changesets GitLab Bot";
export declare const VERBOSE_LOGGER: Logger;
import { env } from "../env.js";
import { Logger } from "../Logger.js";
export const CUSTOM_LINKS = env.GITLAB_COMMENT_CUSTOM_LINKS?.trim();
export const ADD_CHANGESET_URL_PLACEHOLDER_REGEXP = /\{\{\s*addChangesetUrl\s*\}\}/u;
export const RANDOM_BOT_NAME_PATTERN = /^((?:project|group)_\d+_bot\w*)_[\da-z]+$/iu;
export const GENERATED_BY_BOT_NOTE = 'Generated By Changesets GitLab Bot';
export const VERBOSE_LOGGER = new Logger('comment');
//# sourceMappingURL=constants.js.map
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/comment/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,CAAA;AAEnE,MAAM,CAAC,MAAM,oCAAoC,GAC/C,gCAAgC,CAAA;AAElC,MAAM,CAAC,MAAM,uBAAuB,GAClC,6CAA6C,CAAA;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,oCAAoC,CAAA;AAEzE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAA"}
import type { ReleasePlan } from '@changesets/types';
export declare const getAbsentMessage: (commitSha: string, addChangesetUrl: string, newChangesetTemplateFallback: string, releasePlan: ReleasePlan | null) => string;
import { ADD_CHANGESET_URL_PLACEHOLDER_REGEXP, CUSTOM_LINKS, GENERATED_BY_BOT_NOTE, } from "./constants.js";
import { getReleasePlanMessage } from "./getReleasePlanMessage.js";
export const getAbsentMessage = (commitSha, addChangesetUrl, newChangesetTemplateFallback, releasePlan) => `### ⚠️ No Changeset found
Latest commit: ${commitSha}
Merging this MR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. **If these changes should result in a version bump, you need to add a changeset.**
${getReleasePlanMessage(releasePlan)}
${CUSTOM_LINKS
? CUSTOM_LINKS.replace(ADD_CHANGESET_URL_PLACEHOLDER_REGEXP, addChangesetUrl)
: `[Click here to learn what changesets are, and how to add one](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
[Click here if you're a maintainer who wants to add a changeset to this MR](${addChangesetUrl})`}
${newChangesetTemplateFallback}
__${GENERATED_BY_BOT_NOTE}__
`;
//# sourceMappingURL=getAbsentMessage.js.map
{"version":3,"file":"getAbsentMessage.js","sourceRoot":"","sources":["../../src/comment/getAbsentMessage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oCAAoC,EACpC,YAAY,EACZ,qBAAqB,GACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,SAAiB,EACjB,eAAuB,EACvB,4BAAoC,EACpC,WAA+B,EAC/B,EAAE,CAAC;;iBAEY,SAAS;;;;EAIxB,qBAAqB,CAAC,WAAW,CAAC;;EAGlC,YAAY;IACV,CAAC,CAAC,YAAY,CAAC,OAAO,CAClB,oCAAoC,EACpC,eAAe,CAChB;IACH,CAAC,CAAC;;8EAEwE,eAAe,GAC7F;;EAEE,4BAA4B;;IAE1B,qBAAqB;CACxB,CAAA"}
import type { ReleasePlan } from '@changesets/types';
export declare const getApproveMessage: (commitSha: string, addChangesetUrl: string, newChangesetTemplateFallback: string, releasePlan: ReleasePlan | null) => string;
import { ADD_CHANGESET_URL_PLACEHOLDER_REGEXP, CUSTOM_LINKS, GENERATED_BY_BOT_NOTE, } from "./constants.js";
import { getReleasePlanMessage } from "./getReleasePlanMessage.js";
export const getApproveMessage = (commitSha, addChangesetUrl, newChangesetTemplateFallback, releasePlan) => `### 🦋 Changeset detected
Latest commit: ${commitSha}
**The changes in this MR will be included in the next version bump.**
${getReleasePlanMessage(releasePlan)}
${CUSTOM_LINKS
? CUSTOM_LINKS.replace(ADD_CHANGESET_URL_PLACEHOLDER_REGEXP, addChangesetUrl)
: `Not sure what this means? [Click here to learn what changesets are](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
[Click here if you're a maintainer who wants to add another changeset to this MR](${addChangesetUrl})`}
${newChangesetTemplateFallback}
__${GENERATED_BY_BOT_NOTE}__
`;
//# sourceMappingURL=getApproveMessage.js.map
{"version":3,"file":"getApproveMessage.js","sourceRoot":"","sources":["../../src/comment/getApproveMessage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oCAAoC,EACpC,YAAY,EACZ,qBAAqB,GACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAiB,EACjB,eAAuB,EACvB,4BAAoC,EACpC,WAA+B,EAC/B,EAAE,CAAC;;iBAEY,SAAS;;;;EAIxB,qBAAqB,CAAC,WAAW,CAAC;;EAGlC,YAAY;IACV,CAAC,CAAC,YAAY,CAAC,OAAO,CAClB,oCAAoC,EACpC,eAAe,CAChB;IACH,CAAC,CAAC;;oFAE8E,eAAe,GACnG;;EAEE,4BAA4B;;IAE1B,qBAAqB;CACxB,CAAA"}
export declare const getNewChangesetTemplate: (changedPackages: string[], title: string) => string;
export const getNewChangesetTemplate = (changedPackages, title) => `---
${changedPackages.map((x) => `"${x}": patch`).join('\n')}
---
${title}
`;
//# sourceMappingURL=getNewChangesetTemplate.js.map
{"version":3,"file":"getNewChangesetTemplate.js","sourceRoot":"","sources":["../../src/comment/getNewChangesetTemplate.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,eAAyB,EACzB,KAAa,EACb,EAAE,CAAC;EACH,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGtD,KAAK;CACN,CAAA"}
import type { Gitlab } from '@gitbeaker/core';
import type { LooseString } from '../types.ts';
declare function getNoteInfo(api: Gitlab, mrIid: number | string, commentType: LooseString<'discussion'>, random?: boolean): Promise<{
discussionId: string;
noteId: number;
} | null | undefined>;
declare function getNoteInfo(api: Gitlab, mrIid: number | string, commentType: LooseString<'note'>, random?: boolean): Promise<{
noteId: number;
} | null | undefined>;
export { getNoteInfo };
import * as context from '../context.js';
import { getUsername } from '../utils/index.js';
import { isChangesetBotNote } from "./isChangesetBotNote.js";
import { isMrNote } from "./isMrNote.js";
async function getNoteInfo(api, mrIid, commentType, random) {
const discussionOrNotes = commentType === 'discussion'
? await api.MergeRequestDiscussions.all(context.projectId, mrIid)
: await api.MergeRequestNotes.all(context.projectId, +mrIid);
const username = await getUsername(api);
for (const discussionOrNote of discussionOrNotes) {
if (isMrNote(discussionOrNote)) {
if (isChangesetBotNote(discussionOrNote, username, random)) {
return {
noteId: discussionOrNote.id,
};
}
continue;
}
if (!discussionOrNote.notes) {
continue;
}
const changesetBotNote = discussionOrNote.notes.find((note) => isChangesetBotNote(note, username));
if (changesetBotNote) {
return {
discussionId: discussionOrNote.id,
noteId: changesetBotNote.id,
};
}
}
return random ? null : getNoteInfo(api, mrIid, commentType, true);
}
export { getNoteInfo };
//# sourceMappingURL=getNoteInfo.js.map
{"version":3,"file":"getNoteInfo.js","sourceRoot":"","sources":["../../src/comment/getNoteInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAgBxC,KAAK,UAAU,WAAW,CACxB,GAAW,EACX,KAAsB,EACtB,WAA+C,EAC/C,MAAgB;IAOhB,MAAM,iBAAiB,GACrB,WAAW,KAAK,YAAY;QAC1B,CAAC,CAAC,MAAM,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;QACjE,CAAC,CAAC,MAAM,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAA;IAEhE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;IAEvC,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;QACjD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC/B,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC3D,OAAO;oBACL,MAAM,EAAE,gBAAgB,CAAC,EAAE;iBAC5B,CAAA;YACH,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC5B,SAAQ;QACV,CAAC;QAED,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5D,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CACnC,CAAA;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO;gBACL,YAAY,EAAE,gBAAgB,CAAC,EAAE;gBACjC,MAAM,EAAE,gBAAgB,CAAC,EAAE;aAC5B,CAAA;QACH,CAAC;IACH,CAAC;IASD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;AACnE,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
import type { ReleasePlan } from '@changesets/types';
export declare const getReleasePlanMessage: (releasePlan: ReleasePlan | null) => string;
import { markdownTable } from 'markdown-table';
export const getReleasePlanMessage = (releasePlan) => {
if (!releasePlan) {
return '';
}
const publishableReleases = releasePlan.releases.filter((x) => x.type !== 'none');
const table = markdownTable([
['Name', 'Type'],
...publishableReleases.map((x) => [
x.name,
{
major: 'Major',
minor: 'Minor',
patch: 'Patch',
}[x.type],
]),
]);
return `<details><summary>This MR includes ${releasePlan.changesets.length > 0
? `changesets to release ${publishableReleases.length === 1
? '1 package'
: `${publishableReleases.length} packages`}`
: 'no changesets'}</summary>
${publishableReleases.length > 0
? table
: "When changesets are added to this MR, you'll see the packages that this MR includes changesets for and the associated semver types"}
</details>`;
};
//# sourceMappingURL=getReleasePlanMessage.js.map
{"version":3,"file":"getReleasePlanMessage.js","sourceRoot":"","sources":["../../src/comment/getReleasePlanMessage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,WAA+B,EAAE,EAAE;IACvE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,mBAAmB,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CACrD,CAAC,CAAC,EAAsE,EAAE,CACxE,CAAC,CAAC,IAAI,KAAK,MAAM,CACpB,CAAA;IAED,MAAM,KAAK,GAAG,aAAa,CAAC;QAC1B,CAAC,MAAM,EAAE,MAAM,CAAC;QAChB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,IAAI;YACN;gBACE,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,OAAO;aACf,CAAC,CAAC,CAAC,IAAI,CAAC;SACV,CAAC;KACH,CAAC,CAAA;IAEF,OAAO,sCACL,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAC/B,CAAC,CAAC,yBACE,mBAAmB,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,GAAG,mBAAmB,CAAC,MAAM,WACnC,EAAE;QACJ,CAAC,CAAC,eACN;;IAGE,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAC5B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,oIACN;;WAES,CAAA;AACX,CAAC,CAAA"}
import type { CommitDiffSchema, MergeRequestDiffSchema } from '@gitbeaker/core';
export declare const hasChangesetBeenAdded: (changedFilesPromise: Promise<CommitDiffSchema[] | MergeRequestDiffSchema[]>) => Promise<boolean>;
export const hasChangesetBeenAdded = async (changedFilesPromise) => {
const changedFiles = await changedFilesPromise;
return changedFiles.some((file) => file.new_file
&& /^\.changeset\/.+\.md$/u.test(file.new_path)
&& file.new_path !== '.changeset/README.md');
};
//# sourceMappingURL=hasChangesetBeenAdded.js.map
{"version":3,"file":"hasChangesetBeenAdded.js","sourceRoot":"","sources":["../../src/comment/hasChangesetBeenAdded.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,mBAA2E,EAC3E,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAA;IAC9C,OAAO,YAAY,CAAC,IAAI,CACtB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,QAAQ;WACV,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;WAC5C,IAAI,CAAC,QAAQ,KAAK,sBAAsB,CAC9C,CAAA;AACH,CAAC,CAAA"}
export * from './comment.ts';
export * from "./comment.js";
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/comment/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
import type { DiscussionNoteSchema, NoteSchema } from '@gitbeaker/core';
export declare const isChangesetBotNote: (note: DiscussionNoteSchema | NoteSchema, username: string, random?: boolean) => boolean | undefined;
import { GENERATED_BY_BOT_NOTE, RANDOM_BOT_NAME_PATTERN } from "./constants.js";
export const isChangesetBotNote = (note, username, random) => (note.author.username === username
|| (random
&& RANDOM_BOT_NAME_PATTERN.exec(note.author.username)?.[1] === username))
&& note.body.includes(GENERATED_BY_BOT_NOTE);
//# sourceMappingURL=isChangesetBotNote.js.map
{"version":3,"file":"isChangesetBotNote.js","sourceRoot":"","sources":["../../src/comment/isChangesetBotNote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAAuC,EACvC,QAAgB,EAChB,MAAgB,EAChB,EAAE,CACF,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;OAC7B,CAAC,MAAM;WACL,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;OAC1E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA"}
import type { DiscussionSchema, MergeRequestNoteSchema } from '@gitbeaker/core';
export declare const isMrNote: (discussionOrNote: DiscussionSchema | MergeRequestNoteSchema) => discussionOrNote is MergeRequestNoteSchema;
export const isMrNote = (discussionOrNote) => 'noteable_type' in discussionOrNote
&& discussionOrNote.noteable_type === 'MergeRequest';
//# sourceMappingURL=isMrNote.js.map
{"version":3,"file":"isMrNote.js","sourceRoot":"","sources":["../../src/comment/isMrNote.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,gBAA2D,EACf,EAAE,CAC9C,eAAe,IAAI,gBAAgB;OAChC,gBAAgB,CAAC,aAAa,KAAK,cAAc,CAAA"}
export declare class Logger {
context: string;
isEnabled: boolean;
constructor(context: 'api' | 'comment' | 'cli');
enable(value?: boolean): void;
getMessage(...messages: unknown[]): unknown[];
print(...message: unknown[]): void;
}
export class Logger {
context;
isEnabled = false;
constructor(context) {
this.context = context;
}
enable(value = true) {
this.isEnabled = value;
}
getMessage(...messages) {
return [
`[changesets-gitlab:${this.context}]`,
...messages.map((w) => w instanceof Error ? `${w.name}: ${w.message}` : w),
];
}
print(...message) {
if (this.isEnabled) {
console.log(...this.getMessage(...message));
}
}
}
//# sourceMappingURL=Logger.js.map
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACjB,OAAO,CAAQ;IACf,SAAS,GAAG,KAAK,CAAA;IAEjB,YAAY,OAAkC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,IAAI;QACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACxB,CAAC;IAED,UAAU,CAAC,GAAG,QAAmB;QAC/B,OAAO;YACL,sBAAsB,IAAI,CAAC,OAAO,GAAG;YACrC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CACnD;SACF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,GAAG,OAAkB;QACzB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;CACF"}
export declare const cjsRequire: NodeJS.Require;
import { createRequire } from 'node:module';
export const cjsRequire = typeof require === 'undefined' ? createRequire(import.meta.url) : require;
//# sourceMappingURL=cjsRequire.js.map
{"version":3,"file":"cjsRequire.js","sourceRoot":"","sources":["../../src/utils/cjsRequire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,CAAC,MAAM,UAAU,GACrB,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA"}
export declare const BumpLevels: {
readonly dep: 0;
readonly patch: 1;
readonly minor: 2;
readonly major: 3;
};
export declare const FALSY_VALUES: Set<string>;
export declare const TRUTHY_VALUES: Set<string>;
export declare const GITLAB_MAX_TAGS = 4;
export declare const HTTP_STATUS_NOT_FOUND = 404;
export const BumpLevels = {
dep: 0,
patch: 1,
minor: 2,
major: 3,
};
export const FALSY_VALUES = new Set(['false', '0']);
export const TRUTHY_VALUES = new Set(['true', '1']);
export const GITLAB_MAX_TAGS = 4;
export const HTTP_STATUS_NOT_FOUND = 404;
//# sourceMappingURL=constants.js.map
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACA,CAAA;AAEV,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;AAEnD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAA;AAEhC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA"}
export declare const execSync: (command: string) => NonSharedBuffer;
import { execSync as execSync_ } from 'node:child_process';
export const execSync = (command) => execSync_(command, { stdio: 'inherit' });
//# sourceMappingURL=execSync.js.map
{"version":3,"file":"execSync.js","sourceRoot":"","sources":["../../src/utils/execSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE,CAC1C,SAAS,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA"}
export declare function execWithOutput(command: string, args?: string[], options?: {
ignoreReturnCode?: boolean;
cwd?: string;
}): Promise<{
code: number;
stdout: string;
stderr: string;
}>;
import { exec } from '@actions/exec';
export async function execWithOutput(command, args, options) {
let myOutput = '';
let myError = '';
return {
code: await exec(command, args, {
listeners: {
stdout: (data) => {
myOutput += data.toString();
},
stderr: (data) => {
myError += data.toString();
},
},
...options,
}),
stdout: myOutput,
stderr: myError,
};
}
//# sourceMappingURL=execWithOutput.js.map
{"version":3,"file":"execWithOutput.js","sourceRoot":"","sources":["../../src/utils/execWithOutput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,IAAe,EACf,OAAsD;IAEtD,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,IAAI,OAAO,GAAG,EAAE,CAAA;IAEhB,OAAO;QACL,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAC9B,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;oBACvB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAC7B,CAAC;gBACD,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;oBACvB,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAC5B,CAAC;aACF;YACD,GAAG,OAAO;SACX,CAAC;QACF,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,OAAO;KAChB,CAAA;AACH,CAAC"}
export declare function getAllFiles(dir: string, base?: string): Promise<string[]>;
import fs from 'node:fs';
import path from 'node:path';
export async function getAllFiles(dir, base = dir) {
const direntList = await fs.promises.readdir(dir, { withFileTypes: true });
const files = await Promise.all(direntList.map((dirent) => {
const res = path.resolve(dir, dirent.name);
return dirent.isDirectory()
? getAllFiles(res, base)
: [path.relative(base, res)];
}));
return files.flat();
}
//# sourceMappingURL=getAllFiles.js.map
{"version":3,"file":"getAllFiles.js","sourceRoot":"","sources":["../../src/utils/getAllFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,IAAI,GAAG,GAAG;IACvD,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1C,OAAO,MAAM,CAAC,WAAW,EAAE;YACzB,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;YACxB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CACH,CAAA;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AACrB,CAAC"}
import type { Package } from '@manypkg/get-packages';
export declare function getChangedPackages(cwd: string, previousVersions: Map<string, string>): Promise<Package[]>;
import { getPackages } from '@manypkg/get-packages';
export async function getChangedPackages(cwd, previousVersions) {
const { packages } = await getPackages(cwd);
const changedPackages = new Set();
for (const pkg of packages) {
const previousVersion = previousVersions.get(pkg.dir);
if (previousVersion !== pkg.packageJson.version) {
changedPackages.add(pkg);
}
}
return [...changedPackages];
}
//# sourceMappingURL=getChangedPackages.js.map
{"version":3,"file":"getChangedPackages.js","sourceRoot":"","sources":["../../src/utils/getChangedPackages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,gBAAqC;IAErC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAW,CAAA;IAE1C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACrD,IAAI,eAAe,KAAK,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAChD,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,eAAe,CAAC,CAAA;AAC7B,CAAC"}
export declare function getChangelogEntry(changelog: string, version: string): {
content: string;
highestLevel: number;
};
import { toString as mdastToString } from 'mdast-util-to-string';
import remarkParse from 'remark-parse';
import remarkStringify from 'remark-stringify';
import { unified } from 'unified';
import { BumpLevels } from "./constants.js";
export function getChangelogEntry(changelog, version) {
const ast = unified().use(remarkParse).parse(changelog);
let highestLevel = BumpLevels.dep;
const nodes = ast.children;
let headingStartInfo;
let endIndex;
for (const [i, node] of nodes.entries()) {
if (node.type === 'heading') {
const stringified = mdastToString(node);
const match = /(major|minor|patch)/u.exec(stringified.toLowerCase());
if (match !== null) {
const level = BumpLevels[match[0]];
highestLevel = Math.max(level, highestLevel);
}
if (headingStartInfo === undefined && stringified === version) {
headingStartInfo = {
index: i,
depth: node.depth,
};
continue;
}
if (endIndex === undefined
&& headingStartInfo !== undefined
&& headingStartInfo.depth === node.depth) {
endIndex = i;
break;
}
}
}
if (headingStartInfo) {
ast.children = ast.children.slice(headingStartInfo.index + 1, endIndex);
}
return {
content: unified().use(remarkStringify).stringify(ast),
highestLevel,
};
}
//# sourceMappingURL=getChangelogEntry.js.map
{"version":3,"file":"getChangelogEntry.js","sourceRoot":"","sources":["../../src/utils/getChangelogEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,WAAW,MAAM,cAAc,CAAA;AACtC,OAAO,eAAe,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,OAAe;IAClE,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAEvD,IAAI,YAAY,GAAW,UAAU,CAAC,GAAG,CAAA;IAEzC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC1B,IAAI,gBAKS,CAAA;IACb,IAAI,QAA4B,CAAA;IAEhC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YACvC,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;YACpE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAgC,CAAC,CAAA;gBACjE,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;YAC9C,CAAC;YACD,IAAI,gBAAgB,KAAK,SAAS,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBAC9D,gBAAgB,GAAG;oBACjB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAA;gBACD,SAAQ;YACV,CAAC;YACD,IACE,QAAQ,KAAK,SAAS;mBACnB,gBAAgB,KAAK,SAAS;mBAC9B,gBAAgB,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EACxC,CAAC;gBACD,QAAQ,GAAG,CAAC,CAAA;gBACZ,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAA;IACzE,CAAC;IACD,OAAO;QACL,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;QACtD,YAAY;KACb,CAAA;AACH,CAAC"}
export declare const getOptionalInput: (name: string) => string | undefined;
import { getInput } from '@actions/core';
export const getOptionalInput = (name) => getInput(name) || undefined;
//# sourceMappingURL=getOptionalInput.js.map
{"version":3,"file":"getOptionalInput.js","sourceRoot":"","sources":["../../src/utils/getOptionalInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAA"}
import type { Gitlab } from '@gitbeaker/core';
export declare const getUsername: (api: Gitlab) => Promise<string>;
import { env } from '../env.js';
export const getUsername = async (api) => env.GITLAB_CI_USER_NAME ?? (await api.Users.showCurrentUser()).username;
//# sourceMappingURL=getUsername.js.map
{"version":3,"file":"getUsername.js","sourceRoot":"","sources":["../../src/utils/getUsername.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAE/B,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAW,EAAmB,EAAE,CAChE,GAAG,CAAC,mBAAmB,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAA"}
export declare function getVersionsByDirectory(cwd: string): Promise<Map<string, string>>;
import { getPackages } from '@manypkg/get-packages';
export async function getVersionsByDirectory(cwd) {
const { packages } = await getPackages(cwd);
return new Map(packages.map((x) => [x.dir, x.packageJson.version]));
}
//# sourceMappingURL=getVersionsByDirectory.js.map
{"version":3,"file":"getVersionsByDirectory.js","sourceRoot":"","sources":["../../src/utils/getVersionsByDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,GAAW;IACtD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;IAC3C,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACrE,CAAC"}
export declare const identify: <T>(_: T) => _ is Exclude<T, "" | (T extends boolean ? false : boolean) | null | undefined>;
export const identify = (_) => !!_;
//# sourceMappingURL=identify.js.map
{"version":3,"file":"identify.js","sourceRoot":"","sources":["../../src/utils/identify.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,CAAI,EAIJ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA"}
export * from './cjsRequire.ts';
export * from './constants.ts';
export * from './execSync.ts';
export * from './execWithOutput.ts';
export * from './getAllFiles.ts';
export * from './getChangedPackages.ts';
export * from './getChangelogEntry.ts';
export * from './getOptionalInput.ts';
export * from './getUsername.ts';
export * from './getVersionsByDirectory.ts';
export * from './identify.ts';
export * from './sortTheThings.ts';
export * from "./cjsRequire.js";
export * from "./constants.js";
export * from "./execSync.js";
export * from "./execWithOutput.js";
export * from "./getAllFiles.js";
export * from "./getChangedPackages.js";
export * from "./getChangelogEntry.js";
export * from "./getOptionalInput.js";
export * from "./getUsername.js";
export * from "./getVersionsByDirectory.js";
export * from "./identify.js";
export * from "./sortTheThings.js";
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA"}
export declare function sortTheThings(a: {
private: boolean;
highestLevel: number;
}, b: {
private: boolean;
highestLevel: number;
}): number;
export function sortTheThings(a, b) {
if (a.private === b.private) {
return b.highestLevel - a.highestLevel;
}
if (a.private) {
return 1;
}
return -1;
}
//# sourceMappingURL=sortTheThings.js.map
{"version":3,"file":"sortTheThings.js","sourceRoot":"","sources":["../../src/utils/sortTheThings.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAC3B,CAA6C,EAC7C,CAA6C;IAE7C,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAA;IACxC,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,CAAC,CAAA;IACV,CAAC;IACD,OAAO,CAAC,CAAC,CAAA;AACX,CAAC"}
+1
-3

@@ -1,3 +0,1 @@

import changesetsGitlab from './lib/index.js'
export = changesetsGitlab
export { default } from './lib/index.js'

@@ -0,6 +1,28 @@

import process from 'node:process';
import { Gitlab } from '@gitbeaker/rest';
import { bootstrap } from 'global-agent';
import { env } from "./env.js";
import { Logger } from "./Logger.js";
const PROXY_PROPS = ['http_proxy', 'https_proxy', 'no_proxy'];
let bootstrapped = false;
const API_VERBOSE_LOGGER = new Logger('api');
const enableApiVerboseLogging = () => {
API_VERBOSE_LOGGER.enable();
const originalFetch = globalThis.fetch;
globalThis.fetch = async (input, init) => {
const url = typeof input === 'string'
? input
: input instanceof URL
? input.href
: input.url;
const method = init?.method ?? 'GET';
API_VERBOSE_LOGGER.print(method, url);
const response = await originalFetch(input, init);
API_VERBOSE_LOGGER.print(method, url, response.status);
return response;
};
};
if (env.GITLAB_CHANGESETS_DEBUG) {
enableApiVerboseLogging();
}
export const createApi = (gitlabToken) => {

@@ -18,3 +40,3 @@ if (!bootstrapped) {

}
const token = gitlabToken || env.GITLAB_TOKEN;
const token = gitlabToken ?? env.GITLAB_TOKEN;
const host = env.GITLAB_HOST;

@@ -21,0 +43,0 @@ if (env.GITLAB_TOKEN_TYPE === 'oauth') {

@@ -1,1 +0,1 @@

{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAU,CAAA;AAEtE,IAAI,YAAY,GAAG,KAAK,CAAA;AAExB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,WAAoB,EAAE,EAAE;IAChD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,CAAA;QAEnB,SAAS,EAAE,CAAA;QAEX,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAuC,CAAA;YACrE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACrD,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,IAAI,GAAG,CAAC,YAAY,CAAA;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAA;IAE5B,IAAI,GAAG,CAAC,iBAAiB,KAAK,OAAO,EAAE,CAAC;QACtC,OAAO,IAAI,MAAM,CAAC;YAChB,IAAI;YACJ,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,IAAI,MAAM,CAAC;QAChB,IAAI;QACJ,KAAK;KACN,CAAC,CAAA;AACJ,CAAC,CAAA"}
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAU,CAAA;AAEtE,IAAI,YAAY,GAAG,KAAK,CAAA;AAExB,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;AAE5C,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,kBAAkB,CAAC,MAAM,EAAE,CAAA;IAE3B,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAA;IACtC,UAAU,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACvC,MAAM,GAAG,GACP,OAAO,KAAK,KAAK,QAAQ;YACvB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,KAAK,YAAY,GAAG;gBACpB,CAAC,CAAC,KAAK,CAAC,IAAI;gBACZ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAA;QACjB,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,CAAA;QACpC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAErC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAEjD,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtD,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC;IAChC,uBAAuB,EAAE,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,WAAoB,EAAE,EAAE;IAChD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,CAAA;QAEnB,SAAS,EAAE,CAAA;QAEX,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAuC,CAAA;YACrE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACrD,IAAI,KAAK,EAAE,CAAC;gBAEV,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,IAAI,GAAG,CAAC,YAAY,CAAA;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAA;IAE5B,IAAI,GAAG,CAAC,iBAAiB,KAAK,OAAO,EAAE,CAAC;QACtC,OAAO,IAAI,MAAM,CAAC;YAChB,IAAI;YACJ,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,IAAI,MAAM,CAAC;QAChB,IAAI;QACJ,KAAK;KACN,CAAC,CAAA;AACJ,CAAC,CAAA"}
#!/usr/bin/env node
import process from 'node:process';
import { program } from 'commander';
import { comment } from './comment/comment.js';
import './env.js';
import { program } from 'commander';
import { comment } from './comment.js';
import { main } from './main.js';
import { cjsRequire, getOptionalInput } from './utils.js';
const run = async () => {
program.version(cjsRequire('../package.json').version);
import { cjsRequire, getOptionalInput } from './utils/index.js';
const run = () => {
program.version(cjsRequire('../../package.json').version);
program.command('comment').action(async () => {

@@ -10,0 +11,0 @@ await comment();

@@ -1,1 +0,1 @@

{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,UAAU,CAAA;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEzD,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;IACrB,OAAO,CAAC,OAAO,CACZ,UAAU,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAC/D,CAAA;IAED,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC3C,MAAM,OAAO,EAAE,CAAA;IACjB,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CACvD,IAAI,CAAC;QACH,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC;QACxC,cAAc,EAAE,gBAAgB,CAAC,iBAAiB,CAAC;KACpD,CAAC,CACH,CAAA;IAED,OAAO,OAAO,CAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,CAAA;AAClD,CAAC,CAAA;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACtB,CAAC,CAAC,CAAA"}
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,UAAU,CAAA;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE/D,MAAM,GAAG,GAAG,GAAG,EAAE;IACf,OAAO,CAAC,OAAO,CACZ,UAAU,CAAC,oBAAoB,CAAyB,CAAC,OAAO,CAClE,CAAA;IAED,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC3C,MAAM,OAAO,EAAE,CAAA;IACjB,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CACvD,IAAI,CAAC;QACH,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC;QACxC,cAAc,EAAE,gBAAgB,CAAC,iBAAiB,CAAC;KACpD,CAAC,CACH,CAAA;IAED,OAAO,OAAO,CAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,CAAA;AAClD,CAAC,CAAA;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACtB,CAAC,CAAC,CAAA"}

@@ -0,3 +1,4 @@

import process from 'node:process';
export const projectId = process.env.CI_PROJECT_ID;
export const ref = process.env.CI_COMMIT_REF_NAME;
//# sourceMappingURL=context.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAc,CAAA;AAEnD,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAA"}
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAGA,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAc,CAAA;AAEnD,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAA"}

@@ -0,3 +1,5 @@

import process from 'node:process';
import { setFailed } from '@actions/core';
import dotenv from 'dotenv';
import { TRUTHY_VALUES } from "./utils/constants.js";
dotenv.config();

@@ -13,2 +15,3 @@ let isGitlabTokenValidated = false;

GITLAB_COMMENT_TYPE: process.env.GITLAB_COMMENT_TYPE ?? 'discussion',
GITLAB_CHANGESETS_DEBUG: TRUTHY_VALUES.has(process.env.GITLAB_CHANGESETS_DEBUG),
get GITLAB_TOKEN() {

@@ -15,0 +18,0 @@ if (!isGitlabTokenValidated) {

@@ -1,1 +0,1 @@

{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,MAAM,MAAM,QAAQ,CAAA;AAG3B,MAAM,CAAC,MAAM,EAAE,CAAA;AAEf,IAAI,sBAAsB,GAAG,KAAK,CAAA;AAElC,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,GAAG,OAAO,CAAC,GAAG;IAEd,oBAAoB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAqB;IACxD,WAAW,EACT,OAAO,CAAC,GAAG,CAAC,WAAW;WACpB,OAAO,CAAC,GAAG,CAAC,aAAa;WACzB,oBAAoB;IACzB,oBAAoB,EAClB,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,sCAAsC;IAC5E,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,YAAY;IAIpE,IAAI,YAAY;QACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,sBAAsB,GAAG,IAAI,CAAA;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC9B,SAAS,CAAC,wDAAwD,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,YAAa,CAAA;IAClC,CAAC;CACK,CAAA"}
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAGA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,CAAC,MAAM,EAAE,CAAA;AAEf,IAAI,sBAAsB,GAAG,KAAK,CAAA;AAElC,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,GAAG,OAAO,CAAC,GAAG;IAEd,oBAAoB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAqB;IACxD,WAAW,EACT,OAAO,CAAC,GAAG,CAAC,WAAW;WACpB,OAAO,CAAC,GAAG,CAAC,aAAa;WACzB,oBAAoB;IACzB,oBAAoB,EAClB,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,sCAAsC;IAC5E,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,YAAY;IACpE,uBAAuB,EAAE,aAAa,CAAC,GAAG,CACxC,OAAO,CAAC,GAAG,CAAC,uBAAwB,CACrC;IAID,IAAI,YAAY;QACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,sBAAsB,GAAG,IAAI,CAAA;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC9B,SAAS,CAAC,wDAAwD,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,YAAa,CAAA;IAClC,CAAC;CACK,CAAA"}
import fs from 'node:fs/promises';
import nodePath from 'node:path';
import process from 'node:process';
import assembleReleasePlan from '@changesets/assemble-release-plan';

@@ -8,3 +9,3 @@ import { parse as parseConfig } from '@changesets/config';

import { parse } from 'yaml';
import { getAllFiles } from './utils.js';
import { getAllFiles } from './utils/index.js';
function fetchFile(path) {

@@ -66,7 +67,7 @@ return fs.readFile(path, 'utf8');

&& changedFiles.includes(item)) {
const res = /\.changeset\/([^.]+)\.md/.exec(item);
const res = /\.changeset\/([^.]+)\.md/u.exec(item);
if (!res) {
throw new Error('could not get name from changeset filename');
}
const id = res[1];
const [, id] = res;
changesetPromises.push(fetchTextFile(item).then((text) => ({

@@ -112,4 +113,4 @@ ...parseChangeset(text),

if (tool) {
if (!Array.isArray(tool.globs)
|| !tool.globs.every((x) => typeof x === 'string')) {
if (!(Array.isArray(tool.globs)
&& tool.globs.every((x) => typeof x === 'string'))) {
throw new Error(`globs are not valid: ${JSON.stringify(tool.globs)}`);

@@ -116,0 +117,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"get-changed-packages.js","sourceRoot":"","sources":["../src/get-changed-packages.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"get-changed-packages.js","sourceRoot":"","sources":["../src/get-changed-packages.ts"],"names":[],"mappings":"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"}
import { exec } from '@actions/exec';
import { env } from './env.js';
import { execWithOutput, identify } from './utils.js';
import { execWithOutput, identify } from './utils/index.js';
export const setupUser = async () => {

@@ -28,4 +28,4 @@ await exec('git', [

});
const isCreatingBranch = !stderr.includes(`Switched to branch '${branch}'`)
&& !stderr.includes(`Switched to a new branch '${branch}'`);
const isCreatingBranch = !(stderr.includes(`Switched to branch '${branch}'`)
|| stderr.includes(`Switched to a new branch '${branch}'`));
if (isCreatingBranch) {

@@ -32,0 +32,0 @@ await exec('git', ['checkout', '-b', branch]);

@@ -1,1 +0,1 @@

{"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../src/git-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAClC,MAAM,IAAI,CAAC,KAAK,EAAE;QAChB,QAAQ;QACR,WAAW;QACX,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,gBAAgB;KAChD,CAAC,CAAA;IACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;IACjD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EACvB,MAAc,EACd,EAAE,KAAK,KAA0B,EAAE,EACnC,EAAE;IACF,MAAM,IAAI,CACR,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,MAAM,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC1E,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;IACjC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAC3C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;IAClE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;QACnE,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAA;IACF,MAAM,gBAAgB,GACpB,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,MAAM,GAAG,CAAC;WAC/C,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,MAAM,GAAG,CAAC,CAAA;IAC7D,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EACxB,QAAgB,EAChB,OAAkC,MAAM,EACxC,EAAE;IACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IACjD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IACrC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,IAAsB,EAAE;IACvD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IACzE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAA;AAC5B,CAAC,CAAA"}
{"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../src/git-utils.ts"],"names":[],"mappings":"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"}
'use strict';
var process = require('node:process');
var rest = require('@gitbeaker/rest');

@@ -9,3 +10,2 @@ var globalAgent = require('global-agent');

var humanId = require('human-id');
var markdownTable = require('markdown-table');
var fs$1 = require('node:fs/promises');

@@ -18,6 +18,6 @@ var path = require('node:path');

var yaml = require('yaml');
var node_module = require('node:module');
var node_child_process = require('node:child_process');
var exec = require('@actions/exec');
var fs = require('node:fs');
var node_module = require('node:module');
var exec = require('@actions/exec');
var getPackages = require('@manypkg/get-packages');

@@ -28,2 +28,3 @@ var mdastUtilToString = require('mdast-util-to-string');

var unified = require('unified');
var markdownTable = require('markdown-table');
var node_url = require('node:url');

@@ -56,2 +57,13 @@ var pre = require('@changesets/pre');

const BumpLevels = {
dep: 0,
patch: 1,
minor: 2,
major: 3
};
const FALSY_VALUES = /* @__PURE__ */ new Set(["false", "0"]);
const TRUTHY_VALUES = /* @__PURE__ */ new Set(["true", "1"]);
const GITLAB_MAX_TAGS = 4;
const HTTP_STATUS_NOT_FOUND = 404;
dotenv.config();

@@ -65,2 +77,5 @@ let isGitlabTokenValidated = false;

GITLAB_COMMENT_TYPE: process.env.GITLAB_COMMENT_TYPE ?? "discussion",
GITLAB_CHANGESETS_DEBUG: TRUTHY_VALUES.has(
process.env.GITLAB_CHANGESETS_DEBUG
),
// only check for the token if we are explicitly using it

@@ -78,4 +93,47 @@ get GITLAB_TOKEN() {

var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
class Logger {
constructor(context) {
__publicField(this, "context");
__publicField(this, "isEnabled", false);
this.context = context;
}
enable(value = true) {
this.isEnabled = value;
}
getMessage(...messages) {
return [
`[changesets-gitlab:${this.context}]`,
...messages.map(
(w) => w instanceof Error ? `${w.name}: ${w.message}` : w
)
];
}
print(...message) {
if (this.isEnabled) {
console.log(...this.getMessage(...message));
}
}
}
const PROXY_PROPS = ["http_proxy", "https_proxy", "no_proxy"];
let bootstrapped = false;
const API_VERBOSE_LOGGER = new Logger("api");
const enableApiVerboseLogging = () => {
API_VERBOSE_LOGGER.enable();
const originalFetch = globalThis.fetch;
globalThis.fetch = async (input, init) => {
const url = typeof input === "string" ? input : input instanceof URL ? input.href : input.url;
const method = init?.method ?? "GET";
API_VERBOSE_LOGGER.print(method, url);
const response = await originalFetch(input, init);
API_VERBOSE_LOGGER.print(method, url, response.status);
return response;
};
};
if (env.GITLAB_CHANGESETS_DEBUG) {
enableApiVerboseLogging();
}
const createApi = (gitlabToken) => {

@@ -93,3 +151,3 @@ if (!bootstrapped) {

}
const token = gitlabToken || env.GITLAB_TOKEN;
const token = gitlabToken ?? env.GITLAB_TOKEN;
const host = env.GITLAB_HOST;

@@ -111,12 +169,37 @@ if (env.GITLAB_TOKEN_TYPE === "oauth") {

const BumpLevels = {
dep: 0,
patch: 1,
minor: 2,
major: 3
};
async function getVersionsByDirectory(cwd) {
const { packages } = await getPackages.getPackages(cwd);
return new Map(packages.map((x) => [x.dir, x.packageJson.version]));
const cjsRequire = typeof require === "undefined" ? node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))) : require;
const execSync = (command) => node_child_process.execSync(command, { stdio: "inherit" });
async function execWithOutput(command, args, options) {
let myOutput = "";
let myError = "";
return {
code: await exec.exec(command, args, {
listeners: {
stdout: (data) => {
myOutput += data.toString();
},
stderr: (data) => {
myError += data.toString();
}
},
...options
}),
stdout: myOutput,
stderr: myError
};
}
async function getAllFiles(dir, base = dir) {
const direntList = await fs.promises.readdir(dir, { withFileTypes: true });
const files = await Promise.all(
direntList.map((dirent) => {
const res = path.resolve(dir, dirent.name);
return dirent.isDirectory() ? getAllFiles(res, base) : [path.relative(base, res)];
})
);
return files.flat();
}
async function getChangedPackages$1(cwd, previousVersions) {

@@ -133,2 +216,3 @@ const { packages } = await getPackages.getPackages(cwd);

}
function getChangelogEntry(changelog, version) {

@@ -143,3 +227,3 @@ const ast = unified.unified().use(remarkParse).parse(changelog);

const stringified = mdastUtilToString.toString(node);
const match = /(major|minor|patch)/.exec(stringified.toLowerCase());
const match = /(major|minor|patch)/u.exec(stringified.toLowerCase());
if (match !== null) {

@@ -170,21 +254,14 @@ const level = BumpLevels[match[0]];

}
async function execWithOutput(command, args, options) {
let myOutput = "";
let myError = "";
return {
code: await exec.exec(command, args, {
listeners: {
stdout: (data) => {
myOutput += data.toString();
},
stderr: (data) => {
myError += data.toString();
}
},
...options
}),
stdout: myOutput,
stderr: myError
};
const getOptionalInput = (name) => core.getInput(name) || void 0;
const getUsername = async (api) => env.GITLAB_CI_USER_NAME ?? (await api.Users.showCurrentUser()).username;
async function getVersionsByDirectory(cwd) {
const { packages } = await getPackages.getPackages(cwd);
return new Map(packages.map((x) => [x.dir, x.packageJson.version]));
}
const identify = (_) => !!_;
function sortTheThings(a, b) {

@@ -199,23 +276,2 @@ if (a.private === b.private) {

}
const identify = (_) => !!_;
async function getAllFiles(dir, base = dir) {
const direntList = await fs.promises.readdir(dir, { withFileTypes: true });
const files = await Promise.all(
direntList.map((dirent) => {
const res = path.resolve(dir, dirent.name);
return dirent.isDirectory() ? getAllFiles(res, base) : [path.relative(base, res)];
})
);
return files.flat();
}
const execSync = (command) => node_child_process.execSync(command, { stdio: "inherit" });
const getOptionalInput = (name) => core.getInput(name) || void 0;
const getUsername = async (api) => {
return env.GITLAB_CI_USER_NAME ?? (await api.Users.showCurrentUser()).username;
};
const cjsRequire = typeof require === "undefined" ? node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))) : require;
const FALSY_VALUES = /* @__PURE__ */ new Set(["false", "0"]);
const TRUTHY_VALUES = /* @__PURE__ */ new Set(["true", "1"]);
const GITLAB_MAX_TAGS = 4;
const HTTP_STATUS_NOT_FOUND = 404;

@@ -274,7 +330,7 @@ function fetchFile(path) {

} else if (item !== ".changeset/README.md" && item.startsWith(".changeset") && item.endsWith(".md") && changedFiles.includes(item)) {
const res = /\.changeset\/([^.]+)\.md/.exec(item);
const res = /\.changeset\/([^.]+)\.md/u.exec(item);
if (!res) {
throw new Error("could not get name from changeset filename");
}
const id = res[1];
const [, id] = res;
changesetPromises.push(

@@ -318,3 +374,3 @@ fetchTextFile(item).then((text) => ({

if (tool) {
if (!Array.isArray(tool.globs) || !tool.globs.every((x) => typeof x === "string")) {
if (!(Array.isArray(tool.globs) && tool.globs.every((x) => typeof x === "string"))) {
throw new Error(`globs are not valid: ${JSON.stringify(tool.globs)}`);

@@ -349,3 +405,8 @@ }

const generatedByBotNote = "Generated By Changesets GitLab Bot";
const CUSTOM_LINKS = env.GITLAB_COMMENT_CUSTOM_LINKS?.trim();
const ADD_CHANGESET_URL_PLACEHOLDER_REGEXP = /\{\{\s*addChangesetUrl\s*\}\}/u;
const RANDOM_BOT_NAME_PATTERN = /^((?:project|group)_\d+_bot\w*)_[\da-z]+$/iu;
const GENERATED_BY_BOT_NOTE = "Generated By Changesets GitLab Bot";
const VERBOSE_LOGGER = new Logger("comment");
const getReleasePlanMessage = (releasePlan) => {

@@ -375,4 +436,3 @@ if (!releasePlan) {

};
const customLinks = env.GITLAB_COMMENT_CUSTOM_LINKS?.trim();
const ADD_CHANGESET_URL_PLACEHOLDER_REGEXP = /\{\{\s*addChangesetUrl\s*\}\}/;
const getAbsentMessage = (commitSha, addChangesetUrl, newChangesetTemplateFallback, releasePlan) => `### \u26A0\uFE0F No Changeset found

@@ -386,3 +446,6 @@

${customLinks ? customLinks.replace(ADD_CHANGESET_URL_PLACEHOLDER_REGEXP, addChangesetUrl) : `[Click here to learn what changesets are, and how to add one](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
${CUSTOM_LINKS ? CUSTOM_LINKS.replace(
ADD_CHANGESET_URL_PLACEHOLDER_REGEXP,
addChangesetUrl
) : `[Click here to learn what changesets are, and how to add one](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).

@@ -393,4 +456,5 @@ [Click here if you're a maintainer who wants to add a changeset to this MR](${addChangesetUrl})`}

__${generatedByBotNote}__
__${GENERATED_BY_BOT_NOTE}__
`;
const getApproveMessage = (commitSha, addChangesetUrl, newChangesetTemplateFallback, releasePlan) => `### \u{1F98B} Changeset detected

@@ -404,3 +468,6 @@

${customLinks ? customLinks.replace(ADD_CHANGESET_URL_PLACEHOLDER_REGEXP, addChangesetUrl) : `Not sure what this means? [Click here to learn what changesets are](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
${CUSTOM_LINKS ? CUSTOM_LINKS.replace(
ADD_CHANGESET_URL_PLACEHOLDER_REGEXP,
addChangesetUrl
) : `Not sure what this means? [Click here to learn what changesets are](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).

@@ -411,4 +478,5 @@ [Click here if you're a maintainer who wants to add another changeset to this MR](${addChangesetUrl})`}

__${generatedByBotNote}__
__${GENERATED_BY_BOT_NOTE}__
`;
const getNewChangesetTemplate = (changedPackages, title) => `---

@@ -420,7 +488,9 @@ ${changedPackages.map((x) => `"${x}": patch`).join("\n")}

`;
const isChangesetBotNote = (note, username, random) => (note.author.username === username || random && RANDOM_BOT_NAME_PATTERN.exec(note.author.username)?.[1] === username) && note.body.includes(GENERATED_BY_BOT_NOTE);
const isMrNote = (discussionOrNote) => "noteable_type" in discussionOrNote && discussionOrNote.noteable_type === "MergeRequest";
const RANDOM_BOT_NAME_PATTERN = /^((?:project|group)_\d+_bot\w*)_[\da-z]+$/i;
const isChangesetBotNote = (note, username, random) => (note.author.username === username || random && RANDOM_BOT_NAME_PATTERN.exec(note.author.username)?.[1] === username) && note.body.includes(generatedByBotNote);
async function getNoteInfo(api, mrIid, commentType, random) {
const discussionOrNotes = await (commentType === "discussion" ? api.MergeRequestDiscussions.all(projectId, mrIid) : api.MergeRequestNotes.all(projectId, +mrIid));
const discussionOrNotes = commentType === "discussion" ? await api.MergeRequestDiscussions.all(projectId, mrIid) : await api.MergeRequestNotes.all(projectId, +mrIid);
const username = await getUsername(api);

@@ -451,9 +521,15 @@ for (const discussionOrNote of discussionOrNotes) {

}
const hasChangesetBeenAdded = async (changedFilesPromise) => {
const changedFiles = await changedFilesPromise;
return changedFiles.some((file) => {
return file.new_file && /^\.changeset\/.+\.md$/.test(file.new_path) && file.new_path !== ".changeset/README.md";
});
return changedFiles.some(
(file) => file.new_file && /^\.changeset\/.+\.md$/u.test(file.new_path) && file.new_path !== ".changeset/README.md"
);
};
const comment = async () => {
if (env.GITLAB_CHANGESETS_DEBUG) {
VERBOSE_LOGGER.enable();
VERBOSE_LOGGER.print("running comment");
}
const mrBranch = env.CI_MERGE_REQUEST_SOURCE_BRANCH_NAME;

@@ -464,14 +540,21 @@ if (!mrBranch) {

}
if (mrBranch.startsWith("changeset-release")) {
VERBOSE_LOGGER.print("Wrong branch", mrBranch);
return;
}
const {
CI_MERGE_REQUEST_IID: mrIid,
GITLAB_COMMENT_TYPE: commentType,
GITLAB_ADD_CHANGESET_MESSAGE: commitMessage
GITLAB_ADD_CHANGESET_MESSAGE: commitMessage,
CI_MERGE_REQUEST_SOURCE_BRANCH_SHA: latestCommitSha
} = env;
if (mrBranch.startsWith("changeset-release")) {
return;
}
VERBOSE_LOGGER.print("env", {
mrIid,
commentType,
commitMessage,
latestCommitSha
});
const api = createApi();
let errFromFetchingChangedFiles = "";
try {
const latestCommitSha = env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA;
const changedFilesPromise = api.MergeRequests.allDiffs(

@@ -481,2 +564,3 @@ projectId,

).catch(async (err) => {
VERBOSE_LOGGER.print("error 0", err);
if (!(err instanceof rest.GitbeakerRequestError) || err.cause?.response.status !== HTTP_STATUS_NOT_FOUND) {

@@ -500,2 +584,3 @@ throw err;

}).catch((err) => {
VERBOSE_LOGGER.print("error 1", err);
if (err instanceof errors.ValidationError) {

@@ -587,2 +672,6 @@ errFromFetchingChangedFiles = `<details><summary>\u{1F4A5} An error occurred when fetching the changed packages and changesets in this MR</summary>

default: {
VERBOSE_LOGGER.print(
"error 2",
`Invalid comment type "${commentType}", should be "discussion" or "note"`
);
throw new Error(

@@ -594,2 +683,3 @@ `Invalid comment type "${commentType}", should be "discussion" or "note"`

} catch (err) {
VERBOSE_LOGGER.print("error 3", err);
if (err instanceof rest.GitbeakerRequestError && err.cause) {

@@ -637,3 +727,3 @@ const { description, request, response } = err.cause;

});
const isCreatingBranch = !stderr.includes(`Switched to branch '${branch}'`) && !stderr.includes(`Switched to a new branch '${branch}'`);
const isCreatingBranch = !(stderr.includes(`Switched to branch '${branch}'`) || stderr.includes(`Switched to a new branch '${branch}'`));
if (isCreatingBranch) {

@@ -669,3 +759,17 @@ await exec.exec("git", ["checkout", "-b", branch]);

const limit = pLimit(2 * 3);
const MAGIC_NUMBER = 3;
const limit = pLimit(2 * MAGIC_NUMBER);
const requireChangesetsCliPkgJson = (cwd) => {
try {
return cjsRequire(resolveFrom(cwd, "@changesets/cli/package.json"));
} catch (err) {
if (err?.code === "MODULE_NOT_FOUND") {
throw new Error(
`Have you forgotten to install \`@changesets/cli\` in "${cwd}"?`,
{ cause: err }
);
}
throw err;
}
};
const createRelease = async (api, { pkg, tagName }) => {

@@ -700,3 +804,3 @@ try {

const api = createApi(gitlabToken);
const [publishCommand, ...publishArgs] = script.split(/\s+/);
const [publishCommand, ...publishArgs] = script.split(/\s+/u);
const changesetPublishOutput = await execWithOutput(

@@ -719,7 +823,7 @@ publishCommand,

throw new Error(
`No package found.This is probably a bug in the action, please open an issue`
"No package found.This is probably a bug in the action, please open an issue"
);
}
const pkg = packages[0];
const newTagRegex = /New tag:/;
const [pkg] = packages;
const newTagRegex = /New tag:/u;
for (const line of changesetPublishOutput.stdout.split("\n")) {

@@ -737,3 +841,3 @@ const match = newTagRegex.exec(line);

} else {
const newTagRegex = /New tag:\s+(@[^/]+\/[^@]+|[^/]+)@(\S+)/;
const newTagRegex = /New tag:\s+(@[^/]+\/[^@]+|[^/]+)@(\S+)/u;
const packagesByName = new Map(packages.map((x) => [x.packageJson.name, x]));

@@ -745,3 +849,3 @@ for (const line of changesetPublishOutput.stdout.split("\n")) {

}
const pkgName = match[1];
const [, pkgName] = match;
const pkg = packagesByName.get(pkgName);

@@ -786,14 +890,2 @@ if (pkg === void 0) {

}
const requireChangesetsCliPkgJson = (cwd) => {
try {
return cjsRequire(resolveFrom(cwd, "@changesets/cli/package.json"));
} catch (err) {
if (err?.code === "MODULE_NOT_FOUND") {
throw new Error(
`Have you forgotten to install \`@changesets/cli\` in "${cwd}"?`
);
}
throw err;
}
};
async function runVersion({

@@ -819,3 +911,3 @@ script,

if (script) {
const [versionCommand, ...versionArgs] = script.split(/\s+/);
const [versionCommand, ...versionArgs] = script.split(/\s+/u);
await exec.exec(versionCommand, versionArgs, { cwd });

@@ -918,3 +1010,3 @@ } else {

"origin",
`${url.protocol}//${encodeURIComponent(username)}:${GITLAB_TOKEN}@${url.host}${url.pathname.replace(/\/$/, "")}/${env.CI_PROJECT_PATH}.git`
`${url.protocol}//${encodeURIComponent(username)}:${GITLAB_TOKEN}@${url.host}${url.pathname.replace(/\/$/u, "")}/${env.CI_PROJECT_PATH}.git`
],

@@ -928,59 +1020,57 @@ { silent: !TRUTHY_VALUES.has(env.DEBUG_GITLAB_CREDENTIAL) }

const hasPublishScript = !!publishScript;
switch (true) {
case (!hasChangesets && !hasPublishScript): {
console.log("No changesets found");
return;
}
case (!hasChangesets && hasPublishScript): {
console.log(
"No changesets found, attempting to publish any unpublished packages to npm"
if (!(hasChangesets || hasPublishScript)) {
console.log("No changesets found");
return;
}
if (!hasChangesets && hasPublishScript) {
console.log(
"No changesets found, attempting to publish any unpublished packages to npm"
);
const npmrcPath = `${env.HOME}/.npmrc`;
if (fs.existsSync(npmrcPath)) {
console.log("Found existing .npmrc file");
} else if (NPM_TOKEN) {
console.log("No .npmrc file found, creating one");
await fs.promises.writeFile(
npmrcPath,
`//registry.npmjs.org/:_authToken=${NPM_TOKEN}`
);
const npmrcPath = `${env.HOME}/.npmrc`;
if (fs.existsSync(npmrcPath)) {
console.log("Found existing .npmrc file");
} else if (NPM_TOKEN) {
console.log("No .npmrc file found, creating one");
await fs.promises.writeFile(
npmrcPath,
`//registry.npmjs.org/:_authToken=${NPM_TOKEN}`
);
} else {
core.setFailed(
"No `.npmrc` found nor `NPM_TOKEN` provided, unable to publish packages"
);
return;
}
const result = await runPublish({
script: publishScript,
gitlabToken: GITLAB_TOKEN,
createGitlabReleases: !FALSY_VALUES.has(
core.getInput("create_gitlab_releases")
)
});
if (result.published) {
core.setOutput("published", true);
core.setOutput("publishedPackages", result.publishedPackages);
core.exportVariable("PUBLISHED", true);
core.exportVariable("PUBLISHED_PACKAGES", result.publishedPackages);
if (published) {
execSync(published);
}
}
} else {
core.setFailed(
"No `.npmrc` found nor `NPM_TOKEN` provided, unable to publish packages"
);
return;
}
case hasChangesets: {
await runVersion({
script: getOptionalInput("version"),
gitlabToken: GITLAB_TOKEN,
mrTitle: getOptionalInput("title"),
mrTargetBranch: getOptionalInput("target_branch"),
commitMessage: getOptionalInput("commit"),
removeSourceBranch: core.getInput("remove_source_branch") === "true",
hasPublishScript
});
if (onlyChangesets) {
execSync(onlyChangesets);
const result = await runPublish({
script: publishScript,
gitlabToken: GITLAB_TOKEN,
createGitlabReleases: !FALSY_VALUES.has(
core.getInput("create_gitlab_releases")
)
});
if (result.published) {
core.setOutput("published", true);
core.setOutput("publishedPackages", result.publishedPackages);
core.exportVariable("PUBLISHED", true);
core.exportVariable("PUBLISHED_PACKAGES", result.publishedPackages);
if (published) {
execSync(published);
}
}
return;
}
if (hasChangesets) {
await runVersion({
script: getOptionalInput("version"),
gitlabToken: GITLAB_TOKEN,
mrTitle: getOptionalInput("title"),
mrTargetBranch: getOptionalInput("target_branch"),
commitMessage: getOptionalInput("commit"),
removeSourceBranch: core.getInput("remove_source_branch") === "true",
hasPublishScript
});
if (onlyChangesets) {
execSync(onlyChangesets);
}
}
};

@@ -987,0 +1077,0 @@

export * from './api.js';
export * from './comment.js';
export * from './comment/comment.ts';
export * from './context.js';

@@ -9,2 +9,2 @@ export * from './env.js';

export type * from './types.js';
export type * from './utils.js';
export type * from './utils/index.js';
export * from './api.js';
export * from './comment.js';
export * from "./comment/comment.js";
export * from './context.js';

@@ -4,0 +4,0 @@ export * from './env.js';

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,2BAA2B,CAAA;AACzC,cAAc,UAAU,CAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,2BAA2B,CAAA;AACzC,cAAc,UAAU,CAAA"}

@@ -10,3 +10,3 @@ import fs from 'node:fs';

import { runPublish, runVersion } from './run.js';
import { execSync, FALSY_VALUES, getOptionalInput, getUsername, TRUTHY_VALUES, } from './utils.js';
import { execSync, FALSY_VALUES, getOptionalInput, getUsername, TRUTHY_VALUES, } from './utils/index.js';
export const main = async ({ published, onlyChangesets, } = {}) => {

@@ -26,3 +26,3 @@ const { GITLAB_TOKEN, NPM_TOKEN } = env;

'origin',
`${url.protocol}//${encodeURIComponent(username)}:${GITLAB_TOKEN}@${url.host}${url.pathname.replace(/\/$/, '')}/${env.CI_PROJECT_PATH}.git`,
`${url.protocol}//${encodeURIComponent(username)}:${GITLAB_TOKEN}@${url.host}${url.pathname.replace(/\/$/u, '')}/${env.CI_PROJECT_PATH}.git`,
], { silent: !TRUTHY_VALUES.has(env.DEBUG_GITLAB_CREDENTIAL) });

@@ -34,53 +34,51 @@ }

const hasPublishScript = !!publishScript;
switch (true) {
case !hasChangesets && !hasPublishScript: {
console.log('No changesets found');
return;
if (!(hasChangesets || hasPublishScript)) {
console.log('No changesets found');
return;
}
if (!hasChangesets && hasPublishScript) {
console.log('No changesets found, attempting to publish any unpublished packages to npm');
const npmrcPath = `${env.HOME}/.npmrc`;
if (fs.existsSync(npmrcPath)) {
console.log('Found existing .npmrc file');
}
case !hasChangesets && hasPublishScript: {
console.log('No changesets found, attempting to publish any unpublished packages to npm');
const npmrcPath = `${env.HOME}/.npmrc`;
if (fs.existsSync(npmrcPath)) {
console.log('Found existing .npmrc file');
}
else if (NPM_TOKEN) {
console.log('No .npmrc file found, creating one');
await fs.promises.writeFile(npmrcPath, `//registry.npmjs.org/:_authToken=${NPM_TOKEN}`);
}
else {
setFailed('No `.npmrc` found nor `NPM_TOKEN` provided, unable to publish packages');
return;
}
const result = await runPublish({
script: publishScript,
gitlabToken: GITLAB_TOKEN,
createGitlabReleases: !FALSY_VALUES.has(getInput('create_gitlab_releases')),
});
if (result.published) {
setOutput('published', true);
setOutput('publishedPackages', result.publishedPackages);
exportVariable('PUBLISHED', true);
exportVariable('PUBLISHED_PACKAGES', result.publishedPackages);
if (published) {
execSync(published);
}
}
else if (NPM_TOKEN) {
console.log('No .npmrc file found, creating one');
await fs.promises.writeFile(npmrcPath, `//registry.npmjs.org/:_authToken=${NPM_TOKEN}`);
}
else {
setFailed('No `.npmrc` found nor `NPM_TOKEN` provided, unable to publish packages');
return;
}
case hasChangesets: {
await runVersion({
script: getOptionalInput('version'),
gitlabToken: GITLAB_TOKEN,
mrTitle: getOptionalInput('title'),
mrTargetBranch: getOptionalInput('target_branch'),
commitMessage: getOptionalInput('commit'),
removeSourceBranch: getInput('remove_source_branch') === 'true',
hasPublishScript,
});
if (onlyChangesets) {
execSync(onlyChangesets);
const result = await runPublish({
script: publishScript,
gitlabToken: GITLAB_TOKEN,
createGitlabReleases: !FALSY_VALUES.has(getInput('create_gitlab_releases')),
});
if (result.published) {
setOutput('published', true);
setOutput('publishedPackages', result.publishedPackages);
exportVariable('PUBLISHED', true);
exportVariable('PUBLISHED_PACKAGES', result.publishedPackages);
if (published) {
execSync(published);
}
}
return;
}
if (hasChangesets) {
await runVersion({
script: getOptionalInput('version'),
gitlabToken: GITLAB_TOKEN,
mrTitle: getOptionalInput('title'),
mrTargetBranch: getOptionalInput('target_branch'),
commitMessage: getOptionalInput('commit'),
removeSourceBranch: getInput('remove_source_branch') === 'true',
hasPublishScript,
});
if (onlyChangesets) {
execSync(onlyChangesets);
}
}
};
//# sourceMappingURL=main.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
import type { NewChangeset, PreState } from '@changesets/types';
export interface ChangesetState {
export type ChangesetState = {
preState: PreState | undefined;
changesets: NewChangeset[];
}
};
export default function readChangesetState(cwd?: string): Promise<ChangesetState>;

@@ -0,1 +1,2 @@

import process from 'node:process';
import { readPreState } from '@changesets/pre';

@@ -2,0 +3,0 @@ import readChangesets from '@changesets/read';

@@ -1,1 +0,1 @@

{"version":3,"file":"read-changeset-state.js","sourceRoot":"","sources":["../src/read-changeset-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAQ7C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAC9C,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;IACxC,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAA;IAErE,IAAI,UAAU,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAA;IAE1C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACvD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACtE,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC5C,UAAU;KACX,CAAA;AACH,CAAC"}
{"version":3,"file":"read-changeset-state.js","sourceRoot":"","sources":["../src/read-changeset-state.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAQ7C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAC9C,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;IACxC,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAA;IAErE,IAAI,UAAU,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAA;IAE1C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACvD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACtE,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC5C,UAAU;KACX,CAAA;AACH,CAAC"}

@@ -7,3 +7,3 @@ import type { Gitlab } from '@gitbeaker/core';

}) => Promise<void>;
export interface PublishOptions {
export type PublishOptions = {
script: string;

@@ -13,7 +13,7 @@ gitlabToken: string;

cwd?: string;
}
export interface PublishedPackage {
};
export type PublishedPackage = {
name: string;
version: string;
}
};
export type PublishResult = {

@@ -26,3 +26,3 @@ published: false;

export declare function runPublish({ script, gitlabToken, createGitlabReleases, cwd, }: PublishOptions): Promise<PublishResult>;
export interface VersionOptions {
export type VersionOptions = {
script?: string;

@@ -36,3 +36,3 @@ gitlabToken: string;

hasPublishScript?: boolean;
}
};
export declare function runVersion({ script, gitlabToken, cwd, mrTitle, mrTargetBranch, commitMessage, removeSourceBranch, hasPublishScript, }: VersionOptions): Promise<void>;
import fs from 'node:fs/promises';
import path from 'node:path';
import process from 'node:process';
import { exec } from '@actions/exec';

@@ -12,4 +13,16 @@ import { getPackages } from '@manypkg/get-packages';

import readChangesetState from './read-changeset-state.js';
import { cjsRequire, execWithOutput, GITLAB_MAX_TAGS, getChangedPackages, getChangelogEntry, getOptionalInput, getVersionsByDirectory, sortTheThings, } from './utils.js';
const limit = pLimit(2 * 3);
import { cjsRequire, execWithOutput, GITLAB_MAX_TAGS, getChangedPackages, getChangelogEntry, getOptionalInput, getVersionsByDirectory, sortTheThings, } from './utils/index.js';
const MAGIC_NUMBER = 3;
const limit = pLimit(2 * MAGIC_NUMBER);
const requireChangesetsCliPkgJson = (cwd) => {
try {
return cjsRequire(resolveFrom(cwd, '@changesets/cli/package.json'));
}
catch (err) {
if (err?.code === 'MODULE_NOT_FOUND') {
throw new Error(`Have you forgotten to install \`@changesets/cli\` in "${cwd}"?`, { cause: err });
}
throw err;
}
};
export const createRelease = async (api, { pkg, tagName }) => {

@@ -38,3 +51,3 @@ try {

const api = createApi(gitlabToken);
const [publishCommand, ...publishArgs] = script.split(/\s+/);
const [publishCommand, ...publishArgs] = script.split(/\s+/u);
const changesetPublishOutput = await execWithOutput(publishCommand, publishArgs, { cwd });

@@ -52,7 +65,7 @@ const { packages, tool } = await getPackages(cwd);

if (packages.length !== 1) {
throw new Error(`No package found.`
throw new Error('No package found.'
+ 'This is probably a bug in the action, please open an issue');
}
const pkg = packages[0];
const newTagRegex = /New tag:/;
const [pkg] = packages;
const newTagRegex = /New tag:/u;
for (const line of changesetPublishOutput.stdout.split('\n')) {

@@ -71,3 +84,3 @@ const match = newTagRegex.exec(line);

else {
const newTagRegex = /New tag:\s+(@[^/]+\/[^@]+|[^/]+)@(\S+)/;
const newTagRegex = /New tag:\s+(@[^/]+\/[^@]+|[^/]+)@(\S+)/u;
const packagesByName = new Map(packages.map((x) => [x.packageJson.name, x]));

@@ -79,3 +92,3 @@ for (const line of changesetPublishOutput.stdout.split('\n')) {

}
const pkgName = match[1];
const [, pkgName] = match;
const pkg = packagesByName.get(pkgName);

@@ -109,13 +122,2 @@ if (pkg === undefined) {

}
const requireChangesetsCliPkgJson = (cwd) => {
try {
return cjsRequire(resolveFrom(cwd, '@changesets/cli/package.json'));
}
catch (err) {
if (err?.code === 'MODULE_NOT_FOUND') {
throw new Error(`Have you forgotten to install \`@changesets/cli\` in "${cwd}"?`);
}
throw err;
}
};
export async function runVersion({ script, gitlabToken, cwd = process.cwd(), mrTitle = 'Version Packages', mrTargetBranch = context.ref, commitMessage = 'Version Packages', removeSourceBranch = false, hasPublishScript = false, }) {

@@ -134,3 +136,3 @@ const currentBranch = context.ref;

if (script) {
const [versionCommand, ...versionArgs] = script.split(/\s+/);
const [versionCommand, ...versionArgs] = script.split(/\s+/u);
await exec(versionCommand, versionArgs, { cwd });

@@ -137,0 +139,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}

@@ -1,20 +0,1 @@

export interface MainCommandOptions {
published?: string;
onlyChangesets?: string;
}
export type LooseString<T extends string> = T | (string & {});
export type Env = GitLabCIPredefinedVariables & MergeRequestVariables & {
GITLAB_HOST: string;
GITLAB_TOKEN: string;
GITLAB_TOKEN_TYPE: LooseString<'job' | 'oauth'>;
GITLAB_CI_USER_NAME?: string;
GITLAB_CI_USER_EMAIL: string;
GITLAB_COMMENT_TYPE: LooseString<'discussion' | 'note'>;
GITLAB_COMMENT_DISCUSSION_AUTO_RESOLVE?: LooseString<'1' | 'true'>;
GITLAB_ADD_CHANGESET_MESSAGE?: string;
DEBUG_GITLAB_CREDENTIAL?: LooseString<'1' | 'true'>;
GITLAB_COMMENT_CUSTOM_LINKS?: string;
HOME: string;
NPM_TOKEN?: string;
};
type MergeRequestVariables = {

@@ -38,2 +19,22 @@ CI_MERGE_REQUEST_SOURCE_BRANCH_NAME: undefined;

});
export type MainCommandOptions = {
published?: string;
onlyChangesets?: string;
};
export type LooseString<T extends string> = T | (string & {});
export type Env = GitLabCIPredefinedVariables & MergeRequestVariables & {
GITLAB_HOST: string;
GITLAB_TOKEN: string;
GITLAB_TOKEN_TYPE: LooseString<'job' | 'oauth'>;
GITLAB_CI_USER_NAME?: string;
GITLAB_CI_USER_EMAIL: string;
GITLAB_COMMENT_TYPE: LooseString<'discussion' | 'note'>;
GITLAB_COMMENT_DISCUSSION_AUTO_RESOLVE?: LooseString<'1' | 'true'>;
GITLAB_ADD_CHANGESET_MESSAGE?: string;
DEBUG_GITLAB_CREDENTIAL?: LooseString<'1' | 'true'>;
GITLAB_COMMENT_CUSTOM_LINKS?: string;
HOME: string;
NPM_TOKEN?: string;
GITLAB_CHANGESETS_DEBUG?: boolean;
};
export {};
{
"name": "@dvashim/changesets-gitlab",
"version": "0.0.4",
"version": "0.1.0",
"description": "GitLab CI CLI for changesets — automate versioning, changelogs, and publishing via merge requests",

@@ -5,0 +5,0 @@ "keywords": [

import { type DiscussionSchema, type MergeRequestNoteSchema } from '@gitbeaker/rest';
export declare const comment: () => Promise<DiscussionSchema | MergeRequestNoteSchema | import("@gitbeaker/core").MergeRequestDiscussionNoteSchema | undefined>;
import { ValidationError } from '@changesets/errors';
import { GitbeakerRequestError, } from '@gitbeaker/rest';
import { humanId } from 'human-id';
import { markdownTable } from 'markdown-table';
import { createApi } from "./api.js";
import * as context from './context.js';
import { env } from './env.js';
import { getChangedPackages } from './get-changed-packages.js';
import { getUsername, HTTP_STATUS_NOT_FOUND, TRUTHY_VALUES } from './utils.js';
const generatedByBotNote = 'Generated By Changesets GitLab Bot';
const getReleasePlanMessage = (releasePlan) => {
if (!releasePlan) {
return '';
}
const publishableReleases = releasePlan.releases.filter((x) => x.type !== 'none');
const table = markdownTable([
['Name', 'Type'],
...publishableReleases.map((x) => [
x.name,
{
major: 'Major',
minor: 'Minor',
patch: 'Patch',
}[x.type],
]),
]);
return `<details><summary>This MR includes ${releasePlan.changesets.length > 0
? `changesets to release ${publishableReleases.length === 1
? '1 package'
: `${publishableReleases.length} packages`}`
: 'no changesets'}</summary>
${publishableReleases.length > 0
? table
: "When changesets are added to this MR, you'll see the packages that this MR includes changesets for and the associated semver types"}
</details>`;
};
const customLinks = env.GITLAB_COMMENT_CUSTOM_LINKS?.trim();
const ADD_CHANGESET_URL_PLACEHOLDER_REGEXP = /\{\{\s*addChangesetUrl\s*\}\}/;
const getAbsentMessage = (commitSha, addChangesetUrl, newChangesetTemplateFallback, releasePlan) => `### ⚠️ No Changeset found
Latest commit: ${commitSha}
Merging this MR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. **If these changes should result in a version bump, you need to add a changeset.**
${getReleasePlanMessage(releasePlan)}
${customLinks
? customLinks.replace(ADD_CHANGESET_URL_PLACEHOLDER_REGEXP, addChangesetUrl)
: `[Click here to learn what changesets are, and how to add one](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
[Click here if you're a maintainer who wants to add a changeset to this MR](${addChangesetUrl})`}
${newChangesetTemplateFallback}
__${generatedByBotNote}__
`;
const getApproveMessage = (commitSha, addChangesetUrl, newChangesetTemplateFallback, releasePlan) => `### 🦋 Changeset detected
Latest commit: ${commitSha}
**The changes in this MR will be included in the next version bump.**
${getReleasePlanMessage(releasePlan)}
${customLinks
? customLinks.replace(ADD_CHANGESET_URL_PLACEHOLDER_REGEXP, addChangesetUrl)
: `Not sure what this means? [Click here to learn what changesets are](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
[Click here if you're a maintainer who wants to add another changeset to this MR](${addChangesetUrl})`}
${newChangesetTemplateFallback}
__${generatedByBotNote}__
`;
const getNewChangesetTemplate = (changedPackages, title) => `---
${changedPackages.map((x) => `"${x}": patch`).join('\n')}
---
${title}
`;
const isMrNote = (discussionOrNote) => 'noteable_type' in discussionOrNote
&& discussionOrNote.noteable_type === 'MergeRequest';
const RANDOM_BOT_NAME_PATTERN = /^((?:project|group)_\d+_bot\w*)_[\da-z]+$/i;
const isChangesetBotNote = (note, username, random) => (note.author.username === username
|| (random
&& RANDOM_BOT_NAME_PATTERN.exec(note.author.username)?.[1] === username))
&& note.body.includes(generatedByBotNote);
async function getNoteInfo(api, mrIid, commentType, random) {
const discussionOrNotes = await (commentType === 'discussion'
? api.MergeRequestDiscussions.all(context.projectId, mrIid)
: api.MergeRequestNotes.all(context.projectId, +mrIid));
const username = await getUsername(api);
for (const discussionOrNote of discussionOrNotes) {
if (isMrNote(discussionOrNote)) {
if (isChangesetBotNote(discussionOrNote, username, random)) {
return {
noteId: discussionOrNote.id,
};
}
continue;
}
if (!discussionOrNote.notes) {
continue;
}
const changesetBotNote = discussionOrNote.notes.find((note) => isChangesetBotNote(note, username));
if (changesetBotNote) {
return {
discussionId: discussionOrNote.id,
noteId: changesetBotNote.id,
};
}
}
return random ? null : getNoteInfo(api, mrIid, commentType, true);
}
const hasChangesetBeenAdded = async (changedFilesPromise) => {
const changedFiles = await changedFilesPromise;
return changedFiles.some((file) => {
return (file.new_file
&& /^\.changeset\/.+\.md$/.test(file.new_path)
&& file.new_path !== '.changeset/README.md');
});
};
export const comment = async () => {
const mrBranch = env.CI_MERGE_REQUEST_SOURCE_BRANCH_NAME;
if (!mrBranch) {
console.warn('[changesets-gitlab:comment] It should only be used on MR');
return;
}
const { CI_MERGE_REQUEST_IID: mrIid, GITLAB_COMMENT_TYPE: commentType, GITLAB_ADD_CHANGESET_MESSAGE: commitMessage, } = env;
if (mrBranch.startsWith('changeset-release')) {
return;
}
const api = createApi();
let errFromFetchingChangedFiles = '';
try {
const latestCommitSha = env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA;
const changedFilesPromise = api.MergeRequests.allDiffs(context.projectId, mrIid).catch(async (err) => {
if (!(err instanceof GitbeakerRequestError)
|| err.cause?.response.status !== HTTP_STATUS_NOT_FOUND) {
throw err;
}
const { changes } = await api.MergeRequests.showChanges(context.projectId, mrIid);
return changes;
});
const [noteInfo, hasChangeset, { changedPackages, releasePlan }] = await Promise.all([
getNoteInfo(api, mrIid, commentType),
hasChangesetBeenAdded(changedFilesPromise),
getChangedPackages({
changedFiles: changedFilesPromise.then((changedFiles) => changedFiles.map(({ new_path }) => new_path)),
api,
}).catch((err) => {
if (err instanceof ValidationError) {
errFromFetchingChangedFiles = `<details><summary>💥 An error occurred when fetching the changed packages and changesets in this MR</summary>\n\n\`\`\`\n${err.message}\n\`\`\`\n\n</details>\n`;
}
else {
console.error(err);
}
return {
changedPackages: ['@fake-scope/fake-pkg'],
releasePlan: null,
};
}),
]);
const newChangesetFileName = `.changeset/${humanId({
separator: '-',
capitalize: false,
})}.md`;
const newChangesetTemplate = getNewChangesetTemplate(changedPackages, env.CI_MERGE_REQUEST_TITLE);
const addChangesetUrl = `${env.CI_MERGE_REQUEST_PROJECT_URL}/-/new/${mrBranch}?file_name=${newChangesetFileName}&file=${encodeURIComponent(newChangesetTemplate)}${commitMessage
? `&commit_message=${encodeURIComponent(commitMessage)}`
: ''}`;
const newChangesetTemplateFallback = `
If the above link doesn't fill the changeset template file name and content which is [a known regression on GitLab >= 16.11](https://gitlab.com/gitlab-org/gitlab/-/issues/532221), you can copy and paste the following template into ${newChangesetFileName} instead:
\`\`\`yaml
${newChangesetTemplate}
\`\`\`
`.trim();
const prComment = (hasChangeset
? getApproveMessage(latestCommitSha, addChangesetUrl, newChangesetTemplateFallback, releasePlan)
: getAbsentMessage(latestCommitSha, addChangesetUrl, newChangesetTemplateFallback, releasePlan)) + errFromFetchingChangedFiles;
switch (commentType) {
case 'discussion': {
if (noteInfo) {
if (hasChangeset
&& TRUTHY_VALUES.has(env.GITLAB_COMMENT_DISCUSSION_AUTO_RESOLVE || '1')) {
await api.MergeRequestDiscussions.resolve(context.projectId, mrIid, noteInfo.discussionId, true);
}
return api.MergeRequestDiscussions.editNote(context.projectId, mrIid, noteInfo.discussionId, noteInfo.noteId, {
body: prComment,
});
}
return api.MergeRequestDiscussions.create(context.projectId, mrIid, prComment);
}
case 'note': {
if (noteInfo) {
return api.MergeRequestNotes.edit(context.projectId, mrIid, noteInfo.noteId, { body: prComment });
}
return api.MergeRequestNotes.create(context.projectId, mrIid, prComment);
}
default: {
throw new Error(`Invalid comment type "${commentType}", should be "discussion" or "note"`);
}
}
}
catch (err) {
if (err instanceof GitbeakerRequestError && err.cause) {
const { description, request, response } = err.cause;
console.error(description);
try {
console.error('request:', await request.text());
}
catch {
console.error("The error's request could not be used as plain text");
}
try {
console.error('response:', await response.text());
}
catch {
console.error("The error's response could not be used as plain text");
}
}
throw err;
}
};
//# sourceMappingURL=comment.js.map
{"version":3,"file":"comment.js","sourceRoot":"","sources":["../src/comment.ts"],"names":[],"mappings":"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"}
import type { Gitlab } from '@gitbeaker/core';
import type { Package } from '@manypkg/get-packages';
export declare const BumpLevels: {
readonly dep: 0;
readonly patch: 1;
readonly minor: 2;
readonly major: 3;
};
export declare function getVersionsByDirectory(cwd: string): Promise<Map<string, string>>;
export declare function getChangedPackages(cwd: string, previousVersions: Map<string, string>): Promise<Package[]>;
export declare function getChangelogEntry(changelog: string, version: string): {
content: string;
highestLevel: number;
};
export declare function execWithOutput(command: string, args?: string[], options?: {
ignoreReturnCode?: boolean;
cwd?: string;
}): Promise<{
code: number;
stdout: string;
stderr: string;
}>;
export declare function sortTheThings(a: {
private: boolean;
highestLevel: number;
}, b: {
private: boolean;
highestLevel: number;
}): number;
export declare const identify: <T>(_: T) => _ is Exclude<T, "" | (T extends boolean ? false : boolean) | null | undefined>;
export declare function getAllFiles(dir: string, base?: string): Promise<string[]>;
export declare const execSync: (command: string) => NonSharedBuffer;
export declare const getOptionalInput: (name: string) => string | undefined;
export declare const getUsername: (api: Gitlab) => Promise<string>;
export declare const cjsRequire: NodeJS.Require;
export declare const FALSY_VALUES: Set<string>;
export declare const TRUTHY_VALUES: Set<string>;
export declare const GITLAB_MAX_TAGS = 4;
export declare const HTTP_STATUS_NOT_FOUND = 404;
import { execSync as execSync_ } from 'node:child_process';
import fs from 'node:fs';
import { createRequire } from 'node:module';
import path from 'node:path';
import { getInput } from '@actions/core';
import { exec } from '@actions/exec';
import { getPackages } from '@manypkg/get-packages';
import { toString as mdastToString } from 'mdast-util-to-string';
import remarkParse from 'remark-parse';
import remarkStringify from 'remark-stringify';
import { unified } from 'unified';
import { env } from './env.js';
export const BumpLevels = {
dep: 0,
patch: 1,
minor: 2,
major: 3,
};
export async function getVersionsByDirectory(cwd) {
const { packages } = await getPackages(cwd);
return new Map(packages.map((x) => [x.dir, x.packageJson.version]));
}
export async function getChangedPackages(cwd, previousVersions) {
const { packages } = await getPackages(cwd);
const changedPackages = new Set();
for (const pkg of packages) {
const previousVersion = previousVersions.get(pkg.dir);
if (previousVersion !== pkg.packageJson.version) {
changedPackages.add(pkg);
}
}
return [...changedPackages];
}
export function getChangelogEntry(changelog, version) {
const ast = unified().use(remarkParse).parse(changelog);
let highestLevel = BumpLevels.dep;
const nodes = ast.children;
let headingStartInfo;
let endIndex;
for (const [i, node] of nodes.entries()) {
if (node.type === 'heading') {
const stringified = mdastToString(node);
const match = /(major|minor|patch)/.exec(stringified.toLowerCase());
if (match !== null) {
const level = BumpLevels[match[0]];
highestLevel = Math.max(level, highestLevel);
}
if (headingStartInfo === undefined && stringified === version) {
headingStartInfo = {
index: i,
depth: node.depth,
};
continue;
}
if (endIndex === undefined
&& headingStartInfo !== undefined
&& headingStartInfo.depth === node.depth) {
endIndex = i;
break;
}
}
}
if (headingStartInfo) {
ast.children = ast.children.slice(headingStartInfo.index + 1, endIndex);
}
return {
content: unified().use(remarkStringify).stringify(ast),
highestLevel,
};
}
export async function execWithOutput(command, args, options) {
let myOutput = '';
let myError = '';
return {
code: await exec(command, args, {
listeners: {
stdout: (data) => {
myOutput += data.toString();
},
stderr: (data) => {
myError += data.toString();
},
},
...options,
}),
stdout: myOutput,
stderr: myError,
};
}
export function sortTheThings(a, b) {
if (a.private === b.private) {
return b.highestLevel - a.highestLevel;
}
if (a.private) {
return 1;
}
return -1;
}
export const identify = (_) => !!_;
export async function getAllFiles(dir, base = dir) {
const direntList = await fs.promises.readdir(dir, { withFileTypes: true });
const files = await Promise.all(direntList.map((dirent) => {
const res = path.resolve(dir, dirent.name);
return dirent.isDirectory()
? getAllFiles(res, base)
: [path.relative(base, res)];
}));
return files.flat();
}
export const execSync = (command) => execSync_(command, { stdio: 'inherit' });
export const getOptionalInput = (name) => getInput(name) || undefined;
export const getUsername = async (api) => {
return env.GITLAB_CI_USER_NAME ?? (await api.Users.showCurrentUser()).username;
};
export const cjsRequire = typeof require === 'undefined' ? createRequire(import.meta.url) : require;
export const FALSY_VALUES = new Set(['false', '0']);
export const TRUTHY_VALUES = new Set(['true', '1']);
export const GITLAB_MAX_TAGS = 4;
export const HTTP_STATUS_NOT_FOUND = 404;
//# sourceMappingURL=utils.js.map
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}