963 markdown files reformatted with the repository's pinned prettier so pnpm format:check covers the folded tree like every other repo file. The formatter's embedded-language pass also normalized code fences (TS semicolons, closed HTML tags in examples, lowercased CSS hex colors, one renumbered list that skipped an index). Alphanumeric token deltas vs the fold commit were audited file-by-file; all are formatter-equivalent markup normalizations plus the four sanitized skills.
4.5 KiB
4.5 KiB
name, description
| name | description |
|---|---|
| mosaic-gitea | Interact with Gitea repositories on git.mosaicstack.dev — create/merge/close PRs, manage issues, milestones, and CI queue waits. Use when working with Mosaic Stack git repos. Wraps scripts in ~/.config/mosaic/tools/git/. Works on both Gitea and GitHub (auto-detected via detect-platform.sh). |
mosaic-gitea
Git operations via Mosaic wrapper scripts. Platform-aware (Gitea or GitHub).
Setup
Scripts auto-detect platform from git remote. Run from inside the repo directory.
For force-merge (branch protection bypass):
GITEA_TOKEN=$(cat ~/.config/mosaic/credentials/gitea.env | grep TOKEN | cut -d= -f2)
Or use the credentials loader:
source ~/.config/mosaic/tools/_lib/credentials.sh
load_credentials gitea-mosaicstack
# Exports: GITEA_TOKEN, GITEA_URL
Script Reference
All scripts in ~/.config/mosaic/tools/git/.
Pull Requests
| Script | Purpose | Key flags |
|---|---|---|
pr-create.sh |
Create a PR | -t "Title" [-b "Body"] [-B base] [-H head] [-i issue#] |
pr-list.sh |
List open PRs | [-s state] |
pr-view.sh |
View PR details | -n <pr#> |
pr-merge.sh |
Squash-merge a PR | -n <pr#> [-d] (delete branch) |
pr-close.sh |
Close a PR | -n <pr#> |
pr-diff.sh |
Show PR diff | -n <pr#> |
pr-review.sh |
Submit a review | -n <pr#> [-a approve|request-changes] |
pr-ci-wait.sh |
Wait for CI on PR | -n <pr#> |
pr-metadata.sh |
Get PR metadata as JSON | -n <pr#> |
Issues
| Script | Purpose | Key flags |
|---|---|---|
issue-create.sh |
Create an issue | -t "Title" [-b "Body"] [-l labels] [-m milestone] |
issue-list.sh |
List issues | [-s state] [-l label] |
issue-view.sh |
View issue | -n <issue#> |
issue-close.sh |
Close issue | -n <issue#> |
issue-comment.sh |
Add comment | -n <issue#> -c "Comment" |
issue-assign.sh |
Assign issue | -n <issue#> -u username |
issue-edit.sh |
Edit issue | -n <issue#> [-t title] [-b body] |
Milestones
| Script | Purpose | Key flags |
|---|---|---|
milestone-create.sh |
Create milestone | -t "Title" [-d "due date"] |
milestone-list.sh |
List milestones | — |
milestone-close.sh |
Close milestone | -n <number> |
CI / Queue
| Script | Purpose | Key flags |
|---|---|---|
ci-queue-wait.sh |
Wait for CI queue slot | [-t timeout] [-B branch] |
detect-platform.sh |
Detect git platform | outputs gitea or github |
Common Workflows
Create PR from current branch:
cd ~/src/<repo>
~/.config/mosaic/tools/git/pr-create.sh -t "feat: my feature" -b "Description" -i <issue#>
Merge a PR (squash, with CI queue guard):
cd ~/src/<repo>
~/.config/mosaic/tools/git/pr-merge.sh -n <pr#> -d
Force-merge bypassing branch protection:
GITEA_TOKEN=$(cat ~/.config/mosaic/credentials/gitea.env | grep TOKEN | cut -d= -f2)
curl -X POST "https://git.mosaicstack.dev/api/v1/repos/<org>/<repo>/pulls/<PR>/merge" \
-H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \
-d '{"Do":"squash","force_merge":true}'
Notes
- Mosaic policy: squash merges only, targeting
main - Gitea SSH:
[email protected]→ resolves via~/.ssh/configto10.1.1.90:2222 - Workers push branches and open PRs but never merge — orchestrator handles merges