Skip to content

revett/miniflux-sync

Repository files navigation

miniflux-sync

GitHub Release GitHub branch check runs GitHub go.mod Go version GitHub License

Manage and sync your Miniflux feeds with YAML.

YAML config Logs

Install

GitHub Action

name: Sync feeds via revett/miniflux-sync

on: [push]

jobs:
  Run:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Download and read version
        id: get_version
        run: |
          VERSION=$(curl -s https://raw.githubusercontent.com/revett/miniflux-sync/main/VERSION)
          echo "VERSION=$VERSION" >> $GITHUB_ENV

      - name: Download and extract latest release
        run: |
          curl -L https://github.com/revett/miniflux-sync/releases/download/${{ env.VERSION }}/miniflux-sync_Linux_x86_64.tar.gz | tar -xz

      - name: Run CLI with arguments
        env:
          MINIFLUX_SYNC_ENDPOINT: ${{ secrets.MINIFLUX_SYNC_ENDPOINT }}
          MINIFLUX_SYNC_API_KEY: ${{ secrets.MINIFLUX_SYNC_API_KEY }}
        run: |
          if [ "${{ github.ref_name }}" == "main" ]; then
            ./miniflux-sync sync --path feeds.yml
          else
            ./miniflux-sync sync --dry-run --path feeds.yml
          fi

See revett/feeds for an example repo.

CLI

Configure the CLI to use and authenticate with your Miniflux instance:

# Use environment variables
MINIFLUX_SYNC_ENDPOINT=... MINIFLUX_SYNC_API_KEY=... miniflux-sync -h

# Or via CLI flags
miniflux-sync --endpoint="..." --api-key="..." -h

Then run the CLI:

# Help
miniflux-sync -h

# View changes via dry run
miniflux-sync sync --path ./feeds.yml --dry-run

# Sync changes
miniflux-sync sync --path ./feeds.yml

# Export remote state
miniflux-sync dump

Contributing

Contributions, issues and feature requests are very welcome.

# Running tests
go test -cover ./...

# Bump VERSION, and run script
GITHUB_TOKEN="..." ./scripts/release.sh