Skip to content

ci: give AI read-only access to GitHub, Jira and Notion#5733

Draft
therealemjy wants to merge 1 commit into
mainfrom
ci/extend-ai-knowledge
Draft

ci: give AI read-only access to GitHub, Jira and Notion#5733
therealemjy wants to merge 1 commit into
mainfrom
ci/extend-ai-knowledge

Conversation

@therealemjy

Copy link
Copy Markdown
Member

Changes

  • give AI read-only access to GitHub, Jira and Notion

@therealemjy
therealemjy requested a review from cuzz-venus July 25, 2026 18:46
@changeset-bot

changeset-bot Bot commented Jul 25, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 4497e6a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@vercel

vercel Bot commented Jul 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dapp-preview Ready Ready Preview Jul 25, 2026 6:48pm
dapp-testnet Ready Ready Preview Jul 25, 2026 6:48pm
venus.io Ready Ready Preview Jul 25, 2026 6:48pm

Request Review

@greptile-apps

greptile-apps Bot commented Jul 25, 2026

Copy link
Copy Markdown

Greptile Summary

Adds optional GitHub, Jira, and Notion context integrations.

  • Registers read-only search and content-reading tools for all three providers.
  • Adds CLI- and OAuth-based setup flows, local credential storage, status reporting, and credential-access interception.
  • Documents the integrations and adds supporting command, OAuth, parsing, and output utilities.

Confidence Score: 2/5

The PR is not safe to merge until Jira project scoping and shell-resistant credential isolation are enforced.

Direct Jira reads can return content outside the intended VPD project, while the raw-string shell guard can be evaded to disclose locally stored integration tokens.

Files Needing Attention: .pi/extensions/setup/JiraIntegration/index.ts, .pi/extensions/setup/SetupStorage/index.ts, .pi/extensions/setup/SetupExtension/index.ts

Security Review

Two security boundaries remain unenforced: direct Jira reads can access non-VPD projects, and dynamically constructed shell paths can bypass the local credential-file guard.

Important Files Changed

Filename Overview
.pi/extensions/setup/JiraIntegration/index.ts Adds Jira OAuth/MCP setup and read tools, but direct issue reads do not enforce the VPD project scope.
.pi/extensions/setup/SetupStorage/index.ts Adds protected local credential storage, but its bash protection is bypassable because it checks only literal command substrings.
.pi/extensions/setup/SetupExtension/index.ts Registers the setup workflow and credential-access hook, whose effectiveness depends on the incomplete storage guard.
.pi/extensions/setup/GitHubIntegration/index.ts Adds GitHub CLI authentication and read-only repository, issue, and file tools.
.pi/extensions/setup/NotionIntegration/index.ts Adds Notion CLI setup and read-only page search/read tools.

Reviews (1): Last reviewed commit: "ci: give AI read-only access to GitHub, ..." | Re-trigger Greptile

Comment on lines +445 to +446
fields: [
'key',

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 security Unscoped direct Jira reads

When the AI requests an issue from another project on the selected Jira site, readIssue forwards the unrestricted key through a site-wide read:jira-work session and returns its description and comments, bypassing the VPD scope enforced by Jira search.

How this was verified: The unrestricted issueKey flows directly to getJiraIssue, while only the search path applies scopedJql.

Comment on lines +93 to +100
private containsBlockedCredentialPath(command: string) {
return (
command.includes(BLOCKED_PATH_HINT) ||
command.includes(STORAGE_DIR_PATH_HINT) ||
command.includes(this.credentialsPath) ||
command.includes(this.storageDir)
);
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 security Shell path guard is bypassable

When a bash command constructs the credentials path from separate variables or encoded fragments, these literal includes checks do not match, allowing the command to read the persisted GitHub and Jira tokens into tool output.

How this was verified: The bash guard examines only the raw command for four contiguous path strings rather than enforcing filesystem access to the resolved credential path.

@therealemjy
therealemjy removed the request for review from cuzz-venus July 25, 2026 18:54
@therealemjy
therealemjy marked this pull request as draft July 25, 2026 18:54
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report for ./apps/evm

Status Category Percentage Covered / Total
🔵 Lines 83.17% 52626 / 63268
🔵 Statements 83.17% 52626 / 63268
🔵 Functions 63.57% 698 / 1098
🔵 Branches 72.93% 6074 / 8328
File CoverageNo changed files found.
Generated in workflow #13934 for commit 4497e6a by the Vitest Coverage Report Action

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.

1 participant