AGENT SKILL
41-git-runner
暂无简介
- License 许可
- MIT
- 最近更新
- 2026-04-12
- Stars
- ★ 0
- Forks
- 0
02 资源文件 75
- 参考文档agents/openai.yaml205 B
- 参考文档references/config.md4.4 KB
- 参考文档references/ubiquitous-language-spec.md2.0 KB
- 参考文档schemas/behaviour-driven/README.md2.0 KB
- 参考文档schemas/behaviour-driven/schema.yaml8.4 KB
- 参考文档schemas/behaviour-driven/templates/design.md302 B
- 参考文档schemas/behaviour-driven/templates/proposal.md943 B
- 参考文档schemas/behaviour-driven/templates/spec.md723 B
- 参考文档schemas/behaviour-driven/templates/tasks.md209 B
- 参考文档schemas/behaviour-driven/UPDATE.md1.1 KB
- 参考文档schemas/event-driven/README.md1.9 KB
- 参考文档schemas/event-driven/schema.yaml3.9 KB
- 参考文档schemas/event-driven/templates/asyncapi.yaml1.3 KB
- 参考文档schemas/event-driven/templates/design.md1.2 KB
- 参考文档schemas/event-driven/templates/event-modeling.md1.9 KB
- 参考文档schemas/event-driven/templates/event-storming.md1.5 KB
- 参考文档schemas/event-driven/templates/specs/spec.md692 B
- 参考文档schemas/event-driven/templates/tasks.md551 B
- 参考文档schemas/event-driven/UPDATE.md1.1 KB
- 参考文档schemas/ferspec/INSTALL.md6.1 KB
- 参考文档schemas/ferspec/README.md7.4 KB
- 参考文档schemas/ferspec/schema.yaml6.4 KB
- 参考文档schemas/ferspec/templates/adopters/AGENTS.md.fragment.md3.5 KB
- 参考文档schemas/ferspec/templates/design.md1.5 KB
- 参考文档schemas/ferspec/templates/discovery.md824 B
- 参考文档schemas/ferspec/templates/proposal.md1.7 KB
- 参考文档schemas/ferspec/templates/spec.md1.2 KB
- 参考文档schemas/ferspec/templates/tasks.md1.1 KB
- 参考文档schemas/ferspec/templates/tracking.md510 B
- 参考文档schemas/ferspec/UPDATE.md4.0 KB
- 其他schemas/ferspec/VERSION6 B
- 参考文档schemas/intent-driven/README.md2.5 KB
- 参考文档schemas/intent-driven/schema.yaml11.1 KB
- 参考文档schemas/intent-driven/templates/adr.md651 B
- 参考文档schemas/intent-driven/templates/design.md490 B
- 参考文档schemas/intent-driven/templates/proposal.md943 B
- 参考文档schemas/intent-driven/templates/spec.md723 B
- 参考文档schemas/intent-driven/templates/tasks.md209 B
- 参考文档schemas/intent-driven/UPDATE.md1.1 KB
- 参考文档schemas/minimalist/README.md831 B
- 参考文档schemas/minimalist/schema.yaml656 B
- 参考文档schemas/minimalist/templates/specs/spec.md692 B
- 参考文档schemas/minimalist/templates/tasks.md374 B
- 参考文档schemas/minimalist/UPDATE.md1.1 KB
- 参考文档schemas/rapid/schema.yaml658 B
- 参考文档schemas/rapid/UPDATE.md1.1 KB
- 参考文档schemas/README.md5.8 KB
- 参考文档schemas/spec-driven-with-adr/README.md2.0 KB
- 参考文档schemas/spec-driven-with-adr/schema.yaml10.9 KB
- 参考文档schemas/spec-driven-with-adr/templates/adr.md654 B
- 参考文档schemas/spec-driven-with-adr/templates/design.md302 B
- 参考文档schemas/spec-driven-with-adr/templates/proposal.md888 B
- 参考文档schemas/spec-driven-with-adr/templates/spec.md198 B
- 参考文档schemas/spec-driven-with-adr/templates/tasks.md209 B
- 参考文档schemas/spec-driven-with-adr/UPDATE.md1.1 KB
- 参考文档schemas/spec-driven/schema.yaml7.2 KB
- 参考文档schemas/spec-driven/templates/design.md302 B
- 参考文档schemas/spec-driven/templates/proposal.md888 B
- 参考文档schemas/spec-driven/templates/spec.md198 B
- 参考文档schemas/spec-driven/templates/tasks.md209 B
- 参考文档schemas/spec-driven/UPDATE.md1.1 KB
- 参考文档schemas/superpowers-bridge/INSTALL.md4.3 KB
- 参考文档schemas/superpowers-bridge/README.md34.0 KB
- 参考文档schemas/superpowers-bridge/schema.yaml29.0 KB
- 参考文档schemas/superpowers-bridge/templates/adopters/AGENTS.md.fragment.md3.3 KB
- 参考文档schemas/superpowers-bridge/templates/brainstorm.md591 B
- 参考文档schemas/superpowers-bridge/templates/design.md1.3 KB
- 参考文档schemas/superpowers-bridge/templates/plan.md401 B
- 参考文档schemas/superpowers-bridge/templates/proposal.md1.7 KB
- 参考文档schemas/superpowers-bridge/templates/retrospective.md5.3 KB
- 参考文档schemas/superpowers-bridge/templates/spec.md2.8 KB
- 参考文档schemas/superpowers-bridge/templates/tasks.md841 B
- 参考文档schemas/superpowers-bridge/templates/verify.md2.6 KB
- 参考文档schemas/superpowers-bridge/UPDATE.md4.2 KB
- 其他schemas/superpowers-bridge/VERSION6 B
03 SKILL.md 正文
41-git-runner
Status: ACTIVE AppliesTo: v1 Type: Component Specification
목적
git CLI를 System.Diagnostics.Process로 호출하는 static 래퍼.
Version Publish(Release 탭)와 Bundle Upload에서 사용한다.
파일 위치 (SSOT)
com.devian.foundation/Samples~/MobilePackage/Editor/BuildAutomation/GitRunner.cs
Public API
namespace Devian
{
public static class GitRunner
{
/// <param name="commitMessage">커밋 메시지</param>
/// <param name="filePaths">스테이징할 파일 경로 배열 (workingDirectory 기준 상대경로)</param>
/// <param name="ct">취소 토큰</param>
/// <param name="workingDirectory">git 실행 디렉토리. null이면 Unity 프로젝트 루트 사용</param>
public static Task<bool> Commit(
string commitMessage,
string[] filePaths,
CancellationToken ct = default,
string workingDirectory = null);
/// 현재 실행 중인 프로세스를 강제 종료한다.
public static void Kill();
}
}
Commit 동작
1. workingDirectory 결정
- 지정 시 → 해당 디렉토리 사용 (외부 repo 지원)
- null 시 → Unity 프로젝트 루트 (Application.dataPath/..)
2. git add {filePaths} (cwd: workingDirectory)
3. git commit -m "{commitMessage}"
4. 각 단계에서 exit code 검증
- exit code 1 + output에 "nothing to commit" 포함 → 경고 로그, 성공 반환 (true)
- 그 외 실패 → 에러 로그 + 실패 반환 (false)
내부 구조
RunGitInternal
private static async Task<GitResult> RunGitInternal(
string arguments, string workingDirectory, CancellationToken ct)
GitResult는 (bool success, int exitCode, string output)을 담는 내부 struct.
BuildAutomationUtil.CreateStartInfo로ProcessStartInfo생성- stdout/stderr를 StringBuilder로 수집 +
BuildAutomationLogger로 실시간 로그 CancellationToken+ 타임아웃(2분) 결합:CancellationTokenSource.CreateLinkedTokenSource- 취소/타임아웃 시
process.Kill()후 로그 - exitCode와 output을 호출자에게 반환 → 호출자가 "nothing to commit" 등 특수 케이스 판별
ResolveGitPath
macOS 기준 순회 탐색:
/usr/bin/git
/usr/local/bin/git
/opt/homebrew/bin/git
Hard Rules
- push 금지 — commit만 수행한다. push는 사용자가 직접 수행.
- git 인증은 사용자 머신의 기존 credential(SSH key, credential helper)을 사용한다.
- 로그는
BuildAutomationLogger경유. _currentProcess정적 필드로 실행 중 프로세스 추적 →Kill()로 강제 종료 가능.
Implementation Location (3-path mirror)
| 경로 | 역할 |
|---|---|
framework-cs/upm/com.devian.foundation/Samples~/MobilePackage/Editor/BuildAutomation/GitRunner.cs |
UPM (정본) |
framework-cs/apps/UnityExample/Packages/com.devian.foundation/Samples~/MobilePackage/Editor/BuildAutomation/GitRunner.cs |
Packages (sync) |
Assets/Samples/Devian Foundation/{version}/MobilePackage/Editor/BuildAutomation/GitRunner.cs |
Assets/Samples (import) |
Reference
- Parent:
skills/devian-unity/50-mobile-package/70-build-operation/00-overview/SKILL.md - Version Publish:
skills/devian-unity/50-mobile-package/70-build-operation/40-version-publish/SKILL.md - BuildAutomationUtil:
skills/devian-unity/50-mobile-package/70-build-operation/50-editor-window/SKILL.md