[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-gitea":3,"mdc--cghxbv-key":30,"related-repo-microsoft-gitea":1488,"related-org-microsoft-gitea":1495},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":19,"repoUrl":20,"updatedAt":21,"license":22,"forks":23,"topics":24,"repo":25,"sourceUrl":28,"mdContent":29},"gitea","manage ephemeral Gitea Docker environments","Use when managing ephemeral Gitea Docker environments, mirroring GitHub repos for isolated work, or promoting changes back to GitHub as PRs. Triggers on gitea, ephemeral git, isolated git environment, mirror repo, promote branch, disposable git server.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16],{"name":13,"slug":14,"type":15},"Git","git","tag",{"name":17,"slug":18,"type":15},"Docker","docker",1,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-gitea","2026-04-06T18:37:56.309463",null,2,[],{"repoUrl":20,"stars":19,"forks":23,"topics":26,"description":27},[],"Gitea bundle for the Amplifier project","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-gitea\u002Ftree\u002FHEAD\u002Fskills\u002Fgitea","---\nname: gitea\ndescription: Use when managing ephemeral Gitea Docker environments, mirroring GitHub repos for isolated work, or promoting changes back to GitHub as PRs. Triggers on gitea, ephemeral git, isolated git environment, mirror repo, promote branch, disposable git server.\nuser-invocable: true\n---\n\n# Gitea Ephemeral Environments\n\n`amplifier-gitea` is a CLI for on-demand, ephemeral Gitea Docker containers. All commands output JSON to stdout.\n\n## Prerequisites Check\n\nBefore any gitea operation, verify the environment:\n\n```bash\n# 1. Is the CLI installed?\nwhich amplifier-gitea\n\n# 2. Is Docker available and running?\nwhich docker && docker info > \u002Fdev\u002Fnull 2>&1 && echo \"Docker OK\" || echo \"Docker NOT running\"\n```\n\nIf `amplifier-gitea` is not found:\n```bash\nuv tool install git+https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-gitea@main\n```\n\nIf Docker is not running:\n- **Linux**: `sudo systemctl start docker`\n- **macOS**: `open -a Docker`\n- **WSL**: Start Docker Desktop on Windows, ensure WSL integration is enabled\n\n**If prerequisites are missing, report clearly and stop. Do not attempt workarounds.**\n\n## Documentation\n\nFor overview, quick start, installation, and workflow examples:\n\n```\nread_file(\"@gitea:README.md\")\n```\n\nFor complete CLI reference with all flags, output schemas, and Gitea API examples:\n\n```\nread_file(\"@gitea:docs\u002Fapi_reference.md\")\n```\n\nFor development setup, testing, and design decisions:\n\n```\nread_file(\"@gitea:docs\u002Fdevelopment.md\")\n```\n\n## Key Details\n\n### Admin Credentials\n\nEvery environment by default is created with a hardcoded admin account: `admin` \u002F `admin1234`. The Gitea web UI is accessible at `http:\u002F\u002Flocalhost:\u003Cport>` and the Swagger API docs at `http:\u002F\u002Flocalhost:\u003Cport>\u002Fswagger`.\n\n### Mirroring Performance\n\nBy default `mirror-from-github` copies only git content (full history + all branches) and skips metadata. This is fast -- typically a few seconds.\n\nIssues and PRs are the expensive part. Enabling `--include-issues --include-prs` can take several minutes depending on the repo size. Only opt in when you actually need it.\n\n### GitHub Token Resolution\n\nGitHub sync commands (`mirror-from-github`, `promote-to-github`) resolve tokens in this order:\n1. `--github-token` flag (explicit)\n2. `GH_TOKEN` environment variable\n3. `gh auth token` CLI command\n\nIf the user has `gh auth login` done, no extra token configuration is needed.\n\n## Deploying Local Changes Without Committing\n\nTo test a local repo's working tree (committed + staged + unstaged + untracked + deletions) through a Gitea mirror without committing or staging anything in the source repo, snapshot it into a throwaway clone and push from there. Use this when the mirror must reflect your exact local state but you must not mutate the source repo (no `git add`\u002F`commit`\u002F`stash` in it).\n\nFirst make sure the repo exists in Gitea (`mirror-from-github \u003Cid> --github-repo ...` or create an empty repo), then:\n\n```bash\nPORT=...   # from `amplifier-gitea status \u003Cid>`\nTOKEN=...  # from `amplifier-gitea token \u003Cid>`\nSNAP=\"$(mktemp -d)\u002F\u003Crepo-name>\"\ngit clone --local --no-hardlinks \"\u003Clocal-repo>\" \"$SNAP\"\n# overlay staged + unstaged + untracked (non-ignored) files from the working tree\n( cd \"\u003Clocal-repo>\" && git ls-files -z --cached --modified --others --exclude-standard ) \\\n  | rsync -a --files-from=- --from0 \"\u003Clocal-repo>\u002F\" \"$SNAP\u002F\"\n# mirror tracked-file deletions\n( cd \"\u003Clocal-repo>\" && git ls-files -z --deleted ) \\\n  | ( cd \"$SNAP\" && xargs -0 --no-run-if-empty rm -f )\n# single throwaway commit IN THE SNAPSHOT, then force-push to the mirror\ncd \"$SNAP\"\ngit -c user.email=snapshot@local -c user.name=\"Gitea Snapshot\" add -A\ngit -c user.email=snapshot@local -c user.name=\"Gitea Snapshot\" commit --allow-empty -m \"working-tree snapshot\"\ngit -c credential.helper= push --force \\\n  \"http:\u002F\u002Fadmin:$TOKEN@localhost:$PORT\u002Fadmin\u002F\u003Crepo-name>.git\" HEAD:refs\u002Fheads\u002Fmain\n```\n\nAll `git add`\u002F`commit` happens only in the temp snapshot, never in the source repo. If snapshotting fails, abort -- never fall back to operating on the source working tree.\n\n## Troubleshooting\n\n| Problem | Fix |\n|---------|-----|\n| `command not found: amplifier-gitea` | `uv tool install git+https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-gitea@main` |\n| `Cannot connect to the Docker daemon` | Start Docker: `sudo systemctl start docker` (Linux) or open Docker Desktop (macOS\u002FWindows) |\n| `port is already allocated` | Choose a different `--port` value, or `amplifier-gitea list` to find existing environments |\n| `mirror-from-github` fails on private repo | Pass `--github-token` or ensure `gh auth login` is done |\n| Token lost after `create` | Run `amplifier-gitea token \u003Cid>` to generate a new one |\n| `promote-to-github` 404 error | Verify `--github-repo` is in `owner\u002Frepo` format (not a full URL) |\n| `No GitHub token found` | Run `gh auth login`, or set `GH_TOKEN`, or pass `--github-token` |\n| `Branch already exists` on promote | The `--github-branch` already exists on the target repo. Use a different branch name. |\n",{"data":31,"body":33},{"name":4,"description":6,"user-invocable":32},true,{"type":34,"children":35},"root",[36,45,58,65,70,216,228,258,263,310,318,324,329,339,344,353,358,367,373,380,417,423,436,449,455,475,512,525,531,559,572,1197,1215,1221,1482],{"type":37,"tag":38,"props":39,"children":41},"element","h1",{"id":40},"gitea-ephemeral-environments",[42],{"type":43,"value":44},"text","Gitea Ephemeral Environments",{"type":37,"tag":46,"props":47,"children":48},"p",{},[49,56],{"type":37,"tag":50,"props":51,"children":53},"code",{"className":52},[],[54],{"type":43,"value":55},"amplifier-gitea",{"type":43,"value":57}," is a CLI for on-demand, ephemeral Gitea Docker containers. All commands output JSON to stdout.",{"type":37,"tag":59,"props":60,"children":62},"h2",{"id":61},"prerequisites-check",[63],{"type":43,"value":64},"Prerequisites Check",{"type":37,"tag":46,"props":66,"children":67},{},[68],{"type":43,"value":69},"Before any gitea operation, verify the environment:",{"type":37,"tag":71,"props":72,"children":77},"pre",{"className":73,"code":74,"language":75,"meta":76,"style":76},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# 1. Is the CLI installed?\nwhich amplifier-gitea\n\n# 2. Is Docker available and running?\nwhich docker && docker info > \u002Fdev\u002Fnull 2>&1 && echo \"Docker OK\" || echo \"Docker NOT running\"\n","bash","",[78],{"type":37,"tag":50,"props":79,"children":80},{"__ignoreMap":76},[81,92,107,116,125],{"type":37,"tag":82,"props":83,"children":85},"span",{"class":84,"line":19},"line",[86],{"type":37,"tag":82,"props":87,"children":89},{"style":88},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[90],{"type":43,"value":91},"# 1. Is the CLI installed?\n",{"type":37,"tag":82,"props":93,"children":94},{"class":84,"line":23},[95,101],{"type":37,"tag":82,"props":96,"children":98},{"style":97},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[99],{"type":43,"value":100},"which",{"type":37,"tag":82,"props":102,"children":104},{"style":103},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[105],{"type":43,"value":106}," amplifier-gitea\n",{"type":37,"tag":82,"props":108,"children":110},{"class":84,"line":109},3,[111],{"type":37,"tag":82,"props":112,"children":113},{"emptyLinePlaceholder":32},[114],{"type":43,"value":115},"\n",{"type":37,"tag":82,"props":117,"children":119},{"class":84,"line":118},4,[120],{"type":37,"tag":82,"props":121,"children":122},{"style":88},[123],{"type":43,"value":124},"# 2. Is Docker available and running?\n",{"type":37,"tag":82,"props":126,"children":128},{"class":84,"line":127},5,[129,133,138,144,149,154,159,164,169,173,178,183,188,193,198,202,206,211],{"type":37,"tag":82,"props":130,"children":131},{"style":97},[132],{"type":43,"value":100},{"type":37,"tag":82,"props":134,"children":135},{"style":103},[136],{"type":43,"value":137}," docker",{"type":37,"tag":82,"props":139,"children":141},{"style":140},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[142],{"type":43,"value":143}," &&",{"type":37,"tag":82,"props":145,"children":147},{"style":146},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[148],{"type":43,"value":137},{"type":37,"tag":82,"props":150,"children":151},{"style":103},[152],{"type":43,"value":153}," info",{"type":37,"tag":82,"props":155,"children":156},{"style":140},[157],{"type":43,"value":158}," >",{"type":37,"tag":82,"props":160,"children":161},{"style":103},[162],{"type":43,"value":163}," \u002Fdev\u002Fnull",{"type":37,"tag":82,"props":165,"children":166},{"style":140},[167],{"type":43,"value":168}," 2>&1",{"type":37,"tag":82,"props":170,"children":171},{"style":140},[172],{"type":43,"value":143},{"type":37,"tag":82,"props":174,"children":175},{"style":97},[176],{"type":43,"value":177}," echo",{"type":37,"tag":82,"props":179,"children":180},{"style":140},[181],{"type":43,"value":182}," \"",{"type":37,"tag":82,"props":184,"children":185},{"style":103},[186],{"type":43,"value":187},"Docker OK",{"type":37,"tag":82,"props":189,"children":190},{"style":140},[191],{"type":43,"value":192},"\"",{"type":37,"tag":82,"props":194,"children":195},{"style":140},[196],{"type":43,"value":197}," ||",{"type":37,"tag":82,"props":199,"children":200},{"style":97},[201],{"type":43,"value":177},{"type":37,"tag":82,"props":203,"children":204},{"style":140},[205],{"type":43,"value":182},{"type":37,"tag":82,"props":207,"children":208},{"style":103},[209],{"type":43,"value":210},"Docker NOT running",{"type":37,"tag":82,"props":212,"children":213},{"style":140},[214],{"type":43,"value":215},"\"\n",{"type":37,"tag":46,"props":217,"children":218},{},[219,221,226],{"type":43,"value":220},"If ",{"type":37,"tag":50,"props":222,"children":224},{"className":223},[],[225],{"type":43,"value":55},{"type":43,"value":227}," is not found:",{"type":37,"tag":71,"props":229,"children":231},{"className":73,"code":230,"language":75,"meta":76,"style":76},"uv tool install git+https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-gitea@main\n",[232],{"type":37,"tag":50,"props":233,"children":234},{"__ignoreMap":76},[235],{"type":37,"tag":82,"props":236,"children":237},{"class":84,"line":19},[238,243,248,253],{"type":37,"tag":82,"props":239,"children":240},{"style":146},[241],{"type":43,"value":242},"uv",{"type":37,"tag":82,"props":244,"children":245},{"style":103},[246],{"type":43,"value":247}," tool",{"type":37,"tag":82,"props":249,"children":250},{"style":103},[251],{"type":43,"value":252}," install",{"type":37,"tag":82,"props":254,"children":255},{"style":103},[256],{"type":43,"value":257}," git+https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-gitea@main\n",{"type":37,"tag":46,"props":259,"children":260},{},[261],{"type":43,"value":262},"If Docker is not running:",{"type":37,"tag":264,"props":265,"children":266},"ul",{},[267,285,300],{"type":37,"tag":268,"props":269,"children":270},"li",{},[271,277,279],{"type":37,"tag":272,"props":273,"children":274},"strong",{},[275],{"type":43,"value":276},"Linux",{"type":43,"value":278},": ",{"type":37,"tag":50,"props":280,"children":282},{"className":281},[],[283],{"type":43,"value":284},"sudo systemctl start docker",{"type":37,"tag":268,"props":286,"children":287},{},[288,293,294],{"type":37,"tag":272,"props":289,"children":290},{},[291],{"type":43,"value":292},"macOS",{"type":43,"value":278},{"type":37,"tag":50,"props":295,"children":297},{"className":296},[],[298],{"type":43,"value":299},"open -a Docker",{"type":37,"tag":268,"props":301,"children":302},{},[303,308],{"type":37,"tag":272,"props":304,"children":305},{},[306],{"type":43,"value":307},"WSL",{"type":43,"value":309},": Start Docker Desktop on Windows, ensure WSL integration is enabled",{"type":37,"tag":46,"props":311,"children":312},{},[313],{"type":37,"tag":272,"props":314,"children":315},{},[316],{"type":43,"value":317},"If prerequisites are missing, report clearly and stop. Do not attempt workarounds.",{"type":37,"tag":59,"props":319,"children":321},{"id":320},"documentation",[322],{"type":43,"value":323},"Documentation",{"type":37,"tag":46,"props":325,"children":326},{},[327],{"type":43,"value":328},"For overview, quick start, installation, and workflow examples:",{"type":37,"tag":71,"props":330,"children":334},{"className":331,"code":333,"language":43},[332],"language-text","read_file(\"@gitea:README.md\")\n",[335],{"type":37,"tag":50,"props":336,"children":337},{"__ignoreMap":76},[338],{"type":43,"value":333},{"type":37,"tag":46,"props":340,"children":341},{},[342],{"type":43,"value":343},"For complete CLI reference with all flags, output schemas, and Gitea API examples:",{"type":37,"tag":71,"props":345,"children":348},{"className":346,"code":347,"language":43},[332],"read_file(\"@gitea:docs\u002Fapi_reference.md\")\n",[349],{"type":37,"tag":50,"props":350,"children":351},{"__ignoreMap":76},[352],{"type":43,"value":347},{"type":37,"tag":46,"props":354,"children":355},{},[356],{"type":43,"value":357},"For development setup, testing, and design decisions:",{"type":37,"tag":71,"props":359,"children":362},{"className":360,"code":361,"language":43},[332],"read_file(\"@gitea:docs\u002Fdevelopment.md\")\n",[363],{"type":37,"tag":50,"props":364,"children":365},{"__ignoreMap":76},[366],{"type":43,"value":361},{"type":37,"tag":59,"props":368,"children":370},{"id":369},"key-details",[371],{"type":43,"value":372},"Key Details",{"type":37,"tag":374,"props":375,"children":377},"h3",{"id":376},"admin-credentials",[378],{"type":43,"value":379},"Admin Credentials",{"type":37,"tag":46,"props":381,"children":382},{},[383,385,391,393,399,401,407,409,415],{"type":43,"value":384},"Every environment by default is created with a hardcoded admin account: ",{"type":37,"tag":50,"props":386,"children":388},{"className":387},[],[389],{"type":43,"value":390},"admin",{"type":43,"value":392}," \u002F ",{"type":37,"tag":50,"props":394,"children":396},{"className":395},[],[397],{"type":43,"value":398},"admin1234",{"type":43,"value":400},". The Gitea web UI is accessible at ",{"type":37,"tag":50,"props":402,"children":404},{"className":403},[],[405],{"type":43,"value":406},"http:\u002F\u002Flocalhost:\u003Cport>",{"type":43,"value":408}," and the Swagger API docs at ",{"type":37,"tag":50,"props":410,"children":412},{"className":411},[],[413],{"type":43,"value":414},"http:\u002F\u002Flocalhost:\u003Cport>\u002Fswagger",{"type":43,"value":416},".",{"type":37,"tag":374,"props":418,"children":420},{"id":419},"mirroring-performance",[421],{"type":43,"value":422},"Mirroring Performance",{"type":37,"tag":46,"props":424,"children":425},{},[426,428,434],{"type":43,"value":427},"By default ",{"type":37,"tag":50,"props":429,"children":431},{"className":430},[],[432],{"type":43,"value":433},"mirror-from-github",{"type":43,"value":435}," copies only git content (full history + all branches) and skips metadata. This is fast -- typically a few seconds.",{"type":37,"tag":46,"props":437,"children":438},{},[439,441,447],{"type":43,"value":440},"Issues and PRs are the expensive part. Enabling ",{"type":37,"tag":50,"props":442,"children":444},{"className":443},[],[445],{"type":43,"value":446},"--include-issues --include-prs",{"type":43,"value":448}," can take several minutes depending on the repo size. Only opt in when you actually need it.",{"type":37,"tag":374,"props":450,"children":452},{"id":451},"github-token-resolution",[453],{"type":43,"value":454},"GitHub Token Resolution",{"type":37,"tag":46,"props":456,"children":457},{},[458,460,465,467,473],{"type":43,"value":459},"GitHub sync commands (",{"type":37,"tag":50,"props":461,"children":463},{"className":462},[],[464],{"type":43,"value":433},{"type":43,"value":466},", ",{"type":37,"tag":50,"props":468,"children":470},{"className":469},[],[471],{"type":43,"value":472},"promote-to-github",{"type":43,"value":474},") resolve tokens in this order:",{"type":37,"tag":476,"props":477,"children":478},"ol",{},[479,490,501],{"type":37,"tag":268,"props":480,"children":481},{},[482,488],{"type":37,"tag":50,"props":483,"children":485},{"className":484},[],[486],{"type":43,"value":487},"--github-token",{"type":43,"value":489}," flag (explicit)",{"type":37,"tag":268,"props":491,"children":492},{},[493,499],{"type":37,"tag":50,"props":494,"children":496},{"className":495},[],[497],{"type":43,"value":498},"GH_TOKEN",{"type":43,"value":500}," environment variable",{"type":37,"tag":268,"props":502,"children":503},{},[504,510],{"type":37,"tag":50,"props":505,"children":507},{"className":506},[],[508],{"type":43,"value":509},"gh auth token",{"type":43,"value":511}," CLI command",{"type":37,"tag":46,"props":513,"children":514},{},[515,517,523],{"type":43,"value":516},"If the user has ",{"type":37,"tag":50,"props":518,"children":520},{"className":519},[],[521],{"type":43,"value":522},"gh auth login",{"type":43,"value":524}," done, no extra token configuration is needed.",{"type":37,"tag":59,"props":526,"children":528},{"id":527},"deploying-local-changes-without-committing",[529],{"type":43,"value":530},"Deploying Local Changes Without Committing",{"type":37,"tag":46,"props":532,"children":533},{},[534,536,542,544,550,551,557],{"type":43,"value":535},"To test a local repo's working tree (committed + staged + unstaged + untracked + deletions) through a Gitea mirror without committing or staging anything in the source repo, snapshot it into a throwaway clone and push from there. Use this when the mirror must reflect your exact local state but you must not mutate the source repo (no ",{"type":37,"tag":50,"props":537,"children":539},{"className":538},[],[540],{"type":43,"value":541},"git add",{"type":43,"value":543},"\u002F",{"type":37,"tag":50,"props":545,"children":547},{"className":546},[],[548],{"type":43,"value":549},"commit",{"type":43,"value":543},{"type":37,"tag":50,"props":552,"children":554},{"className":553},[],[555],{"type":43,"value":556},"stash",{"type":43,"value":558}," in it).",{"type":37,"tag":46,"props":560,"children":561},{},[562,564,570],{"type":43,"value":563},"First make sure the repo exists in Gitea (",{"type":37,"tag":50,"props":565,"children":567},{"className":566},[],[568],{"type":43,"value":569},"mirror-from-github \u003Cid> --github-repo ...",{"type":43,"value":571}," or create an empty repo), then:",{"type":37,"tag":71,"props":573,"children":575},{"className":73,"code":574,"language":75,"meta":76,"style":76},"PORT=...   # from `amplifier-gitea status \u003Cid>`\nTOKEN=...  # from `amplifier-gitea token \u003Cid>`\nSNAP=\"$(mktemp -d)\u002F\u003Crepo-name>\"\ngit clone --local --no-hardlinks \"\u003Clocal-repo>\" \"$SNAP\"\n# overlay staged + unstaged + untracked (non-ignored) files from the working tree\n( cd \"\u003Clocal-repo>\" && git ls-files -z --cached --modified --others --exclude-standard ) \\\n  | rsync -a --files-from=- --from0 \"\u003Clocal-repo>\u002F\" \"$SNAP\u002F\"\n# mirror tracked-file deletions\n( cd \"\u003Clocal-repo>\" && git ls-files -z --deleted ) \\\n  | ( cd \"$SNAP\" && xargs -0 --no-run-if-empty rm -f )\n# single throwaway commit IN THE SNAPSHOT, then force-push to the mirror\ncd \"$SNAP\"\ngit -c user.email=snapshot@local -c user.name=\"Gitea Snapshot\" add -A\ngit -c user.email=snapshot@local -c user.name=\"Gitea Snapshot\" commit --allow-empty -m \"working-tree snapshot\"\ngit -c credential.helper= push --force \\\n  \"http:\u002F\u002Fadmin:$TOKEN@localhost:$PORT\u002Fadmin\u002F\u003Crepo-name>.git\" HEAD:refs\u002Fheads\u002Fmain\n",[576],{"type":37,"tag":50,"props":577,"children":578},{"__ignoreMap":76},[579,603,624,665,713,721,796,854,863,916,979,988,1009,1059,1123,1154],{"type":37,"tag":82,"props":580,"children":581},{"class":84,"line":19},[582,588,593,598],{"type":37,"tag":82,"props":583,"children":585},{"style":584},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[586],{"type":43,"value":587},"PORT",{"type":37,"tag":82,"props":589,"children":590},{"style":140},[591],{"type":43,"value":592},"=",{"type":37,"tag":82,"props":594,"children":595},{"style":103},[596],{"type":43,"value":597},"...",{"type":37,"tag":82,"props":599,"children":600},{"style":88},[601],{"type":43,"value":602},"   # from `amplifier-gitea status \u003Cid>`\n",{"type":37,"tag":82,"props":604,"children":605},{"class":84,"line":23},[606,611,615,619],{"type":37,"tag":82,"props":607,"children":608},{"style":584},[609],{"type":43,"value":610},"TOKEN",{"type":37,"tag":82,"props":612,"children":613},{"style":140},[614],{"type":43,"value":592},{"type":37,"tag":82,"props":616,"children":617},{"style":103},[618],{"type":43,"value":597},{"type":37,"tag":82,"props":620,"children":621},{"style":88},[622],{"type":43,"value":623},"  # from `amplifier-gitea token \u003Cid>`\n",{"type":37,"tag":82,"props":625,"children":626},{"class":84,"line":109},[627,632,636,641,646,651,656,661],{"type":37,"tag":82,"props":628,"children":629},{"style":584},[630],{"type":43,"value":631},"SNAP",{"type":37,"tag":82,"props":633,"children":634},{"style":140},[635],{"type":43,"value":592},{"type":37,"tag":82,"props":637,"children":638},{"style":140},[639],{"type":43,"value":640},"\"$(",{"type":37,"tag":82,"props":642,"children":643},{"style":146},[644],{"type":43,"value":645},"mktemp",{"type":37,"tag":82,"props":647,"children":648},{"style":103},[649],{"type":43,"value":650}," -d",{"type":37,"tag":82,"props":652,"children":653},{"style":140},[654],{"type":43,"value":655},")",{"type":37,"tag":82,"props":657,"children":658},{"style":103},[659],{"type":43,"value":660},"\u002F\u003Crepo-name>",{"type":37,"tag":82,"props":662,"children":663},{"style":140},[664],{"type":43,"value":215},{"type":37,"tag":82,"props":666,"children":667},{"class":84,"line":118},[668,672,677,682,687,691,696,700,704,709],{"type":37,"tag":82,"props":669,"children":670},{"style":146},[671],{"type":43,"value":14},{"type":37,"tag":82,"props":673,"children":674},{"style":103},[675],{"type":43,"value":676}," clone",{"type":37,"tag":82,"props":678,"children":679},{"style":103},[680],{"type":43,"value":681}," --local",{"type":37,"tag":82,"props":683,"children":684},{"style":103},[685],{"type":43,"value":686}," --no-hardlinks",{"type":37,"tag":82,"props":688,"children":689},{"style":140},[690],{"type":43,"value":182},{"type":37,"tag":82,"props":692,"children":693},{"style":103},[694],{"type":43,"value":695},"\u003Clocal-repo>",{"type":37,"tag":82,"props":697,"children":698},{"style":140},[699],{"type":43,"value":192},{"type":37,"tag":82,"props":701,"children":702},{"style":140},[703],{"type":43,"value":182},{"type":37,"tag":82,"props":705,"children":706},{"style":584},[707],{"type":43,"value":708},"$SNAP",{"type":37,"tag":82,"props":710,"children":711},{"style":140},[712],{"type":43,"value":215},{"type":37,"tag":82,"props":714,"children":715},{"class":84,"line":127},[716],{"type":37,"tag":82,"props":717,"children":718},{"style":88},[719],{"type":43,"value":720},"# overlay staged + unstaged + untracked (non-ignored) files from the working tree\n",{"type":37,"tag":82,"props":722,"children":724},{"class":84,"line":723},6,[725,730,735,739,743,747,751,756,761,766,771,776,781,786,791],{"type":37,"tag":82,"props":726,"children":727},{"style":140},[728],{"type":43,"value":729},"(",{"type":37,"tag":82,"props":731,"children":732},{"style":97},[733],{"type":43,"value":734}," cd",{"type":37,"tag":82,"props":736,"children":737},{"style":140},[738],{"type":43,"value":182},{"type":37,"tag":82,"props":740,"children":741},{"style":103},[742],{"type":43,"value":695},{"type":37,"tag":82,"props":744,"children":745},{"style":140},[746],{"type":43,"value":192},{"type":37,"tag":82,"props":748,"children":749},{"style":140},[750],{"type":43,"value":143},{"type":37,"tag":82,"props":752,"children":753},{"style":146},[754],{"type":43,"value":755}," git",{"type":37,"tag":82,"props":757,"children":758},{"style":103},[759],{"type":43,"value":760}," ls-files",{"type":37,"tag":82,"props":762,"children":763},{"style":103},[764],{"type":43,"value":765}," -z",{"type":37,"tag":82,"props":767,"children":768},{"style":103},[769],{"type":43,"value":770}," --cached",{"type":37,"tag":82,"props":772,"children":773},{"style":103},[774],{"type":43,"value":775}," --modified",{"type":37,"tag":82,"props":777,"children":778},{"style":103},[779],{"type":43,"value":780}," --others",{"type":37,"tag":82,"props":782,"children":783},{"style":103},[784],{"type":43,"value":785}," --exclude-standard",{"type":37,"tag":82,"props":787,"children":788},{"style":140},[789],{"type":43,"value":790}," )",{"type":37,"tag":82,"props":792,"children":793},{"style":584},[794],{"type":43,"value":795}," \\\n",{"type":37,"tag":82,"props":797,"children":799},{"class":84,"line":798},7,[800,805,810,815,820,825,829,834,838,842,846,850],{"type":37,"tag":82,"props":801,"children":802},{"style":140},[803],{"type":43,"value":804},"  |",{"type":37,"tag":82,"props":806,"children":807},{"style":146},[808],{"type":43,"value":809}," rsync",{"type":37,"tag":82,"props":811,"children":812},{"style":103},[813],{"type":43,"value":814}," -a",{"type":37,"tag":82,"props":816,"children":817},{"style":103},[818],{"type":43,"value":819}," --files-from=-",{"type":37,"tag":82,"props":821,"children":822},{"style":103},[823],{"type":43,"value":824}," --from0",{"type":37,"tag":82,"props":826,"children":827},{"style":140},[828],{"type":43,"value":182},{"type":37,"tag":82,"props":830,"children":831},{"style":103},[832],{"type":43,"value":833},"\u003Clocal-repo>\u002F",{"type":37,"tag":82,"props":835,"children":836},{"style":140},[837],{"type":43,"value":192},{"type":37,"tag":82,"props":839,"children":840},{"style":140},[841],{"type":43,"value":182},{"type":37,"tag":82,"props":843,"children":844},{"style":584},[845],{"type":43,"value":708},{"type":37,"tag":82,"props":847,"children":848},{"style":103},[849],{"type":43,"value":543},{"type":37,"tag":82,"props":851,"children":852},{"style":140},[853],{"type":43,"value":215},{"type":37,"tag":82,"props":855,"children":857},{"class":84,"line":856},8,[858],{"type":37,"tag":82,"props":859,"children":860},{"style":88},[861],{"type":43,"value":862},"# mirror tracked-file deletions\n",{"type":37,"tag":82,"props":864,"children":866},{"class":84,"line":865},9,[867,871,875,879,883,887,891,895,899,903,908,912],{"type":37,"tag":82,"props":868,"children":869},{"style":140},[870],{"type":43,"value":729},{"type":37,"tag":82,"props":872,"children":873},{"style":97},[874],{"type":43,"value":734},{"type":37,"tag":82,"props":876,"children":877},{"style":140},[878],{"type":43,"value":182},{"type":37,"tag":82,"props":880,"children":881},{"style":103},[882],{"type":43,"value":695},{"type":37,"tag":82,"props":884,"children":885},{"style":140},[886],{"type":43,"value":192},{"type":37,"tag":82,"props":888,"children":889},{"style":140},[890],{"type":43,"value":143},{"type":37,"tag":82,"props":892,"children":893},{"style":146},[894],{"type":43,"value":755},{"type":37,"tag":82,"props":896,"children":897},{"style":103},[898],{"type":43,"value":760},{"type":37,"tag":82,"props":900,"children":901},{"style":103},[902],{"type":43,"value":765},{"type":37,"tag":82,"props":904,"children":905},{"style":103},[906],{"type":43,"value":907}," --deleted",{"type":37,"tag":82,"props":909,"children":910},{"style":140},[911],{"type":43,"value":790},{"type":37,"tag":82,"props":913,"children":914},{"style":584},[915],{"type":43,"value":795},{"type":37,"tag":82,"props":917,"children":919},{"class":84,"line":918},10,[920,924,929,933,937,941,945,949,954,959,964,969,974],{"type":37,"tag":82,"props":921,"children":922},{"style":140},[923],{"type":43,"value":804},{"type":37,"tag":82,"props":925,"children":926},{"style":140},[927],{"type":43,"value":928}," (",{"type":37,"tag":82,"props":930,"children":931},{"style":97},[932],{"type":43,"value":734},{"type":37,"tag":82,"props":934,"children":935},{"style":140},[936],{"type":43,"value":182},{"type":37,"tag":82,"props":938,"children":939},{"style":584},[940],{"type":43,"value":708},{"type":37,"tag":82,"props":942,"children":943},{"style":140},[944],{"type":43,"value":192},{"type":37,"tag":82,"props":946,"children":947},{"style":140},[948],{"type":43,"value":143},{"type":37,"tag":82,"props":950,"children":951},{"style":146},[952],{"type":43,"value":953}," xargs",{"type":37,"tag":82,"props":955,"children":956},{"style":103},[957],{"type":43,"value":958}," -0",{"type":37,"tag":82,"props":960,"children":961},{"style":103},[962],{"type":43,"value":963}," --no-run-if-empty",{"type":37,"tag":82,"props":965,"children":966},{"style":103},[967],{"type":43,"value":968}," rm",{"type":37,"tag":82,"props":970,"children":971},{"style":103},[972],{"type":43,"value":973}," -f",{"type":37,"tag":82,"props":975,"children":976},{"style":140},[977],{"type":43,"value":978}," )\n",{"type":37,"tag":82,"props":980,"children":982},{"class":84,"line":981},11,[983],{"type":37,"tag":82,"props":984,"children":985},{"style":88},[986],{"type":43,"value":987},"# single throwaway commit IN THE SNAPSHOT, then force-push to the mirror\n",{"type":37,"tag":82,"props":989,"children":991},{"class":84,"line":990},12,[992,997,1001,1005],{"type":37,"tag":82,"props":993,"children":994},{"style":97},[995],{"type":43,"value":996},"cd",{"type":37,"tag":82,"props":998,"children":999},{"style":140},[1000],{"type":43,"value":182},{"type":37,"tag":82,"props":1002,"children":1003},{"style":584},[1004],{"type":43,"value":708},{"type":37,"tag":82,"props":1006,"children":1007},{"style":140},[1008],{"type":43,"value":215},{"type":37,"tag":82,"props":1010,"children":1012},{"class":84,"line":1011},13,[1013,1017,1022,1027,1031,1036,1040,1045,1049,1054],{"type":37,"tag":82,"props":1014,"children":1015},{"style":146},[1016],{"type":43,"value":14},{"type":37,"tag":82,"props":1018,"children":1019},{"style":103},[1020],{"type":43,"value":1021}," -c",{"type":37,"tag":82,"props":1023,"children":1024},{"style":103},[1025],{"type":43,"value":1026}," user.email=snapshot@local",{"type":37,"tag":82,"props":1028,"children":1029},{"style":103},[1030],{"type":43,"value":1021},{"type":37,"tag":82,"props":1032,"children":1033},{"style":103},[1034],{"type":43,"value":1035}," user.name=",{"type":37,"tag":82,"props":1037,"children":1038},{"style":140},[1039],{"type":43,"value":192},{"type":37,"tag":82,"props":1041,"children":1042},{"style":103},[1043],{"type":43,"value":1044},"Gitea Snapshot",{"type":37,"tag":82,"props":1046,"children":1047},{"style":140},[1048],{"type":43,"value":192},{"type":37,"tag":82,"props":1050,"children":1051},{"style":103},[1052],{"type":43,"value":1053}," add",{"type":37,"tag":82,"props":1055,"children":1056},{"style":103},[1057],{"type":43,"value":1058}," -A\n",{"type":37,"tag":82,"props":1060,"children":1062},{"class":84,"line":1061},14,[1063,1067,1071,1075,1079,1083,1087,1091,1095,1100,1105,1110,1114,1119],{"type":37,"tag":82,"props":1064,"children":1065},{"style":146},[1066],{"type":43,"value":14},{"type":37,"tag":82,"props":1068,"children":1069},{"style":103},[1070],{"type":43,"value":1021},{"type":37,"tag":82,"props":1072,"children":1073},{"style":103},[1074],{"type":43,"value":1026},{"type":37,"tag":82,"props":1076,"children":1077},{"style":103},[1078],{"type":43,"value":1021},{"type":37,"tag":82,"props":1080,"children":1081},{"style":103},[1082],{"type":43,"value":1035},{"type":37,"tag":82,"props":1084,"children":1085},{"style":140},[1086],{"type":43,"value":192},{"type":37,"tag":82,"props":1088,"children":1089},{"style":103},[1090],{"type":43,"value":1044},{"type":37,"tag":82,"props":1092,"children":1093},{"style":140},[1094],{"type":43,"value":192},{"type":37,"tag":82,"props":1096,"children":1097},{"style":103},[1098],{"type":43,"value":1099}," commit",{"type":37,"tag":82,"props":1101,"children":1102},{"style":103},[1103],{"type":43,"value":1104}," --allow-empty",{"type":37,"tag":82,"props":1106,"children":1107},{"style":103},[1108],{"type":43,"value":1109}," -m",{"type":37,"tag":82,"props":1111,"children":1112},{"style":140},[1113],{"type":43,"value":182},{"type":37,"tag":82,"props":1115,"children":1116},{"style":103},[1117],{"type":43,"value":1118},"working-tree snapshot",{"type":37,"tag":82,"props":1120,"children":1121},{"style":140},[1122],{"type":43,"value":215},{"type":37,"tag":82,"props":1124,"children":1126},{"class":84,"line":1125},15,[1127,1131,1135,1140,1145,1150],{"type":37,"tag":82,"props":1128,"children":1129},{"style":146},[1130],{"type":43,"value":14},{"type":37,"tag":82,"props":1132,"children":1133},{"style":103},[1134],{"type":43,"value":1021},{"type":37,"tag":82,"props":1136,"children":1137},{"style":103},[1138],{"type":43,"value":1139}," credential.helper=",{"type":37,"tag":82,"props":1141,"children":1142},{"style":103},[1143],{"type":43,"value":1144}," push",{"type":37,"tag":82,"props":1146,"children":1147},{"style":103},[1148],{"type":43,"value":1149}," --force",{"type":37,"tag":82,"props":1151,"children":1152},{"style":584},[1153],{"type":43,"value":795},{"type":37,"tag":82,"props":1155,"children":1157},{"class":84,"line":1156},16,[1158,1163,1168,1173,1178,1183,1188,1192],{"type":37,"tag":82,"props":1159,"children":1160},{"style":140},[1161],{"type":43,"value":1162},"  \"",{"type":37,"tag":82,"props":1164,"children":1165},{"style":103},[1166],{"type":43,"value":1167},"http:\u002F\u002Fadmin:",{"type":37,"tag":82,"props":1169,"children":1170},{"style":584},[1171],{"type":43,"value":1172},"$TOKEN",{"type":37,"tag":82,"props":1174,"children":1175},{"style":103},[1176],{"type":43,"value":1177},"@localhost:",{"type":37,"tag":82,"props":1179,"children":1180},{"style":584},[1181],{"type":43,"value":1182},"$PORT",{"type":37,"tag":82,"props":1184,"children":1185},{"style":103},[1186],{"type":43,"value":1187},"\u002Fadmin\u002F\u003Crepo-name>.git",{"type":37,"tag":82,"props":1189,"children":1190},{"style":140},[1191],{"type":43,"value":192},{"type":37,"tag":82,"props":1193,"children":1194},{"style":103},[1195],{"type":43,"value":1196}," HEAD:refs\u002Fheads\u002Fmain\n",{"type":37,"tag":46,"props":1198,"children":1199},{},[1200,1202,1207,1208,1213],{"type":43,"value":1201},"All ",{"type":37,"tag":50,"props":1203,"children":1205},{"className":1204},[],[1206],{"type":43,"value":541},{"type":43,"value":543},{"type":37,"tag":50,"props":1209,"children":1211},{"className":1210},[],[1212],{"type":43,"value":549},{"type":43,"value":1214}," happens only in the temp snapshot, never in the source repo. If snapshotting fails, abort -- never fall back to operating on the source working tree.",{"type":37,"tag":59,"props":1216,"children":1218},{"id":1217},"troubleshooting",[1219],{"type":43,"value":1220},"Troubleshooting",{"type":37,"tag":1222,"props":1223,"children":1224},"table",{},[1225,1244],{"type":37,"tag":1226,"props":1227,"children":1228},"thead",{},[1229],{"type":37,"tag":1230,"props":1231,"children":1232},"tr",{},[1233,1239],{"type":37,"tag":1234,"props":1235,"children":1236},"th",{},[1237],{"type":43,"value":1238},"Problem",{"type":37,"tag":1234,"props":1240,"children":1241},{},[1242],{"type":43,"value":1243},"Fix",{"type":37,"tag":1245,"props":1246,"children":1247},"tbody",{},[1248,1270,1294,1327,1359,1386,1420,1455],{"type":37,"tag":1230,"props":1249,"children":1250},{},[1251,1261],{"type":37,"tag":1252,"props":1253,"children":1254},"td",{},[1255],{"type":37,"tag":50,"props":1256,"children":1258},{"className":1257},[],[1259],{"type":43,"value":1260},"command not found: amplifier-gitea",{"type":37,"tag":1252,"props":1262,"children":1263},{},[1264],{"type":37,"tag":50,"props":1265,"children":1267},{"className":1266},[],[1268],{"type":43,"value":1269},"uv tool install git+https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-gitea@main",{"type":37,"tag":1230,"props":1271,"children":1272},{},[1273,1282],{"type":37,"tag":1252,"props":1274,"children":1275},{},[1276],{"type":37,"tag":50,"props":1277,"children":1279},{"className":1278},[],[1280],{"type":43,"value":1281},"Cannot connect to the Docker daemon",{"type":37,"tag":1252,"props":1283,"children":1284},{},[1285,1287,1292],{"type":43,"value":1286},"Start Docker: ",{"type":37,"tag":50,"props":1288,"children":1290},{"className":1289},[],[1291],{"type":43,"value":284},{"type":43,"value":1293}," (Linux) or open Docker Desktop (macOS\u002FWindows)",{"type":37,"tag":1230,"props":1295,"children":1296},{},[1297,1306],{"type":37,"tag":1252,"props":1298,"children":1299},{},[1300],{"type":37,"tag":50,"props":1301,"children":1303},{"className":1302},[],[1304],{"type":43,"value":1305},"port is already allocated",{"type":37,"tag":1252,"props":1307,"children":1308},{},[1309,1311,1317,1319,1325],{"type":43,"value":1310},"Choose a different ",{"type":37,"tag":50,"props":1312,"children":1314},{"className":1313},[],[1315],{"type":43,"value":1316},"--port",{"type":43,"value":1318}," value, or ",{"type":37,"tag":50,"props":1320,"children":1322},{"className":1321},[],[1323],{"type":43,"value":1324},"amplifier-gitea list",{"type":43,"value":1326}," to find existing environments",{"type":37,"tag":1230,"props":1328,"children":1329},{},[1330,1340],{"type":37,"tag":1252,"props":1331,"children":1332},{},[1333,1338],{"type":37,"tag":50,"props":1334,"children":1336},{"className":1335},[],[1337],{"type":43,"value":433},{"type":43,"value":1339}," fails on private repo",{"type":37,"tag":1252,"props":1341,"children":1342},{},[1343,1345,1350,1352,1357],{"type":43,"value":1344},"Pass ",{"type":37,"tag":50,"props":1346,"children":1348},{"className":1347},[],[1349],{"type":43,"value":487},{"type":43,"value":1351}," or ensure ",{"type":37,"tag":50,"props":1353,"children":1355},{"className":1354},[],[1356],{"type":43,"value":522},{"type":43,"value":1358}," is done",{"type":37,"tag":1230,"props":1360,"children":1361},{},[1362,1373],{"type":37,"tag":1252,"props":1363,"children":1364},{},[1365,1367],{"type":43,"value":1366},"Token lost after ",{"type":37,"tag":50,"props":1368,"children":1370},{"className":1369},[],[1371],{"type":43,"value":1372},"create",{"type":37,"tag":1252,"props":1374,"children":1375},{},[1376,1378,1384],{"type":43,"value":1377},"Run ",{"type":37,"tag":50,"props":1379,"children":1381},{"className":1380},[],[1382],{"type":43,"value":1383},"amplifier-gitea token \u003Cid>",{"type":43,"value":1385}," to generate a new one",{"type":37,"tag":1230,"props":1387,"children":1388},{},[1389,1399],{"type":37,"tag":1252,"props":1390,"children":1391},{},[1392,1397],{"type":37,"tag":50,"props":1393,"children":1395},{"className":1394},[],[1396],{"type":43,"value":472},{"type":43,"value":1398}," 404 error",{"type":37,"tag":1252,"props":1400,"children":1401},{},[1402,1404,1410,1412,1418],{"type":43,"value":1403},"Verify ",{"type":37,"tag":50,"props":1405,"children":1407},{"className":1406},[],[1408],{"type":43,"value":1409},"--github-repo",{"type":43,"value":1411}," is in ",{"type":37,"tag":50,"props":1413,"children":1415},{"className":1414},[],[1416],{"type":43,"value":1417},"owner\u002Frepo",{"type":43,"value":1419}," format (not a full URL)",{"type":37,"tag":1230,"props":1421,"children":1422},{},[1423,1432],{"type":37,"tag":1252,"props":1424,"children":1425},{},[1426],{"type":37,"tag":50,"props":1427,"children":1429},{"className":1428},[],[1430],{"type":43,"value":1431},"No GitHub token found",{"type":37,"tag":1252,"props":1433,"children":1434},{},[1435,1436,1441,1443,1448,1450],{"type":43,"value":1377},{"type":37,"tag":50,"props":1437,"children":1439},{"className":1438},[],[1440],{"type":43,"value":522},{"type":43,"value":1442},", or set ",{"type":37,"tag":50,"props":1444,"children":1446},{"className":1445},[],[1447],{"type":43,"value":498},{"type":43,"value":1449},", or pass ",{"type":37,"tag":50,"props":1451,"children":1453},{"className":1452},[],[1454],{"type":43,"value":487},{"type":37,"tag":1230,"props":1456,"children":1457},{},[1458,1469],{"type":37,"tag":1252,"props":1459,"children":1460},{},[1461,1467],{"type":37,"tag":50,"props":1462,"children":1464},{"className":1463},[],[1465],{"type":43,"value":1466},"Branch already exists",{"type":43,"value":1468}," on promote",{"type":37,"tag":1252,"props":1470,"children":1471},{},[1472,1474,1480],{"type":43,"value":1473},"The ",{"type":37,"tag":50,"props":1475,"children":1477},{"className":1476},[],[1478],{"type":43,"value":1479},"--github-branch",{"type":43,"value":1481}," already exists on the target repo. Use a different branch name.",{"type":37,"tag":1483,"props":1484,"children":1485},"style",{},[1486],{"type":43,"value":1487},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1489,"total":19},[1490],{"slug":4,"name":4,"fn":5,"description":6,"org":1491,"tags":1492,"stars":19,"repoUrl":20,"updatedAt":21},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1493,1494],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"items":1496,"total":1691},[1497,1519,1540,1561,1576,1593,1604,1617,1632,1647,1666,1679],{"slug":1498,"name":1498,"fn":1499,"description":1500,"org":1501,"tags":1502,"stars":1516,"repoUrl":1517,"updatedAt":1518},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1503,1506,1509,1510,1513],{"name":1504,"slug":1505,"type":15},"Engineering","engineering",{"name":1507,"slug":1508,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":1511,"slug":1512,"type":15},"Project Management","project-management",{"name":1514,"slug":1515,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":1520,"name":1520,"fn":1521,"description":1522,"org":1523,"tags":1524,"stars":1537,"repoUrl":1538,"updatedAt":1539},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1525,1528,1531,1534],{"name":1526,"slug":1527,"type":15},".NET","net",{"name":1529,"slug":1530,"type":15},"Agents","agents",{"name":1532,"slug":1533,"type":15},"Azure","azure",{"name":1535,"slug":1536,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":1541,"name":1541,"fn":1542,"description":1543,"org":1544,"tags":1545,"stars":1537,"repoUrl":1538,"updatedAt":1560},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1546,1549,1550,1553,1556,1557],{"name":1547,"slug":1548,"type":15},"Analytics","analytics",{"name":1532,"slug":1533,"type":15},{"name":1551,"slug":1552,"type":15},"Data Analysis","data-analysis",{"name":1554,"slug":1555,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":1558,"slug":1559,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":1562,"name":1562,"fn":1563,"description":1564,"org":1565,"tags":1566,"stars":1537,"repoUrl":1538,"updatedAt":1575},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1567,1570,1571,1572],{"name":1568,"slug":1569,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1532,"slug":1533,"type":15},{"name":1554,"slug":1555,"type":15},{"name":1573,"slug":1574,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":1577,"name":1577,"fn":1578,"description":1579,"org":1580,"tags":1581,"stars":1537,"repoUrl":1538,"updatedAt":1592},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1582,1583,1586,1587,1588,1591],{"name":1532,"slug":1533,"type":15},{"name":1584,"slug":1585,"type":15},"Compliance","compliance",{"name":1535,"slug":1536,"type":15},{"name":9,"slug":8,"type":15},{"name":1589,"slug":1590,"type":15},"Python","python",{"name":1573,"slug":1574,"type":15},"2026-07-18T05:14:23.017504",{"slug":1594,"name":1594,"fn":1595,"description":1596,"org":1597,"tags":1598,"stars":1537,"repoUrl":1538,"updatedAt":1603},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1599,1600,1601,1602],{"name":1547,"slug":1548,"type":15},{"name":1532,"slug":1533,"type":15},{"name":1535,"slug":1536,"type":15},{"name":1589,"slug":1590,"type":15},"2026-07-31T05:54:29.068751",{"slug":1605,"name":1605,"fn":1606,"description":1607,"org":1608,"tags":1609,"stars":1537,"repoUrl":1538,"updatedAt":1616},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1610,1613,1614,1615],{"name":1611,"slug":1612,"type":15},"API Development","api-development",{"name":1532,"slug":1533,"type":15},{"name":9,"slug":8,"type":15},{"name":1589,"slug":1590,"type":15},"2026-07-18T05:14:16.988376",{"slug":1618,"name":1618,"fn":1619,"description":1620,"org":1621,"tags":1622,"stars":1537,"repoUrl":1538,"updatedAt":1631},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1623,1624,1627,1630],{"name":1532,"slug":1533,"type":15},{"name":1625,"slug":1626,"type":15},"Computer Vision","computer-vision",{"name":1628,"slug":1629,"type":15},"Images","images",{"name":1589,"slug":1590,"type":15},"2026-07-18T05:14:18.007737",{"slug":1633,"name":1633,"fn":1634,"description":1635,"org":1636,"tags":1637,"stars":1537,"repoUrl":1538,"updatedAt":1646},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1638,1639,1642,1645],{"name":1532,"slug":1533,"type":15},{"name":1640,"slug":1641,"type":15},"Configuration","configuration",{"name":1643,"slug":1644,"type":15},"Feature Flags","feature-flags",{"name":1554,"slug":1555,"type":15},"2026-07-03T16:32:01.278468",{"slug":1648,"name":1648,"fn":1649,"description":1650,"org":1651,"tags":1652,"stars":1537,"repoUrl":1538,"updatedAt":1665},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1653,1656,1659,1662],{"name":1654,"slug":1655,"type":15},"Cosmos DB","cosmos-db",{"name":1657,"slug":1658,"type":15},"Database","database",{"name":1660,"slug":1661,"type":15},"NoSQL","nosql",{"name":1663,"slug":1664,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":1667,"name":1667,"fn":1649,"description":1668,"org":1669,"tags":1670,"stars":1537,"repoUrl":1538,"updatedAt":1678},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1671,1672,1673,1674,1675],{"name":1654,"slug":1655,"type":15},{"name":1657,"slug":1658,"type":15},{"name":9,"slug":8,"type":15},{"name":1660,"slug":1661,"type":15},{"name":1676,"slug":1677,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":1680,"name":1680,"fn":1681,"description":1682,"org":1683,"tags":1684,"stars":1537,"repoUrl":1538,"updatedAt":1690},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1685,1686,1687,1688,1689],{"name":1532,"slug":1533,"type":15},{"name":1654,"slug":1655,"type":15},{"name":1657,"slug":1658,"type":15},{"name":1554,"slug":1555,"type":15},{"name":1660,"slug":1661,"type":15},"2026-05-13T06:14:17.582229",267]