Skip to content

chore: ensures that associate-pr action fetches it from proper ref#2819

Merged
stalniy merged 1 commit intomainfrom
chore/fix-associated-pr-refs
Mar 2, 2026
Merged

chore: ensures that associate-pr action fetches it from proper ref#2819
stalniy merged 1 commit intomainfrom
chore/fix-associated-pr-refs

Conversation

@stalniy
Copy link
Contributor

@stalniy stalniy commented Feb 25, 2026

Why

Right now, associated-pr always fetches PR from the main branch. This may cause incorrect identification when multiple PRs has been merged to main at about the same time

What

Summary by CodeRabbit

  • Chores

    • Improved CI reliability by using a Git ref input, deriving commit SHAs when needed, adding retries with exponential backoff for PR lookups, and avoiding clearing outputs when no PR is found.
    • Test and release workflows now pass explicit app/version refs to test and notification steps.
    • Jobs reordered so setup completes before testing and deployment.
  • New Features

    • Added Slack user mapping output for richer notifications.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 25, 2026

📝 Walkthrough

Walkthrough

Change the associated-pr action to accept a ref, resolve it to a commit SHA (including tag-like refs), add exponential-backoff retries for PR lookup, and propagate ref and a new app-version input through several test/notification actions and release workflows.

Changes

Cohort / File(s) Summary
Associated PR action
\.github/actions/associated-pr/action.yml
Rename input sharef; add step to resolve ref → commit SHA; switch consumers to steps.get-sha.outputs.sha; add exponential-backoff retries for PR lookup; change behavior when no PR found; add Slack user mapping output.
Slack & test notification actions
\.github/actions/console-web-ui-testing/action.yml, \.github/actions/run-e2e-tests/action.yml, \.github/actions/slack-tests-failed-notification/action.yml, \.github/actions/slack-pending-deployment-approval/action.yml
Add/propagate ref input to notification actions; add required app-version input to run-e2e-tests; pass constructed ref (e.g., ${{ inputs.app }}/v${{ inputs.app-version }}) into associated-pr/notification steps; remove default for linked-workflow-run-id.
Workflows — associated-pr input rename
\.github/workflows/all-ci-unsafe.yml, \.github/workflows/auto-approval.yml
Update invocations to pass ref: instead of sha: while preserving provided values (e.g., github.event.workflow_run.head_sha).
Release workflows — setup & app-version propagation
\.github/workflows/console-api-release.yml, \.github/workflows/console-web-release.yml, \.github/workflows/provider-proxy-release.yml
Add setup job dependency where needed; pass needs.setup.outputs.image_tag into test jobs as app-version and construct ref for e2e/test actions so tests/notifications carry explicit version context.

Sequence Diagram(s)

sequenceDiagram
  participant WF as Workflow
  participant AP as associated-pr Action
  participant GH as GitHub API
  participant SN as Slack Notification Action

  WF->>AP: invoke with ref (e.g., app/vX.Y.Z)
  AP->>GH: resolve ref -> commit SHA
  GH-->>AP: commit SHA
  AP->>GH: listPullRequestsAssociatedWithCommit(sha)
  alt PR found
    GH-->>AP: PR(s)
    AP->>GH: if merged & missing merged_by -> pulls.get(pr_number)
    GH-->>AP: PR details
    AP-->>WF: set PR outputs (number,title,head_ref,head_repo,labels,closed,slack_user)
    WF->>SN: consume outputs to build message
  else no PR / retries exhausted
    AP-->>WF: warn and return early (no PR outputs set)
    WF->>SN: send fallback notification (no PR)
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 I followed refs through tags and trees,

I found the SHA beneath the leaves,
Retries I tapped with gentle paws,
Versioned tests and tidy logs,
A carrot cheer for CI's cause 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: updating the associated-pr action to fetch from the proper ref instead of always from main.
Description check ✅ Passed The description explains the problem (incorrect PR identification when multiple PRs merged) but lacks implementation details in the What section.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/fix-associated-pr-refs

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approved: chore that does not touch source code files.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/console-api-release.yml (1)

