TTokenySpace
返回 Skills 列表

Workspace Git Setup

One-command Git tracking setup for any working directory, with a security-focused .gitignore (credentials, TLS/SSH private keys, tokens, runtime caches & PID...

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"workspace-git-setup"技能
技能信息:
- 名称: Workspace Git Setup
- 标识: workspace-git-setup
- 描述: One-command Git tracking setup for any working directory, with a security-focused .gitignore (credentials, TLS/SSH private keys, tokens, runtime caches & PID...
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/workspace-git-setup/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

workspace-git-setup

One command to set up safe, sensible Git tracking for any working directory — with a built-in security audit.

A zero-dependency Bash script that initializes Git version control for a project, ships a battle-tested security .gitignore, warns about large files before your first commit, and can audit an existing repo for leaked secrets and untracked files.

Pure bash + git. No Python, no npm, no third-party packages.

Usage

# Initialize / align config (defaults to current directory; auto-uses dir name as project name)
bash scripts/setup.sh

# Specify workspace path and project name
bash scripts/setup.sh /path/to/project "MyProject"

# Audit mode (read-only): detects sensitive files / untracked files / config
bash scripts/setup.sh --audit

# Dry-run mode: preview every action without applying anything
bash scripts/setup.sh --dry-run

Path & identity resolution

ItemPriority
Workspace pathCLI argument > WORKSPACE_DIR env var > current directory
Git identityGIT_AUTHOR_NAME / GIT_AUTHOR_EMAIL env vars > existing git config > interactive prompt

When only an email is provided, the email prefix is used as the username (you can change it later with git config).

Three modes

ModeWhat it doesMutates?
(default) init / aligngit init + writes safe .gitignore + large-file warning + first commit✏️ yes
--auditread-only health check: tracked secrets / untracked files / core.autocrlf👀 no
--dry-runpreview every change without applying👀 no

Default flow (init mode)

  1. Resolve path — CLI arg > WORKSPACE_DIR > current directory
  2. Infer project name — workspace basename (override with the 2nd argument)
  3. Read identity — env vars → existing git config → interactive prompt
  4. git init — skipped if a repo already exists (idempotent); sets core.autocrlf=input to unify line endings; default branch main
  5. Write .gitignore — if one exists, shows a diff and asks before overwriting
  6. Large-file warning — scans files >10MB to be tracked and asks for confirmation
  7. First commit — auto-stages and commits
  8. Summary — shows project name, path, git identity, and audit usage

Default .gitignore rules (general-purpose security)

CategoryPatterns
Credentials.env, .env.*, *.pem, secrets/, .credentials/, *token*.json, *secret*.json
TLS / SSH keys**/certs/*.key, id_rsa, id_dsa, id_ecdsa, id_ed25519, *.p12, *.keystore
Temp / cachetmp/, *.tmp, *.cache, *.log, *.pid
OS / editor.DS_Store, ._*, Thumbs.db, .vscode/, .idea/, *.swp, etc.
Dependenciesnode_modules/, __pycache__/, *.pyc, .venv/, venv/, .pytest_cache/
Build outputoutput/, dist/, build/, out/, *.egg-info/

Note: private-key ignores are scoped to **/certs/*.key (instead of a blanket *.key) so legitimate .key files elsewhere are not hidden.

Audit mode (--audit)

Read-only run that outputs three checks, never modifies anything:

  1. Sensitive file detection — lists private keys / tokens / credentials already tracked by Git. Warns only, gives human-review guidance, no destructive commands.
  2. Untracked file detection — lists files that are neither added nor ignored.
  3. Config check — whether core.autocrlf is sane and .gitignore exists.

Notes

  • Pure local Git, no remote; add one yourself when ready: git remote add origin <url>
  • Script is idempotent and safe to re-run; existing config is preserved.
  • If a .gitignore already exists, a diff is shown and you choose whether to overwrite.
  • Audit only warns on tracked sensitive files — you decide how to remove them.
  • When no Git identity is found in env vars or git config, the script falls back to interactive prompts (cannot run unattended without env vars).

Dependencies

  • git (required) — https://git-scm.com/downloads
  • bash 4.0+
  • coreutils (numfmt/stat/realpath) — preinstalled on most Unix-like systems; numfmt is optional (falls back to raw byte counts when absent).

Pure bash + git implementation, no Python or third-party packages required.

评论

加载中…