Skip to content

Commit 622542a

Browse files
committed
chore: add research bot, tests, and CI
1 parent 11cb81f commit 622542a

File tree

9 files changed

+498
-0
lines changed

9 files changed

+498
-0
lines changed

.bot/state.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"arxiv_ids": [
3+
"2508.09960",
4+
"2508.12038",
5+
"2508.16943"
6+
]
7+
}

.github/workflows/ci.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main, master, "**" ]
6+
pull_request:
7+
8+
jobs:
9+
lint-and-test:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: actions/setup-python@v5
14+
with:
15+
python-version: '3.11'
16+
- name: Install dev deps
17+
run: |
18+
python -m pip install --upgrade pip
19+
pip install pytest ruff
20+
- name: Ruff
21+
run: |
22+
ruff --version
23+
ruff check awesome-isaac-gym/scripts awesome-isaac-gym/tests
24+
- name: Pytest
25+
run: |
26+
pytest -q awesome-isaac-gym/tests
27+
28+
bot-idempotency:
29+
runs-on: ubuntu-latest
30+
if: ${{ github.event_name == 'pull_request' && startsWith(github.head_ref, 'research-bot/') }}
31+
steps:
32+
- uses: actions/checkout@v4
33+
with:
34+
fetch-depth: 0
35+
- uses: actions/setup-python@v5
36+
with:
37+
python-version: '3.11'
38+
- name: Run bot and verify no diff
39+
run: |
40+
python awesome-isaac-gym/scripts/research_bot.py || true
41+
git status --porcelain
42+
# Ensure the bot is idempotent for its own PR branch
43+
if ! git diff --quiet; then
44+
echo "Bot produced changes on its own PR branch. Please re-run the bot locally and commit the updates." >&2
45+
exit 1
46+
fi
47+

.github/workflows/research-bot.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Research Bot
2+
3+
on:
4+
schedule:
5+
- cron: '0 9 * * 1' # Every Monday 09:00 UTC
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
12+
jobs:
13+
update:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
21+
- name: Set up Python
22+
uses: actions/setup-python@v5
23+
with:
24+
python-version: '3.11'
25+
26+
- name: Install dependencies
27+
run: |
28+
python -m pip install --upgrade pip
29+
pip install pyyaml
30+
31+
- name: Run research bot
32+
run: |
33+
python scripts/research_bot.py
34+
35+
- name: Create Pull Request (draft)
36+
if: |
37+
github.event_name == 'workflow_dispatch' ||
38+
github.event_name == 'schedule'
39+
uses: peter-evans/create-pull-request@v5
40+
with:
41+
token: ${{ secrets.GITHUB_TOKEN }}
42+
branch: research-bot/auto-update
43+
commit-message: "chore(research): update latest research section"
44+
title: "chore(research): update latest research"
45+
body: |
46+
This automated PR updates the Latest Research section with newly published arXiv papers related to Isaac Gym / Isaac Lab.
47+
48+
- Created by Research Bot on a schedule or manual dispatch.
49+
- Marked as draft and requires maintainer approval to merge.
50+
- Content between markers is managed automatically:
51+
`<!-- research-bot:start -->` … `<!-- research-bot:end -->`.
52+
53+
If the changes look good, convert this PR from Draft and merge.
54+
labels: |
55+
bot
56+
needs-approval
57+
draft: true
58+

.research-bot.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
"""
2+
Configuration for the Research Bot.
3+
If PyYAML is not available in your Actions runner, this file will be ignored
4+
and defaults in the script will be used. The provided workflow installs PyYAML.
5+
"""
6+
7+
# Search queries for arXiv (joined with OR across queries)
8+
queries:
9+
- "\"isaac gym\""
10+
- omniisaac
11+
- "\"isaac lab\""
12+
- "\"omni isaac\""
13+
14+
# Look back this many days for new papers
15+
days_back: 14
16+
17+
# Max results fetched per query from arXiv API
18+
max_results: 25
19+
20+
# Max items to include in the README section per run
21+
output_count: 10
22+
23+
# README path to update
24+
readme_path: README.md
25+
26+
# Section title to add/update. Content between markers is managed by the bot.
27+
section_title: "## 🧠 Latest Research (auto-updated)"
28+

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,14 @@ Comprehensive tutorial series from RSS 2021 Workshop:
366366

367367
---
368368

369+
## 🤖 Automated Research Updates
370+
371+
- Source: arXiv queries for “isaac gym”, “omni isaac”, and “isaac lab”.
372+
- Schedule: weekly (Mon 09:00 UTC) or manual via Actions “Research Bot”.
373+
- Output: updates content between the ‘research-bot:start’ and ‘research-bot:end’ markers in this README.
374+
- Safety: opens a Draft PR labeled “needs-approval”; nothing merges automatically.
375+
- Config: edit `.research-bot.yaml` to adjust queries and limits.
376+
369377
## 🌟 Contributing
370378

371379
Contributions are welcome! Please read our [contribution guidelines](CONTRIBUTING.md) before submitting a pull request.
13.5 KB
Binary file not shown.

0 commit comments

Comments
 (0)