Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions detect-add/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,10 @@ inputs:
description: 'language to use for the changeset'
required: false
default: 'en'
fork_guide_enabled:
description: 'enable guide comment for fork PRs (fork PRs cannot use auto-detect due to token permissions)'
required: false
default: 'false'
fork_guide_message:
description: 'custom guide message for fork PRs (optional, uses default bilingual message if not provided)'
required: false
67 changes: 65 additions & 2 deletions detect-add/dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -57338,7 +57338,7 @@ const file_1 = __nccwpck_require__(398);
const get_release_plan_1 = __nccwpck_require__(6240);
function main() {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d;
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
const context = github.context;
const { pull_request } = context.payload;
if (!pull_request) {
Expand Down Expand Up @@ -57382,11 +57382,74 @@ function main() {
: `The base branch is ${pull_request.base.ref}, or the head branch is ${(_c = pull_request === null || pull_request === void 0 ? void 0 : pull_request.head) === null || _c === void 0 ? void 0 : _c.ref}, so detectAdd is skipped.`);
return;
}
// Fork PR 감지 및 가이드 코멘트 처리
const forkGuideEnabled = core.getInput('fork_guide_enabled') === 'true';
const isForkPR = ((_e = (_d = pull_request.head) === null || _d === void 0 ? void 0 : _d.repo) === null || _e === void 0 ? void 0 : _e.fork) === true || ((_g = (_f = pull_request.head) === null || _f === void 0 ? void 0 : _f.repo) === null || _g === void 0 ? void 0 : _g.full_name) !== `${owner}/${repo}`;
if (isForkPR) {
core.info(isKoreanLanguage
? `Fork PR이 감지되었습니다. (${(_j = (_h = pull_request.head) === null || _h === void 0 ? void 0 : _h.repo) === null || _j === void 0 ? void 0 : _j.full_name})`
: `Fork PR detected. (${(_l = (_k = pull_request.head) === null || _k === void 0 ? void 0 : _k.repo) === null || _l === void 0 ? void 0 : _l.full_name})`);
if (forkGuideEnabled) {
const customMessage = core.getInput('fork_guide_message');
const defaultMessage = `## Changeset Guide for External Contributors

**한국어** | [English](#english)

### 한국어

외부 기여자분께 감사드립니다! 🎉

패키지에 변경사항이 있는 경우, changeset 파일을 수동으로 생성해주세요.

\`\`\`bash
pnpm changeset
\`\`\`

위 명령어를 실행하면 변경된 패키지와 버전 타입(patch/minor/major)을 선택하고, 변경 내용을 입력할 수 있습니다.

생성된 \`.changeset/*.md\` 파일을 커밋에 포함해주세요.

> **참고**: \`${skipLabel}\` 레이블이 있으면 changeset이 필요하지 않습니다.

---

<a name="english"></a>
### English

Thank you for your contribution! 🎉

If your PR includes package changes, please create a changeset file manually.

\`\`\`bash
pnpm changeset
\`\`\`

This command will guide you to select the changed packages, version type (patch/minor/major), and enter a description.

Please include the generated \`.changeset/*.md\` file in your commit.

> **Note**: If the \`${skipLabel}\` label is present, changeset is not required.

<!-- ${constants_1.CHANGESET_DETECT_ADD_ACTIONS_CHECKSUM} -->`;
const guideMessage = customMessage || defaultMessage;
const guideComment = Object.assign(Object.assign({}, commonParams), { body: guideMessage });
if (prevComment !== undefined) {
yield octokit.rest.issues.updateComment(Object.assign(Object.assign({}, guideComment), { comment_id: prevComment.id }));
}
else {
yield octokit.rest.issues.createComment(guideComment);
}
core.info(isKoreanLanguage
? `Fork PR에 changeset 가이드 코멘트를 추가했습니다.`
: `Added changeset guide comment for fork PR.`);
}
return;
}
/**
* 변경된 파일 이름을 가져오기위한 api
*/
const packages_dir = core.getInput('packages_dir');
const excludes = (_d = core.getInput('excludes')) !== null && _d !== void 0 ? _d : '';
const excludes = (_m = core.getInput('excludes')) !== null && _m !== void 0 ? _m : '';
if (typeof packages_dir !== 'string') {
throw new Error(isKoreanLanguage
? `해당 action에 주입된 packages_dir parameter가 잘못되었습니다. (string, string1)의 형식으로 작성해주세요.`
Expand Down
72 changes: 72 additions & 0 deletions detect-add/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,78 @@ async function main() {
return
}

// Fork PR 감지 및 가이드 코멘트 처리
const forkGuideEnabled = core.getInput('fork_guide_enabled') === 'true'
const isForkPR = pull_request.head?.repo?.fork === true || pull_request.head?.repo?.full_name !== `${owner}/${repo}`

if (isForkPR) {
core.info(
isKoreanLanguage
? `Fork PR이 감지되었습니다. (${pull_request.head?.repo?.full_name})`
: `Fork PR detected. (${pull_request.head?.repo?.full_name})`,
)

if (forkGuideEnabled) {
const customMessage = core.getInput('fork_guide_message')
const defaultMessage = `## Changeset Guide for External Contributors

**한국어** | [English](#english)

### 한국어

외부 기여자분께 감사드립니다! 🎉

패키지에 변경사항이 있는 경우, changeset 파일을 수동으로 생성해주세요.

\`\`\`bash
pnpm changeset
\`\`\`

위 명령어를 실행하면 변경된 패키지와 버전 타입(patch/minor/major)을 선택하고, 변경 내용을 입력할 수 있습니다.

생성된 \`.changeset/*.md\` 파일을 커밋에 포함해주세요.

> **참고**: \`${skipLabel}\` 레이블이 있으면 changeset이 필요하지 않습니다.

---

<a name="english"></a>
### English

Thank you for your contribution! 🎉

If your PR includes package changes, please create a changeset file manually.

\`\`\`bash
pnpm changeset
\`\`\`

This command will guide you to select the changed packages, version type (patch/minor/major), and enter a description.

Please include the generated \`.changeset/*.md\` file in your commit.

> **Note**: If the \`${skipLabel}\` label is present, changeset is not required.

<!-- ${CHANGESET_DETECT_ADD_ACTIONS_CHECKSUM} -->`

const guideMessage = customMessage || defaultMessage
const guideComment = {...commonParams, body: guideMessage}

if (prevComment !== undefined) {
await octokit.rest.issues.updateComment({...guideComment, comment_id: prevComment.id})
} else {
await octokit.rest.issues.createComment(guideComment)
}

core.info(
isKoreanLanguage
? `Fork PR에 changeset 가이드 코멘트를 추가했습니다.`
: `Added changeset guide comment for fork PR.`,
)
}
return
}

/**
* 변경된 파일 이름을 가져오기위한 api
*/
Expand Down