60-79: ⚠️ Potential issue | 🔴 Critical

needs.setup is inaccessible — pipeline failure confirmed.

test-beta-sandbox only lists needs: deploy-beta-sandbox, so needs.setup.outputs.image_tag at Line 75 is out of scope. This matches the reported linting error. setup must be added to the job's direct needs, mirroring the fix already applied in console-web-release.yml.

🐛 Proposed fix
  test-beta-sandbox:
    permissions:
      contents: read
      pull-requests: read
-   needs: deploy-beta-sandbox
+   needs:
+     - setup
+     - deploy-beta-sandbox
    name: Test beta sandbox
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/console-api-release.yml around lines 60 - 79, The job
test-beta-sandbox references needs.setup.outputs.image_tag but only declares
needs: deploy-beta-sandbox, causing the output to be inaccessible; update the
test-beta-sandbox job to include setup in its needs array (i.e., add setup
alongside deploy-beta-sandbox) so needs.setup.outputs.image_tag is in scope,
keeping the rest of the job (runs-on, steps, env, with) unchanged.
♻️ Duplicate comments (1)
.github/workflows/all-ci-unsafe.yml (1)

113-117: Same raw-SHA concern as auto-approval.yml.

${{ github.event.workflow_run.head_sha }} is passed as ref, while the associated-pr action's ref-to-SHA resolution step is designed for named tag refs. Confirm the action handles SHA inputs as noted in the auto-approval.yml comment above.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/all-ci-unsafe.yml around lines 113 - 117, The
associated-pr step is being passed a raw SHA via the ref input (id
associated_pr, uses ./.github/actions/associated-pr), but the action's
ref-to-SHA resolution expects named tag/branch refs; update the associated-pr
action to accept raw SHAs (detect a 40‑char hex and skip ref-to-SHA resolution)
or normalize the workflow input by passing a branch/ref instead (e.g., use
github.event.workflow_run.head_branch or construct refs/heads/<branch>) so that
associate_pr's ref handling (the ref-to-SHA resolution step) correctly handles
both named refs and raw SHA inputs.
🧹 Nitpick comments (1)
.github/workflows/provider-proxy-release.yml (1)

106-121: No test-prod-mainnet job exists for the prod-mainnet deployment.

The workflow tests beta-sandbox, beta-mainnet, and prod-sandbox, but deploy-prod-mainnet has no corresponding test job — unlike the symmetric test-prod-sandbox that follows deploy-prod-sandbox. This is a pre-existing gap, not introduced by this PR, but worth tracking.

Would you like me to open a separate issue to track adding test-prod-mainnet for consistency with the other deployment lanes?

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/provider-proxy-release.yml around lines 106 - 121, The
workflow is missing a test-prod-mainnet job and deploy-prod-mainnet doesn't
depend on a pre-deploy test; add a new job named test-prod-mainnet modeled after
test-prod-sandbox/test-beta-mainnet (same permissions, steps, and using the same
test matrix for prod/mainnet), then update the needs array of
deploy-prod-mainnet (in the deploy-prod-mainnet job) to include
test-prod-mainnet so the prod mainnet deployment waits for its test to complete.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/actions/associated-pr/action.yml:
- Around line 69-70: The code currently assumes process.env.INPUT_REF is already
an immutable commit SHA when calling core.info and core.setOutput; instead
detect if INPUT_REF is not a 40-char SHA and resolve it to a commit SHA first
(e.g., run git rev-parse --verify or call Octokit/repos.getCommit with the
provided ref) and then call core.info and core.setOutput with the resolved SHA;
update the logic around core.info(`Using provided ref as sha:
${process.env.INPUT_REF}`) and core.setOutput('sha', process.env.INPUT_REF) to
use the resolved SHA variable so downstream steps always receive an immutable
commit SHA.
- Line 45: Remove the invalid shell attribute from the uses step: locate the
step that contains "uses: actions/github-script@v7" (or any other "uses:" entry)
and delete the "shell: bash" line because shell is only valid on run steps;
ensure that any needed configuration for the action remains under "with:" and do
not move shell to the uses step.

