Skip to content

fix: harden Asana link-check workflow against false rejections and API timeouts - #10

Merged
rachelauryn merged 2 commits into
datakind:mainfrom
vishpillai123:fix/asana-timeout-resilience
Jul 28, 2026
Merged

fix: harden Asana link-check workflow against false rejections and API timeouts#10
rachelauryn merged 2 commits into
datakind:mainfrom
vishpillai123:fix/asana-timeout-resilience

Conversation

@vishpillai123

@vishpillai123 vishpillai123 commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Two independent issues in the `link-asana-task.yml` reusable workflow, both surfaced while debugging why datakind/edvise-api#282's required `asana` check kept failing:

1. The URL regex rejects a valid, common Asana link shape

The pattern only accepted `app.asana.com/1//project//task/` for current-UI links, but Asana also produces `app.asana.com/1//task/` (no `project//` segment) when a task link is copied from a project-less context — My Tasks, Inbox, search results, etc. That's a completely valid, resolvable Asana permalink, but it silently failed the "must include an Asana task URL" check, forcing PR authors to either dig through a confusing regex or hand-craft a different URL shape.

  • Fix: the `project//` segment is now optional in that branch. Verified against all known valid/invalid Asana URL shapes (legacy `/0/...` links, both current-UI link shapes, and non-task workspace/project-only links that should still be rejected).

2. A flaky/slow Asana API call can block merges

The second step (`Asana/create-app-attachment-github-action@v1.3`, which posts a "GitHub PR" attachment widget onto the task — a nicety, not the actual requirement) has no timeout and isn't allowed to fail independently. When Asana's API is slow, this step hangs and times out (`598 Unable to serve response within time limit`), failing the whole required `asana` check even though the PR body already satisfies the real requirement (step 1, the regex check).

  • Fix: add `timeout-minutes: 2` and `continue-on-error: true` to that step so it can never block a merge, while leaving the actual requirement (step 1) untouched and still enforced.

Context

Both issues were hit back-to-back on datakind/edvise-api#282:

Test plan

  • N/A (workflow-only change). Regex verified locally against all known Asana URL shapes (see PR discussion). Once merged, will verify by re-running the `asana` check on fix: treat campus_name as non-PII column edvise-api#282 (workflow is called via `@main`, so the fix applies immediately without a version bump).

Co-authored-by: Cursor <cursoragent@cursor.com>
@vishpillai123
vishpillai123 requested review from a team and rachelauryn as code owners July 28, 2026 15:27
@vishpillai123 vishpillai123 changed the title fix: don't let flaky Asana API block PR merges fix: ensure Asana API doesn't block PR merges Jul 28, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>
@vishpillai123 vishpillai123 changed the title fix: ensure Asana API doesn't block PR merges fix: harden Asana link-check workflow against false rejections and API timeouts Jul 28, 2026
@rachelauryn
rachelauryn merged commit 97133b4 into datakind:main Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants