LibreChat/.github/workflows
Danny Avila 8cb5c62fa1
🔗 chore: Dispatch GitNexus Deploy When Index Is Bot-Triggered (#12621)
* fix: dispatch deploy from index when triggered by github-actions[bot]

GitHub Actions suppresses workflow_run events for workflow runs whose
triggering actor is GITHUB_TOKEN (to prevent recursive chains). This
means when gitnexus-pr-command.yml uses `gh api workflow_dispatch`
to kick off gitnexus-index.yml, the downstream gitnexus-deploy-do.yml
workflow_run trigger never fires — the PR command indexes the PR but
the new artifact never makes it onto the droplet.

Add a final step in gitnexus-index.yml that dispatches the deploy
workflow directly via API, but ONLY when the triggering actor is
github-actions[bot]. User-triggered runs (push, pull_request, manual
workflow_dispatch from the UI) continue to rely on workflow_run as
before, so we don't double-deploy.

Requires a new actions:write permission at the workflow level for
this dispatch. contents:read is unchanged.

* fix: resolve main/dev indexes by artifact name, not branch run query

The resolve step was querying listWorkflowRuns filtered by branch=main
and branch=dev, then assuming the latest successful run on each branch
produced the expected gitnexus-index-main / gitnexus-index-dev
artifact. That assumption breaks for /gitnexus index command runs:

The PR command workflow dispatches gitnexus-index.yml with ref=main
(because that's where the workflow file lives) and an input pr_number.
The resulting run has head_branch='main' but uploads its artifact as
gitnexus-index-pr-<N>, not gitnexus-index-main. listWorkflowRuns
returns that run as the "latest success on main", the download step
tries to fetch gitnexus-index-main from it, and the API returns
"no artifact matches any of the names or patterns provided".

Fix: resolve all indexes (main, dev, and PRs) through the same
listArtifactsForRepo path the PR discovery already uses. Looks up
the freshest non-expired artifact by name directly, so the run's
head_branch and event type don't matter — if the artifact exists,
we find it; if not, we warn and move on.

Side benefit: the resolution logic is now shorter and consistent
across branches and PRs.

* fix: paginate open PRs and parallelize artifact lookups

The resolve step was capped at 100 open PRs by github.rest.pulls.list's
per_page ceiling — LibreChat has 200+ open at any given time, so the
tail of the PR queue was silently skipped. On top of that, the inner
artifact lookup loop was serial, so even after pagination the resolve
step would take 40-60 seconds on a busy repo (one API call per PR).

- Replace the single-page rest.pulls.list call with github.paginate,
  which follows the Link header across pages and returns the full
  open-PR set regardless of count.
- Drop the 100-PR truncation warning that was a known-limitation
  notice for exactly this case.
- Batch the per-PR artifact lookups into groups of 10 via Promise.all.
  200 PRs now take ~10 seconds instead of ~60, and the burst stays
  well within the authenticated rate limit (5000/hr).
- Add a final core.info summary showing how many of the open PRs
  actually had a servable index artifact, so the log is useful for
  debugging why a specific PR isn't showing up on the droplet.
2026-04-11 14:02:00 -04:00
..
a11y.yml 🤲 a11y: Sidebar Text Contrast (#3665) 2024-08-16 13:50:47 -04:00
backend-review.yml 🔬 ci: Add TypeScript Type Checks to Backend Workflow and Fix All Type Errors (#12451) 2026-03-28 21:06:39 -04:00
build.yml Update build.yml 2023-07-22 13:35:00 -04:00
cache-integration-tests.yml 🌊 feat: Resumable LLM Streams with Horizontal Scaling (#10926) 2025-12-19 12:14:19 -05:00
client.yml v0.8.1 (#10882) 2025-12-10 09:06:01 -05:00
data-provider.yml v0.8.1 (#10882) 2025-12-10 09:06:01 -05:00
data-schemas.yml v0.8.1 (#10882) 2025-12-10 09:06:01 -05:00
deploy-dev.yml 🐋 ci: update dev deployment script 2025-06-02 05:33:46 -04:00
deploy.yml chore: Get the latest of all github actions (#1335) 2023-12-14 07:44:38 -05:00
dev-branch-images.yml 🏗️ refactor: Extract DB layers to data-schemas for shared use (#7650) 2025-05-30 22:18:13 -04:00
dev-images.yml 🐳 experimental: Dev Image Workflow & Remove Unused Code (#1928) 2024-02-29 09:24:55 -05:00
dev-staging-images.yml 🐋 chore: Add Workflow for Docker Dev Staging Images Build 2025-11-27 12:26:37 -05:00
eslint-ci.yml 📡 refactor: MCP Runtime Config Sync with Redis Distributed Locking (#10352) 2025-12-11 16:36:15 -05:00
frontend-review.yml refactor: Parallelize CI Workflows with Isolated Caching and Fan-Out Test Jobs (#12088) 2026-03-05 13:56:07 -05:00
generate_embeddings.yml 🚀 feat: Add GitHub Actions Workflow for Generating Docs Embeddings (#2216) 2024-03-26 11:57:04 -04:00
gitnexus-cleanup-pr.yml 🌊 feat: Add GitNexus DigitalOcean Pipeline with PR Index Serving (#12612) 2026-04-11 13:04:46 -04:00
gitnexus-deploy-do.yml 🔗 chore: Dispatch GitNexus Deploy When Index Is Bot-Triggered (#12621) 2026-04-11 14:02:00 -04:00
gitnexus-index.yml 🔗 chore: Dispatch GitNexus Deploy When Index Is Bot-Triggered (#12621) 2026-04-11 14:02:00 -04:00
gitnexus-pr-command.yml 🧠 feat: Enable GitNexus Embeddings for Dev Branch and PR Indexes (#12620) 2026-04-11 13:35:29 -04:00
helmcharts.yml 🪖 ci: Helm OCI Publishing (#7256) 2025-08-11 16:21:05 -04:00
i18n-unused-keys.yml 🏷️ chore: Add Missing Localizations for Agents, Categories, Bookmarks (#9266) 2025-08-25 13:54:13 -04:00
locize-i18n-sync.yml 🌐 ci: Bump Locize i18n Action Version 2025-08-01 15:52:00 -04:00
main-image-workflow.yml 🐳 hotfix: Tag Images Workflow Update (#2272) 2024-04-01 19:04:37 -04:00
tag-images.yml 🐳 hotfix: Tag Images Workflow Update (#2272) 2024-04-01 19:04:37 -04:00
unused-packages.yml 🧵 refactor: Migrate Endpoint Initialization to TypeScript (#10794) 2025-12-11 16:37:16 -05:00