---

Outside diff comments:
In @.github/workflows/console-api-release.yml:
- Around line 60-79: The job test-beta-sandbox references
needs.setup.outputs.image_tag but only declares needs: deploy-beta-sandbox,
causing the output to be inaccessible; update the test-beta-sandbox job to
include setup in its needs array (i.e., add setup alongside deploy-beta-sandbox)
so needs.setup.outputs.image_tag is in scope, keeping the rest of the job
(runs-on, steps, env, with) unchanged.

---

Duplicate comments:
In @.github/workflows/all-ci-unsafe.yml:
- Around line 113-117: The associated-pr step is being passed a raw SHA via the
ref input (id associated_pr, uses ./.github/actions/associated-pr), but the
action's ref-to-SHA resolution expects named tag/branch refs; update the
associated-pr action to accept raw SHAs (detect a 40‑char hex and skip
ref-to-SHA resolution) or normalize the workflow input by passing a branch/ref
instead (e.g., use github.event.workflow_run.head_branch or construct
refs/heads/<branch>) so that associate_pr's ref handling (the ref-to-SHA
resolution step) correctly handles both named refs and raw SHA inputs.

---

Nitpick comments:
In @.github/workflows/provider-proxy-release.yml:
- Around line 106-121: The workflow is missing a test-prod-mainnet job and
deploy-prod-mainnet doesn't depend on a pre-deploy test; add a new job named
test-prod-mainnet modeled after test-prod-sandbox/test-beta-mainnet (same
permissions, steps, and using the same test matrix for prod/mainnet), then
update the needs array of deploy-prod-mainnet (in the deploy-prod-mainnet job)
to include test-prod-mainnet so the prod mainnet deployment waits for its test
to complete.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between babcc4e and 39f9423.

📒 Files selected for processing (10)
  • .github/actions/associated-pr/action.yml
  • .github/actions/console-web-ui-testing/action.yml
  • .github/actions/run-e2e-tests/action.yml
  • .github/actions/slack-pending-deployment-approval/action.yml
  • .github/actions/slack-tests-failed-notification/action.yml
  • .github/workflows/all-ci-unsafe.yml
  • .github/workflows/auto-approval.yml
  • .github/workflows/console-api-release.yml
  • .github/workflows/console-web-release.yml
  • .github/workflows/provider-proxy-release.yml

@stalniy stalniy force-pushed the chore/fix-associated-pr-refs branch from 39f9423 to e18e979 Compare February 25, 2026 05:51
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approved: chore that does not touch source code files.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/actions/associated-pr/action.yml (1)

95-106: ⚠️ Potential issue | 🟠 Major

Retry loop takes response.data[0] without verifying head.sha === commitSha.

listPullRequestsAssociatedWithCommit can return multiple PRs (e.g., when a commit is cherry-picked or appears in several PR branches). Taking index [0] without a SHA guard means that — in a concurrent-merge scenario — the wrong PR could be selected on retry. The outer condition at line 81 already checks pr.head?.sha !== commitSha, making it inconsistent to skip this check on the API path.

💡 Proposed fix
              if (response.data && response.data.length > 0) {
-               pr = response.data[0];
-               core.info(`Found PR #${pr.number} on attempt ${attempt + 1}`);
-               break;
+               const matched = response.data.find(p => p.head.sha === commitSha);
+               if (matched) {
+                 pr = matched;
+                 core.info(`Found PR #${pr.number} with matching head SHA on attempt ${attempt + 1}`);
+                 break;
+               }
+               core.info(`Found ${response.data.length} PR(s) on attempt ${attempt + 1} but none matched head SHA ${commitSha}, retrying...`);
              }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/actions/associated-pr/action.yml around lines 95 - 106, The retry
logic currently assigns response.data[0] to pr without verifying the PR's head
SHA matches commitSha; update the block that calls
listPullRequestsAssociatedWithCommit so it searches response.data for an entry
whose pr.head?.sha === commitSha (or equivalent) before setting pr, e.g. filter
or find on response.data, assign that matching PR to pr, and only break when a
match is found; if no match in this API response, log a message and continue
retrying instead of taking response.data[0].
♻️ Duplicate comments (1)
.github/actions/associated-pr/action.yml (1)

68-69: Non-tag, non-SHA refs (e.g., branch names) are passed through as-is to downstream SHA consumers.

The action description says "Git ref or commit SHA", but branch names or other arbitrary refs will not resolve correctly via listPullRequestsAssociatedWithCommit. For existing callers this is not an issue (they pass commit SHAs or app/version tags), but the input contract is misleading. Either narrowing the description or adding a resolution fallback would prevent future misuse.

🧹 Nitpick comments (1)
.github/actions/associated-pr/action.yml (1)

56-66: Tag regex silently ignores getRef failures — consider wrapping in try/catch.

If git.getRef fails (e.g., the tag doesn't exist yet due to a release race), the step throws and the entire action fails hard. Given that this action is on a notification/approval path, a graceful fallback to context.sha on 404 would be preferable.

💡 Proposed fix
          if (/^[\w-]+\/v{1,2}[\d.]+(-\w+\.\d+)?$/.test(process.env.INPUT_REF)) {
            core.info(`Ref input looks like app version tag, trying to resolve its sha: ${process.env.INPUT_REF}`);
-           const { data } = await github.rest.git.getRef({
-             owner: context.repo.owner,
-             repo: context.repo.repo,
-             ref: `tags/${process.env.INPUT_REF.replace(/\/v{2,}/, '/v')}`,
-           });
-           core.setOutput('sha', data.object.sha);
-           return;
+           try {
+             const { data } = await github.rest.git.getRef({
+               owner: context.repo.owner,
+               repo: context.repo.repo,
+               ref: `tags/${process.env.INPUT_REF.replace(/\/v{2,}/, '/v')}`,
+             });
+             core.setOutput('sha', data.object.sha);
+             return;
+           } catch (err) {
+             core.warning(`Failed to resolve tag ${process.env.INPUT_REF}: ${err.message}. Falling back to context.sha.`);
+             core.setOutput('sha', context.sha);
+             return;
+           }
          }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/actions/associated-pr/action.yml around lines 56 - 66, The
tag-resolution block using github.rest.git.getRef can throw and currently
bubbles up; wrap the call to github.rest.git.getRef in a try/catch around the
block that tests process.env.INPUT_REF, and on error check for a 404 (or any
failure) and fallback to core.info logging and setting core.setOutput('sha',
context.sha) instead of throwing; keep successful behavior unchanged (use the
returned data.object.sha) and ensure you still normalize the tag string with the
existing replace before calling getRef and log both attempts and fallbacks using
core.info/core.warning.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/actions/slack-pending-deployment-approval/action.yml:
- Line 61: The Slack message line that includes the run link should be guarded
so it only renders when inputs.linked-workflow-run-id is non-empty: change the
template segment that builds "Triggered by the following PR in run <${{
github.server_url }}/${{ github.repository }}/actions/runs/${{
inputs.linked-workflow-run-id }}|#${{ inputs.linked-workflow-run-id }}>:" to be
conditional on inputs.linked-workflow-run-id (or provide a safe default string)
so you avoid emitting an empty <...|...> token; use a GitHub Actions expression
(e.g. a ternary or && check on inputs.linked-workflow-run-id) to output the full
link only when inputs.linked-workflow-run-id != '' and otherwise omit or replace
with a neutral message.

In @.github/workflows/console-api-release.yml:
- Around line 76-77: In the test-beta-sandbox job change the app value from
"api" to "console-api" so the run-e2e-tests action and associated-pr receive the
same app identifier as other jobs; specifically update the app: api entry
referenced in the test-beta-sandbox job to app: console-api to ensure the
constructed ref `${{ inputs.app }}/v${{ inputs.app-version }}` matches the
console-api/v{version} git tag naming and allows associated-pr to resolve the
correct PR.

---

