A React + TypeScript port of the legacy Rally ExtJS "Bulk create Stories, set Release" Custom App.
Paste a list of story names (one per line), choose a target release, and click Create Stories. The widget creates each story in Rally and immediately assigns it to the selected release — in sequence, with per-story progress feedback.
This is a faithful port of the legacy ExtJS app:
- The legacy app creates a hardcoded count of 3 stories named "story 1", "story 2" with a single click. This port extends that to an arbitrary list via a textarea.
- The legacy create-then-update-release two-step pattern is preserved exactly (
wsapiCreate→wsapiUpdate Release).
Source file: code-viewer/dist/apps-html/bulk-create-stories-set-release-App-20260412-213615.html
The legacy CustomApp extends Rally.app.TimeboxScopedApp with scopeType: "release". On button click it:
- Calls
Rally.data.ModelFactory.getModel({ type: "UserStory" }) - Iterates 1..2 (i.e. creates stories named "story 1", "story 2")
- Calls
story.save()to create each story - In the save callback, reads the story back and calls
record.set("Release", release.get("_ref"))thenrecord.save()to attach it to the release from the timebox scope
This React port replicates the same two-step create-then-set-release pattern using wsapiCreate + wsapiUpdate.
Warning: This widget creates real Rally artifacts in live mode. Review story names carefully before clicking Create. There is no undo.
See docs/setup-guide.md for full auth, dev server, and deploy instructions.
# From monorepo root (first time):
npm install
# Dev server (mock data, no Rally auth needed):
cd examples/bulk-create-stories-set-release
npm run dev
# → http://localhost:5175
# Dev server (live Rally data):
# Create auth.json first — see docs/setup-guide.md
npm run dev
# → open http://localhost:5175?live=true| Setting | Default | Description |
|---|---|---|
| Default Schedule State | Defined | ScheduleState assigned to each new story |
| Default Project Ref | (blank) | WSAPI project ref override; blank = current scope |
The mock provider ships with 4 releases:
| Release | Dates | State |
|---|---|---|
| Q1 2026 | Jan 1 – Mar 31 | Released |
| Q2 2026 | Apr 1 – Jun 30 | Active (auto-selected) |
| Q3 2026 | Jul 1 – Sep 30 | Planning |
| Q4 2026 | Oct 1 – Dec 31 | Planning |
When you click Create Stories in mock mode, stories are created in memory only (nothing is written to Rally). Each mock creation takes ~400–600ms so the progress bar animates naturally. If you enter 5+ stories, the last one has a ~30% chance of simulating a creation error — so you can see the error state.
@customagile/widget-ai— components, hooks, data layer- React 18 + TypeScript
- Vite (dev server + IIFE production build)
