Automatically syncs open bounties from owockibot.xyz into GitHub Issues — with reward-tier labels, status tracking, and category tagging.
Every 6 hours, a GitHub Action:
- Polls the owockibot bounty board API for open bounties
- Creates a GitHub Issue for each new bounty (title, full description, reward, deadline, category)
- Labels each issue by reward tier, category, and status
- Updates issues automatically when a bounty is claimed or completed
- Closes issues when a bounty is completed
- Falls back to mock data gracefully if the API is unreachable
| Label | Range |
|---|---|
reward: 💎 $1000+ |
$1000 and above |
reward: 🥇 $500+ |
$500 – $999 |
reward: 🥈 $200+ |
$200 – $499 |
reward: 🥉 <$200 |
Under $200 |
status: open— available to claimstatus: claimed— someone is working on itstatus: completed— done, issue closed
category: Engineering · category: Content · category: Design · category: Research · category: Security · category: Translation
All synced issues also get the owockibot label (green) for easy filtering.
Create a new public GitHub repo and upload all these files, keeping the folder structure:
.github/
workflows/
sync-bounties.yml
scripts/
sync.js
package.json
README.md
Go to your repo → Settings → Actions → General → Workflow permissions
Select "Read and write permissions" → Save.
Go to Actions tab → click "Sync Owockibot Bounties" → click "Run workflow" → set demo_mode to true → click the green "Run workflow" button.
Wait about 30 seconds, then check your Issues tab. You should see 6 bounty issues created with labels.
Once the owockibot API is publicly accessible, run the workflow with demo_mode set to false (the default). The sync runs automatically every 6 hours via the schedule.
To override the API URL, add a repository variable:
- Go to Settings → Secrets and variables → Actions → Variables
- Add
OWOCKIBOT_API_URL=https://owockibot.xyz/api
| Variable | Where | Default | Description |
|---|---|---|---|
OWOCKIBOT_API_URL |
Repo variable | https://owockibot.xyz/api |
Base URL for the bounty API |
GITHUB_TOKEN |
Auto-provided | — | Automatically available in all Actions |
No secrets need to be manually added — GITHUB_TOKEN is provided automatically by GitHub Actions.
Each issue stores the bounty ID (owk-xxx) in its body. On every run the script:
- Fetches all existing issues tagged
owockibot - Extracts the bounty ID from each issue body
- Compares against the latest API data
- Creates issues for new bounties, updates changed ones, skips unchanged ones
- Closes issues for completed bounties
This means the sync is idempotent — running it twice produces the same result.
.github/workflows/sync-bounties.yml GitHub Action definition
scripts/sync.js Main sync logic (Node.js, no dependencies)
scripts/package.json Package manifest
README.md This file
This tool was built for the owockibot bounty board — a platform for onchain contributor coordination.
Built by @cyrilawoyemi99-max