project-auto-wizard 0.12.1 → 0.12.2
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 +2 -2
- package/package.json +1 -1
- package/payload/scripts/__pycache__/changelog_manager.cpython-314.pyc +0 -0
- package/payload/scripts/__pycache__/issue_helper.cpython-314.pyc +0 -0
- package/payload/scripts/__pycache__/version_manager.cpython-314.pyc +0 -0
- package/payload/scripts/changelog_manager.py +3 -3
- package/payload/workflows/common/PROJECT-COMMON-AI-PR-SUMMARY.yaml +0 -1
- package/payload/workflows/common/PROJECT-COMMON-AUTO-CHANGELOG-CONTROL.yaml +1 -3
- package/payload/workflows/common/PROJECT-COMMON-RELEASE-PUBLISH.yaml +0 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ npx project-auto-wizard
|
|
|
15
15
|
[](package.json)
|
|
16
16
|
|
|
17
17
|
<!-- AUTO-VERSION-SECTION: DO NOT EDIT MANUALLY -->
|
|
18
|
-
## 최신 버전 : v0.12.
|
|
18
|
+
## 최신 버전 : v0.12.1 (2026-09-26)
|
|
19
19
|
|
|
20
20
|
[전체 버전 기록 보기](CHANGELOG.md)
|
|
21
21
|
|
|
@@ -195,7 +195,7 @@ flowchart LR
|
|
|
195
195
|
|
|
196
196
|
- 기본값은 **규칙 기반 요약**입니다. 설치 마법사에서 Copilot을 켜면(`--copilot`, `version.yml`의 `copilot_ai: true`) Actions의 `GITHUB_TOKEN` + `permissions: copilot-requests: write`로 Copilot CLI가 요약을 생성합니다 — 별도 API 키는 필요 없습니다.
|
|
197
197
|
- **Copilot은 GitHub Copilot AI Credits를 소비합니다.** 개인 저장소는 저장소 소유자의 Copilot 좌석에, 조직 저장소는 조직에 과금되며 조직은 "Allow use of Copilot CLI billed to the organization" 정책을 켜야 합니다. 사용할 수 없으면 자동으로 규칙 기반 요약으로 전환됩니다. PR에 푸시할 때마다 요약이 새로 생성되므로 그만큼 크레딧이 소비됩니다.
|
|
198
|
-
- Copilot
|
|
198
|
+
- Copilot은 항상 `auto` 모델 선택으로 호출됩니다. Copilot Free·Student 계정은 모델명을 직접 지정하는 호출이 거부되고 `auto`만 허용되기 때문에, 모델을 바꾸는 옵션은 제공하지 않습니다.
|
|
199
199
|
- GitHub은 Copilot CLI를 `run` 스텝에서 직접 호출하기보다 Agentic Workflows를 쓰라고 권고하지만, 이 프로젝트는 직접 호출을 택했습니다. 프롬프트 입력이 PR 제목·커밋 메시지·`git diff --stat`뿐이고, 빈 임시 디렉터리에서 shell/write/url 도구와 내장 MCP를 모두 막은 텍스트 생성 전용으로 호출하며, 포크 PR은 기존 가드로 건너뛰어 프롬프트 인젝션 위험을 낮췄기 때문입니다.
|
|
200
200
|
- `AI_API_KEY`(**Secret**)와 `AI_API_BASE_URL`·`AI_MODEL`(**Variables**)을 **모두** 설정하면 OpenAI-호환 엔드포인트(Groq, Gemini 호환 모드, Ollama 등)를 최우선으로 사용합니다. 셋 중 하나라도 없으면 이 단계는 건너뜁니다.
|
|
201
201
|
- 규칙 fallback 3단: 프로젝트 컨벤션 → Conventional Commits → 무형식 bullet. 커밋 컨벤션이 없어도 동작.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "project-auto-wizard",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.2",
|
|
4
4
|
"description": "One command DevOps: npx wizard that installs GitHub-native Release Automation (optional GitHub Copilot AI summaries) into any project",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -694,7 +694,8 @@ def cmd_export_release_notes(version: str, output_path: str | None) -> int:
|
|
|
694
694
|
|
|
695
695
|
# ------------------------ ai-summary 엔진 체인 ------------------------
|
|
696
696
|
|
|
697
|
-
|
|
697
|
+
# Copilot Free/Student 계정은 모델명 지정이 거부되고 auto 모델 선택만 허용된다 (#153).
|
|
698
|
+
_COPILOT_MODEL = "auto"
|
|
698
699
|
_COPILOT_TIMEOUT_SECONDS = 90
|
|
699
700
|
|
|
700
701
|
|
|
@@ -729,14 +730,13 @@ def call_copilot_cli(prompt: str) -> str:
|
|
|
729
730
|
빈 임시 디렉터리에서 실행하고, shell/write/url 도구를 거부하며, 내장 MCP와
|
|
730
731
|
커스텀 지침 로딩을 끈다.
|
|
731
732
|
실패(비정상 종료·타임아웃·CLI 없음)는 예외로 올려 호출부가 fallback한다."""
|
|
732
|
-
model = os.environ.get('COPILOT_MODEL') or _COPILOT_DEFAULT_MODEL
|
|
733
733
|
with tempfile.TemporaryDirectory() as workdir:
|
|
734
734
|
result = subprocess.run(
|
|
735
735
|
[
|
|
736
736
|
'copilot', '-p', prompt, '-s',
|
|
737
737
|
'--no-ask-user', '--no-color', '--no-custom-instructions', '--disable-builtin-mcps',
|
|
738
738
|
'--deny-tool=shell', '--deny-tool=write', '--deny-tool=url',
|
|
739
|
-
'--model',
|
|
739
|
+
'--model', _COPILOT_MODEL,
|
|
740
740
|
],
|
|
741
741
|
cwd=workdir, stdin=subprocess.DEVNULL,
|
|
742
742
|
capture_output=True, text=True, timeout=_COPILOT_TIMEOUT_SECONDS,
|
|
@@ -69,7 +69,6 @@ jobs:
|
|
|
69
69
|
AI_MODEL: ${{ vars.AI_MODEL }}
|
|
70
70
|
GITHUB_TOKEN: ${{ github.token }}
|
|
71
71
|
COPILOT_AI: ${{ steps.copilot_options.outputs.copilot_ai }}
|
|
72
|
-
COPILOT_MODEL: ${{ vars.COPILOT_MODEL }}
|
|
73
72
|
run: |
|
|
74
73
|
PR_NUMBER=${{ github.event.pull_request.number }}
|
|
75
74
|
VERSION=$(python3 .github/scripts/version_manager.py get 2>/dev/null | tail -n 1)
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
# {{MAIN_BRANCH}}-push workflows (e.g. RELEASE-PUBLISH) for that merge.
|
|
35
35
|
# - secrets.AI_API_KEY (+ vars.AI_API_BASE_URL / vars.AI_MODEL, all three
|
|
36
36
|
# required together): preferred summary engine. Falls back to Copilot CLI
|
|
37
|
-
# (only when version.yml copilot_ai is true;
|
|
37
|
+
# (only when version.yml copilot_ai is true; always uses auto model selection),
|
|
38
38
|
# then to rule-based.
|
|
39
39
|
#
|
|
40
40
|
# Without WORKFLOW_PAT, a wait-for-merge-and-trigger-release job
|
|
@@ -163,7 +163,6 @@ jobs:
|
|
|
163
163
|
AI_MODEL: ${{ vars.AI_MODEL }}
|
|
164
164
|
GITHUB_TOKEN: ${{ github.token }}
|
|
165
165
|
COPILOT_AI: ${{ steps.copilot_options.outputs.copilot_ai }}
|
|
166
|
-
COPILOT_MODEL: ${{ vars.COPILOT_MODEL }}
|
|
167
166
|
run: |
|
|
168
167
|
# Idempotency: if the PR head is already this workflow's own
|
|
169
168
|
# version-confirm commit (re-run / synchronize retrigger), do not
|
|
@@ -200,7 +199,6 @@ jobs:
|
|
|
200
199
|
AI_MODEL: ${{ vars.AI_MODEL }}
|
|
201
200
|
GITHUB_TOKEN: ${{ github.token }}
|
|
202
201
|
COPILOT_AI: ${{ steps.copilot_options.outputs.copilot_ai }}
|
|
203
|
-
COPILOT_MODEL: ${{ vars.COPILOT_MODEL }}
|
|
204
202
|
run: |
|
|
205
203
|
VERSION=$(python3 .github/scripts/version_manager.py get | tail -n 1)
|
|
206
204
|
|
|
@@ -190,7 +190,6 @@ jobs:
|
|
|
190
190
|
AI_MODEL: ${{ vars.AI_MODEL }}
|
|
191
191
|
GITHUB_TOKEN: ${{ github.token }}
|
|
192
192
|
COPILOT_AI: ${{ steps.copilot_options.outputs.copilot_ai }}
|
|
193
|
-
COPILOT_MODEL: ${{ vars.COPILOT_MODEL }}
|
|
194
193
|
run: |
|
|
195
194
|
# Idempotency: on a re-run of a failed job the checked-out HEAD may
|
|
196
195
|
# already be this workflow's own docs commit — never bump twice.
|