Files
Jarvis 12545cf98c feat: add mosaic ops skills (portainer, gitea, woodpecker, deploy, orchestrator)
- mosaic-portainer: stack list/status/redeploy/logs via Portainer API scripts
- mosaic-gitea: PR/issue/milestone ops for git.mosaicstack.dev
- mosaic-woodpecker: pipeline status, trigger, CI wait
- mosaic-deploy: full end-to-end deploy flow (push → CI → merge → redeploy)
- mosaic-orchestrator: mission init/run/status + worker launch rules
2026-03-22 15:32:05 +00:00

3.3 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: git@git.mosaicstack.dev → resolves via ~/.ssh/config to 10.1.1.90:2222
  • Workers push branches and open PRs but never merge — orchestrator handles merges