Sync reading position from Moon Reader app to Bookhive atproto records
atproto bookhive ereader moonreader
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add GitHub Actions workflow that publishes to GHCR

Mirrors the Forgejo workflow's behavior — test on every push/PR, build
image on pushes to main — but uses GitHub-native idioms: stock
actions/checkout, astral-sh/setup-uv, docker/login-action, and
docker/build-push-action. Auth is the built-in GITHUB_TOKEN with
packages: write permission, so no secrets or repo vars need to be set
on the mirrored GitHub repo. Image lands at
ghcr.io/<owner>/spacebee:latest (and :sha); the first publish is
private by default and can be flipped to public in GitHub's package
settings.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

+47
+47
.github/workflows/ci.yml
··· 1 + name: CI 2 + 3 + on: 4 + push: 5 + branches: [main] 6 + pull_request: 7 + 8 + jobs: 9 + test: 10 + runs-on: ubuntu-latest 11 + steps: 12 + - uses: actions/checkout@v4 13 + - uses: astral-sh/setup-uv@v3 14 + with: 15 + python-version: "3.11" 16 + - name: Install deps 17 + run: uv sync --extra dev 18 + - name: Lint 19 + run: uv run ruff check src tests 20 + - name: Test 21 + run: uv run pytest -q 22 + 23 + image: 24 + needs: test 25 + if: github.ref == 'refs/heads/main' 26 + runs-on: ubuntu-latest 27 + permissions: 28 + contents: read 29 + packages: write 30 + steps: 31 + - uses: actions/checkout@v4 32 + 33 + - name: Log in to GHCR 34 + uses: docker/login-action@v3 35 + with: 36 + registry: ghcr.io 37 + username: ${{ github.actor }} 38 + password: ${{ secrets.GITHUB_TOKEN }} 39 + 40 + - name: Build and push 41 + uses: docker/build-push-action@v5 42 + with: 43 + context: . 44 + push: true 45 + tags: | 46 + ghcr.io/${{ github.repository }}:latest 47 + ghcr.io/${{ github.repository }}:${{ github.sha }}