Outside diff comments:
In @.github/actions/associated-pr/action.yml:
- Around line 95-106: The retry logic currently assigns response.data[0] to pr
without verifying the PR's head SHA matches commitSha; update the block that
calls listPullRequestsAssociatedWithCommit so it searches response.data for an
entry whose pr.head?.sha === commitSha (or equivalent) before setting pr, e.g.
filter or find on response.data, assign that matching PR to pr, and only break
when a match is found; if no match in this API response, log a message and
continue retrying instead of taking response.data[0].

---

Nitpick comments:
In @.github/actions/associated-pr/action.yml:
- Around line 56-66: The tag-resolution block using github.rest.git.getRef can
throw and currently bubbles up; wrap the call to github.rest.git.getRef in a
try/catch around the block that tests process.env.INPUT_REF, and on error check
for a 404 (or any failure) and fallback to core.info logging and setting
core.setOutput('sha', context.sha) instead of throwing; keep successful behavior
unchanged (use the returned data.object.sha) and ensure you still normalize the
tag string with the existing replace before calling getRef and log both attempts
and fallbacks using core.info/core.warning.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 39f9423 and e18e979.

📒 Files selected for processing (10)
  • .github/actions/associated-pr/action.yml
  • .github/actions/console-web-ui-testing/action.yml
  • .github/actions/run-e2e-tests/action.yml
  • .github/actions/slack-pending-deployment-approval/action.yml
  • .github/actions/slack-tests-failed-notification/action.yml
  • .github/workflows/all-ci-unsafe.yml
  • .github/workflows/auto-approval.yml
  • .github/workflows/console-api-release.yml
  • .github/workflows/console-web-release.yml
  • .github/workflows/provider-proxy-release.yml
🚧 Files skipped from review as they are similar to previous changes (5)
  • .github/actions/console-web-ui-testing/action.yml
  • .github/actions/run-e2e-tests/action.yml
  • .github/actions/slack-tests-failed-notification/action.yml
  • .github/workflows/console-web-release.yml
  • .github/workflows/all-ci-unsafe.yml

@stalniy stalniy force-pushed the chore/fix-associated-pr-refs branch from d1941f5 to 4a550b9 Compare March 2, 2026 11:39
@stalniy stalniy enabled auto-merge March 2, 2026 11:39
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approved: chore that does not touch source code files.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (2)
.github/actions/associated-pr/action.yml (1)

68-69: ⚠️ Potential issue | 🟠 Major

Non-tag refs still treated as literal SHA without resolution.

If INPUT_REF doesn't match the version-tag regex (e.g., a branch name like feature/xyz), it's passed directly as the SHA without resolving to an actual commit. This can cause incorrect PR association for mutable refs.

💡 Proposed fix – resolve arbitrary refs via repos.getCommit
-          core.info(`Using provided ref as sha: ${process.env.INPUT_REF}`);
-          core.setOutput('sha', process.env.INPUT_REF);
+          const { data: commit } = await github.rest.repos.getCommit({
+            owner: context.repo.owner,
+            repo: context.repo.repo,
+            ref: process.env.INPUT_REF,
+          });
+          core.info(`Resolved ref ${process.env.INPUT_REF} to commit SHA: ${commit.sha}`);
+          core.setOutput('sha', commit.sha);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/actions/associated-pr/action.yml around lines 68 - 69, The action
treats any INPUT_REF as a literal SHA (core.setOutput('sha',
process.env.INPUT_REF)) which breaks for branch or other non-tag refs; update
the logic to detect when process.env.INPUT_REF does not match the tag/sha
pattern and, in that case, call the GitHub REST API (repos.getCommit) to resolve
the ref to the actual commit SHA, then set that resolved SHA via
core.setOutput('sha', resolvedSha) so mutable refs (e.g., feature branches) are
converted to concrete commit SHAs before using them elsewhere.
.github/actions/slack-pending-deployment-approval/action.yml (1)

61-61: ⚠️ Potential issue | 🟡 Minor

Malformed Slack link when linked-workflow-run-id is empty.

