Skip to content

Comments

fix: skip CI MCP server installation when actions:read permission is missing#933

Merged
ashwin-ant merged 1 commit intomainfrom
oct/skip-ci-server-without-permission
Feb 11, 2026
Merged

fix: skip CI MCP server installation when actions:read permission is missing#933
ashwin-ant merged 1 commit intomainfrom
oct/skip-ci-server-without-permission

Conversation

@OctavianGuzu
Copy link
Collaborator

Problem

The github_ci MCP server calls GET /repos/.../actions/runs at startup. When the workflow lacks actions: read permission, GitHub returns a 403, which crashes the MCP server and causes the entire Claude Code process to exit with code 1 ("SDK execution error").

The permission check (checkActionsReadPermission) already existed and logged a warning, but the server was registered unconditionally — so the warning fired and then the server crashed anyway.

Fix

Move the CI server registration into the else branch of the permission check, so it's only installed when actions: read is confirmed. When the permission is missing, we log a warning with actionable guidance and skip installation entirely.

@OctavianGuzu OctavianGuzu marked this pull request as ready for review February 11, 2026 18:55

delete process.env.DEFAULT_WORKFLOW_TOKEN;
});

Copy link
Contributor

Choose a reason for hiding this comment

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

nit: Since this PR changed the warning text, it would be worth asserting that core.warning was called with the expected message (e.g., matching "Skipping CI server installation"). This would guard against regressions in the warning behavior and confirm the graceful-degradation UX, not just the config output.

"The github_ci MCP server requires 'actions: read' permission. " +
"Please ensure your GitHub token has this permission. " +
"Skipping CI server installation. " +
"To enable CI status checks, add 'actions: read' to your workflow permissions. " +
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: The guidance here covers adding actions: read to the workflow's permissions: block, but users of this action also need to set additional_permissions: 'actions: read' in the action's with: inputs (per docs/usage.md). Consider linking to the project's own configuration docs instead of (or in addition to) the generic GitHub token docs, so users can find both steps in one place.

@claude
Copy link
Contributor

claude bot commented Feb 11, 2026

Review Summary

Clean, well-scoped fix. The core change — moving CI server registration into the else branch of the permission check — is correct and addresses the crash described in the PR. The warning message is improved (actionable guidance instead of a vague request), and the new test covers the key scenario.

No blocking issues. Two nits left as inline comments:

  1. Test: The new test verifies github_ci is excluded on 403, but does not assert that core.warning was called. Since this PR changes the warning text, asserting on it would guard the full behavior.
  2. Warning message: The guidance mentions adding actions: read to workflow permissions but omits the additional_permissions action input that is also required. Linking to the project docs would help users find both steps.

One broader observation (pre-existing, not introduced by this PR): the global.fetch mock in beforeEach intercepts all fetch calls across the entire test suite. Today this works because non-CI tests do not reach checkActionsReadPermission, but it could silently mask issues if future tests trigger fetch-based calls. Something to keep in mind for future test additions.

@ashwin-ant ashwin-ant merged commit 8c383c5 into main Feb 11, 2026
41 checks passed
@ashwin-ant ashwin-ant deleted the oct/skip-ci-server-without-permission branch February 11, 2026 19:02
mergify bot added a commit to ArcadeData/arcadedb that referenced this pull request Feb 15, 2026
Bumps the github-actions group with 2 updates: [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) and [github/codeql-action](https://github.com/github/codeql-action).
Updates `anthropics/claude-code-action` from 1.0.46 to 1.0.51
Release notes

*Sourced from [anthropics/claude-code-action's releases](https://github.com/anthropics/claude-code-action/releases).*

> v1.0.51
> -------
>
> **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.51>
>
> v1.0.50
> -------
>
> What's Changed
> --------------
>
> * revert: undo PR checkout fork support and unique branch naming by [`@​ashwin-ant`](https://github.com/ashwin-ant) in [anthropics/claude-code-action#937](https://redirect.github.com/anthropics/claude-code-action/pull/937)
>
> **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.50>
>
> v1.0.49
> -------
>
> What's Changed
> --------------
>
> * fix: replace deprecated :\* with modern \* wildcard in git permissions by [`@​Dave-London`](https://github.com/Dave-London) in [anthropics/claude-code-action#929](https://redirect.github.com/anthropics/claude-code-action/pull/929)
> * fix: skip CI MCP server installation when actions:read permission is missing by [`@​OctavianGuzu`](https://github.com/OctavianGuzu) in [anthropics/claude-code-action#933](https://redirect.github.com/anthropics/claude-code-action/pull/933)
> * Fix/PR checkout branch name conflicts by [`@​kirisame-wang`](https://github.com/kirisame-wang) in [anthropics/claude-code-action#931](https://redirect.github.com/anthropics/claude-code-action/pull/931)
>
> New Contributors
> ----------------
>
> * [`@​OctavianGuzu`](https://github.com/OctavianGuzu) made their first contribution in [anthropics/claude-code-action#933](https://redirect.github.com/anthropics/claude-code-action/pull/933)
> * [`@​kirisame-wang`](https://github.com/kirisame-wang) made their first contribution in [anthropics/claude-code-action#931](https://redirect.github.com/anthropics/claude-code-action/pull/931)
>
> **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.49>
>
> v1.0.48
> -------
>
> What's Changed
> --------------
>
> * Fix PR checkout to support fork PRs by [`@​Tsuesun`](https://github.com/Tsuesun) in [anthropics/claude-code-action#851](https://redirect.github.com/anthropics/claude-code-action/pull/851)
>
> New Contributors
> ----------------
>
> * [`@​Tsuesun`](https://github.com/Tsuesun) made their first contribution in [anthropics/claude-code-action#851](https://redirect.github.com/anthropics/claude-code-action/pull/851)
>
> **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.48>
>
> v1.0.47
> -------
>
> What's Changed
> --------------
>
> * Update claude-opus-4-5 to claude-opus-4-6 in workflow by [`@​ashwin-ant`](https://github.com/ashwin-ant) in [anthropics/claude-code-action#909](https://redirect.github.com/anthropics/claude-code-action/pull/909)
> * fix: skip dev dependencies in CI install step by [`@​Dave-London`](https://github.com/Dave-London) in [anthropics/claude-code-action#919](https://redirect.github.com/anthropics/claude-code-action/pull/919)
>
> New Contributors
> ----------------
>
> * [`@​Dave-London`](https://github.com/Dave-London) made their first contribution in [anthropics/claude-code-action#919](https://redirect.github.com/anthropics/claude-code-action/pull/919)
>
> **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.47>


Commits

* [`ea36d6a`](anthropics/claude-code-action@ea36d6a) chore: bump Claude Code to 2.1.42 and Agent SDK to 0.2.42
* [`c22f7c3`](anthropics/claude-code-action@c22f7c3) revert: undo PR checkout fork support and unique branch naming ([#937](https://redirect.github.com/anthropics/claude-code-action/issues/937))
* [`f669191`](anthropics/claude-code-action@f669191) fix: use unique local branch names for PR checkout to avoid conflicts ([#931](https://redirect.github.com/anthropics/claude-code-action/issues/931))
* [`8c383c5`](anthropics/claude-code-action@8c383c5) fix: skip CI MCP server installation when actions:read permission is missing ...
* [`1bb0e74`](anthropics/claude-code-action@1bb0e74) fix: replace deprecated :\* with modern \* wildcard in git permissions ([#929](https://redirect.github.com/anthropics/claude-code-action/issues/929))
* [`23ed4cb`](anthropics/claude-code-action@23ed4cb) chore: bump Claude Code to 2.1.39 and Agent SDK to 0.2.39
* [`21e3fe0`](anthropics/claude-code-action@21e3fe0) Fix PR checkout to support fork PRs ([#851](https://redirect.github.com/anthropics/claude-code-action/issues/851))
* [`b433f16`](anthropics/claude-code-action@b433f16) chore: bump Claude Code to 2.1.38 and Agent SDK to 0.2.38
* [`7695f78`](anthropics/claude-code-action@7695f78) fix: skip dev dependencies in CI install step ([#919](https://redirect.github.com/anthropics/claude-code-action/issues/919))
* [`d5b01b6`](anthropics/claude-code-action@d5b01b6) Update claude-opus-4-5 to claude-opus-4-6 in workflow ([#909](https://redirect.github.com/anthropics/claude-code-action/issues/909))
* See full diff in [compare view](anthropics/claude-code-action@6c61301...ea36d6a)
  
Updates `github/codeql-action` from 4.32.2 to 4.32.3
Release notes

*Sourced from [github/codeql-action's releases](https://github.com/github/codeql-action/releases).*

> v4.32.3
> -------
>
> * Added experimental support for testing connections to [private package registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries). This feature is not currently enabled for any analysis. In the future, it may be enabled by default for Default Setup. [#3466](https://redirect.github.com/github/codeql-action/pull/3466)


Changelog

*Sourced from [github/codeql-action's changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md).*

> CodeQL Action Changelog
> =======================
>
> See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs.
>
> [UNRELEASED]
> ------------
>
> No user facing changes.
>
> 4.32.3 - 13 Feb 2026
> --------------------
>
> * Added experimental support for testing connections to [private package registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries). This feature is not currently enabled for any analysis. In the future, it may be enabled by default for Default Setup. [#3466](https://redirect.github.com/github/codeql-action/pull/3466)
>
> 4.32.2 - 05 Feb 2026
> --------------------
>
> * Update default CodeQL bundle version to [2.24.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.1). [#3460](https://redirect.github.com/github/codeql-action/pull/3460)
>
> 4.32.1 - 02 Feb 2026
> --------------------
>
> * A warning is now shown in Default Setup workflow logs if a [private package registry is configured](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) using a GitHub Personal Access Token (PAT), but no username is configured. [#3422](https://redirect.github.com/github/codeql-action/pull/3422)
> * Fixed a bug which caused the CodeQL Action to fail when repository properties cannot successfully be retrieved. [#3421](https://redirect.github.com/github/codeql-action/pull/3421)
>
> 4.32.0 - 26 Jan 2026
> --------------------
>
> * Update default CodeQL bundle version to [2.24.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.0). [#3425](https://redirect.github.com/github/codeql-action/pull/3425)
>
> 4.31.11 - 23 Jan 2026
> ---------------------
>
> * When running a Default Setup workflow with [Actions debugging enabled](https://docs.github.com/en/actions/how-tos/monitor-workflows/enable-debug-logging), the CodeQL Action will now use more unique names when uploading logs from the Dependabot authentication proxy as workflow artifacts. This ensures that the artifact names do not clash between multiple jobs in a build matrix. [#3409](https://redirect.github.com/github/codeql-action/pull/3409)
> * Improved error handling throughout the CodeQL Action. [#3415](https://redirect.github.com/github/codeql-action/pull/3415)
> * Added experimental support for automatically excluding [generated files](https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github) from the analysis. This feature is not currently enabled for any analysis. In the future, it may be enabled by default for some GitHub-managed analyses. [#3318](https://redirect.github.com/github/codeql-action/pull/3318)
> * The changelog extracts that are included with releases of the CodeQL Action are now shorter to avoid duplicated information from appearing in Dependabot PRs. [#3403](https://redirect.github.com/github/codeql-action/pull/3403)
>
> 4.31.10 - 12 Jan 2026
> ---------------------
>
> * Update default CodeQL bundle version to 2.23.9. [#3393](https://redirect.github.com/github/codeql-action/pull/3393)
>
> 4.31.9 - 16 Dec 2025
> --------------------
>
> No user facing changes.
>
> 4.31.8 - 11 Dec 2025
> --------------------
>
> * Update default CodeQL bundle version to 2.23.8. [#3354](https://redirect.github.com/github/codeql-action/pull/3354)
>
> 4.31.7 - 05 Dec 2025
> --------------------
>
> * Update default CodeQL bundle version to 2.23.7. [#3343](https://redirect.github.com/github/codeql-action/pull/3343)
>
> 4.31.6 - 01 Dec 2025
> --------------------

... (truncated)


Commits

* [`9e907b5`](github/codeql-action@9e907b5) Merge pull request [#3479](https://redirect.github.com/github/codeql-action/issues/3479) from github/update-v4.32.3-4bf6fa4e2
* [`1814c9f`](github/codeql-action@1814c9f) Update changelog for v4.32.3
* [`4bf6fa4`](github/codeql-action@4bf6fa4) Merge pull request [#3478](https://redirect.github.com/github/codeql-action/issues/3478) from github/mbg/changelog/add-connection-test-entry
* [`9658e23`](github/codeql-action@9658e23) Merge pull request [#3476](https://redirect.github.com/github/codeql-action/issues/3476) from github/henrymercer/retry-auth-errors
* [`be75dd9`](github/codeql-action@be75dd9) Add changelog entry for [#3466](https://redirect.github.com/github/codeql-action/issues/3466)
* [`05bca54`](github/codeql-action@05bca54) Apply suggestion from [`@​Copilot`](https://github.com/Copilot)
* [`2d6b98c`](github/codeql-action@2d6b98c) Merge pull request [#3475](https://redirect.github.com/github/codeql-action/issues/3475) from github/henrymercer/retry-auth-errors
* [`876cecb`](github/codeql-action@876cecb) Avoid requesting features in CCR
* [`43b46a1`](github/codeql-action@43b46a1) Retry API authentication errors since these can be transient
* [`8ad4b6e`](github/codeql-action@8ad4b6e) Merge pull request [#3472](https://redirect.github.com/github/codeql-action/issues/3472) from github/dependabot/github\_actions/dot-github/wor...
* Additional commits viewable in [compare view](github/codeql-action@45cbd0c...9e907b5)
  
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore  major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore  minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore  ` will remove the ignore condition of the specified dependency and ignore conditions
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