Repository Management¶
Day-to-day repository management built around GitLab issue-driven development.
The full list of glab commands lives in CLAUDE.md; this page only covers the ones actually used often.
Branch Workflow (git worktree)¶
This project keeps main clean by isolating work in a separate git worktree per branch.
# Create a work branch
git worktree add ../worktrees/<branch-name> -b <branch-name>
cd ../worktrees/<branch-name>
# Set up dependencies
uv sync --all-groups
# ... implement ...
task test:ci # unit tests → format check → pre-commit
git add <files>
git commit -m "..."
git push -u origin <branch-name>
Always clean up after the MR is merged:
cd /Users/shotakaha/repos/gitlab.com/qumasan/fnb
git pull
git worktree remove ../worktrees/<branch-name>
git branch -d <branch-name>
Issue Management¶
# List / search
glab issue list
glab issue list --label "Priority::High"
# Create (reuse existing labels — check with glab label list)
glab issue create --label "Type::Bug,Priority::Medium,Effort::03" \
--title "..." --description "..."
# Change state
glab issue close <id>
Labels follow the Type::* / Priority::* / Effort::* / Status::* scheme. Check glab label list before inventing a new one.
MR Management¶
# Create
glab mr create --source-branch <branch> --target-branch main \
--title "..." --description "Closes #<issue>"
# Check CI status (always do this before merging)
glab ci status --branch <branch>
# Validate YAML syntax only
glab ci lint .gitlab-ci.yml
Reference the corresponding issue number in the MR description as Closes #NN so it auto-closes on merge.
CI Pipeline Monitoring¶
To check total pipeline duration or per-job timings:
# Latest pipeline status for a branch
glab ci status --branch <branch>
# Pipeline/job details (duration, etc.)
glab api "projects/qumasan%2Ffnb/pipelines/<id>/jobs"
glab api "projects/qumasan%2Ffnb/pipelines/<id>"
See .gitlab-ci.yml for the pipeline structure. test / code-quality / docs-quality / build-package run in parallel via needs: [] (optimized from ~183s to ~43s in 2026-07). docs-quality only runs on MRs that touch docs-related files (rules: changes), so it's normal for it not to appear on code-only MRs.
Reviewing Renovate MRs¶
Renovate creates MRs on renovate/-prefixed branches, where renovate-test (which also validates the build/install) runs instead of test.
See renovate.json for auto-merge rules on patch updates. Major updates always require manual review.