linked-workflow-run-id is optional with no default. When omitted, the Slack mrkdwn renders as <.../actions/runs/|#> — a broken link.

💡 Proposed fix – guard the run link with a conditional
-                  Triggered by the following PR in run <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ inputs.linked-workflow-run-id }}|#${{ inputs.linked-workflow-run-id }}>:
+                  Triggered by the following PR${{ inputs.linked-workflow-run-id != '' && format(' in run <{0}/{1}/actions/runs/{2}|#{2}>', github.server_url, github.repository, inputs.linked-workflow-run-id) || '' }}:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/actions/slack-pending-deployment-approval/action.yml at line 61, The
Slack message line rendering the run link uses the optional input
inputs.linked-workflow-run-id and produces a malformed `<.../actions/runs/|#>`
when empty; update the action.yml message template so the run link is only
included when inputs.linked-workflow-run-id is non-empty (e.g., wrap the link
generation in a conditional expression or choose an alternate text when empty),
targeting the line containing "Triggered by the following PR in run <${{
github.server_url }}/${{ github.repository }}/actions/runs/${{
inputs.linked-workflow-run-id }}|#${{ inputs.linked-workflow-run-id }}>" and
ensuring Slack mrkdwn does not receive a broken link when
inputs.linked-workflow-run-id is omitted.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In @.github/actions/associated-pr/action.yml:
- Around line 68-69: The action treats any INPUT_REF as a literal SHA
(core.setOutput('sha', process.env.INPUT_REF)) which breaks for branch or other
non-tag refs; update the logic to detect when process.env.INPUT_REF does not
match the tag/sha pattern and, in that case, call the GitHub REST API
(repos.getCommit) to resolve the ref to the actual commit SHA, then set that
resolved SHA via core.setOutput('sha', resolvedSha) so mutable refs (e.g.,
feature branches) are converted to concrete commit SHAs before using them
elsewhere.

In @.github/actions/slack-pending-deployment-approval/action.yml:
- Line 61: The Slack message line rendering the run link uses the optional input
inputs.linked-workflow-run-id and produces a malformed `<.../actions/runs/|#>`
when empty; update the action.yml message template so the run link is only
included when inputs.linked-workflow-run-id is non-empty (e.g., wrap the link
generation in a conditional expression or choose an alternate text when empty),
targeting the line containing "Triggered by the following PR in run <${{
github.server_url }}/${{ github.repository }}/actions/runs/${{
inputs.linked-workflow-run-id }}|#${{ inputs.linked-workflow-run-id }}>" and
ensuring Slack mrkdwn does not receive a broken link when
inputs.linked-workflow-run-id is omitted.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between e18e979 and 4a550b9.

📒 Files selected for processing (10)
  • .github/actions/associated-pr/action.yml
  • .github/actions/console-web-ui-testing/action.yml
  • .github/actions/run-e2e-tests/action.yml
  • .github/actions/slack-pending-deployment-approval/action.yml
  • .github/actions/slack-tests-failed-notification/action.yml
  • .github/workflows/all-ci-unsafe.yml
  • .github/workflows/auto-approval.yml
  • .github/workflows/console-api-release.yml
  • .github/workflows/console-web-release.yml
  • .github/workflows/provider-proxy-release.yml
🚧 Files skipped from review as they are similar to previous changes (6)
  • .github/workflows/console-web-release.yml
  • .github/actions/console-web-ui-testing/action.yml
  • .github/actions/slack-tests-failed-notification/action.yml
  • .github/actions/run-e2e-tests/action.yml
  • .github/workflows/console-api-release.yml
  • .github/workflows/auto-approval.yml

@stalniy stalniy disabled auto-merge March 2, 2026 11:47
@stalniy stalniy enabled auto-merge March 2, 2026 11:47
@stalniy stalniy disabled auto-merge March 2, 2026 11:47
@stalniy stalniy added this pull request to the merge queue Mar 2, 2026
Merged via the queue into main with commit 507b563 Mar 2, 2026
47 checks passed
@stalniy stalniy deleted the chore/fix-associated-pr-refs branch March 2, 2026 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants