projectops 4.89.2 → 4.89.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  **Status: actively maintained.** npm `latest` is exactly what is on the `main` branch; work in progress on `develop` is never published. Versions can still ship several times a day. Note that `npx projectops@<version>` pins the installer only (workflow templates always come from the current `main`) ([releases](https://github.com/Cassiiopeia/projectops/releases)).
12
12
 
13
13
  <!-- AUTO-VERSION-SECTION: DO NOT EDIT MANUALLY -->
14
- ## Latest version : v4.89.2 (2026-11-07)
14
+ ## Latest version : v4.89.3 (2026-11-07)
15
15
 
16
16
  [View full version history](CHANGELOG.md)
17
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "projectops",
3
- "version": "4.89.2",
3
+ "version": "4.89.3",
4
4
  "description": "One npx install for GitHub release automation: semantic versioning, changelogs, release PRs, CI/CD workflows and AI agent skills",
5
5
  "keywords": [
6
6
  "github-actions",
@@ -26,12 +26,15 @@ import { t } from "../i18n/index.js";
26
26
  // 언어 전환(withLang 등) 시점에 평가되도록 함수로 둔다
27
27
  const permPurpose = () => t("doctor.perm.purpose");
28
28
 
29
+ const GITHUB_CHECK_TIMEOUT_MILLISECONDS = 5000;
30
+
29
31
  // GitHub REST 호출. 실패는 예외가 아니라 {ok:false}로 돌려 진단이 중단되지 않게 한다.
30
32
  async function gh(path, token) {
31
33
  try {
32
34
  const res = await fetch(`https://api.github.com${path}`, {
33
35
  headers: { Authorization: `token ${token}`, Accept: "application/vnd.github+json",
34
36
  "User-Agent": "projectops-doctor" },
37
+ signal: AbortSignal.timeout(GITHUB_CHECK_TIMEOUT_MILLISECONDS), // 막힌 네트워크에서 진단이 멈추지 않게
35
38
  });
36
39
  if (!res.ok) return { ok: false, status: res.status };
37
40
  return { ok: true, data: await res.json() };