Skip to content

feat(eve): authorize approval responders by repository permission - #87

Closed
benpankow wants to merge 1 commit into
vercel-labs:mainfrom
benpankow:ben/eve-authorized-approvers
Closed

feat(eve): authorize approval responders by repository permission#87
benpankow wants to merge 1 commit into
vercel-labs:mainfrom
benpankow:ben/eve-authorized-approvers

Conversation

@benpankow

@benpankow benpankow commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

🔗 Linked issue

Related to vercel/eve#1559.

📚 Description

Adds opt-in responder authorization for Eve write-tool approvals. createGithubTools({ authorizeApprovalResponse }) accepts one policy for all write tools or a per-tool policy map; omitting it preserves existing approval behavior.

import {
  createGithubTools,
  githubRepositoryApprover,
} from '@github-tools/sdk/eve'
import { connectGithubApproverAuth } from '@github-tools/sdk/connect'

const approverAuth = connectGithubApproverAuth('github')

export default createGithubTools({
  // Opt in for every write-tool approval.
  authorizeApprovalResponse: githubRepositoryApprover({
    auth: approverAuth,
    minimumPermission: 'write', // default
  }),
})
import {
  createGithubTools,
  githubRepositoryApprover,
} from '@github-tools/sdk/eve'
import { connectGithubApproverAuth } from '@github-tools/sdk/connect'

export default createGithubTools({
  authorizeApprovalResponse: {
    mergePullRequest: githubRepositoryApprover({
      auth: connectGithubApproverAuth('github'),
      minimumPermission: 'maintain',
    }),
    createIssue: githubRepositoryApprover({
      auth: connectGithubApproverAuth('github'),
      minimumPermission: 'triage',
    }),
  },
})

githubRepositoryApprover() verifies the responder with a user-scoped Vercel Connect credential, then checks their repository permission with the agent token. Request-policy overrides continue to control when approval is requested and cannot remove responder authorization.

🧪 Validation

  • pnpm --filter @github-tools/sdk build
  • pnpm --filter @github-tools/sdk lint
  • pnpm --filter @github-tools/sdk typecheck
  • pnpm --filter @github-tools/sdk test — 59 tests passed
  • Root pnpm build completed SDK and docs builds; the chat Nuxt build ran out of Node heap (exit 137)

📝 Checklist

  • I have linked an issue or discussion.
  • I have updated the documentation accordingly.

@vercel

vercel Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

@benpankow is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions

Copy link
Copy Markdown
Contributor

Thank you for following the naming conventions! 🙏

Signed-off-by: benpankow <ben.pankow@vercel.com>
@benpankow

Copy link
Copy Markdown
Collaborator Author

Superseded by #88, which uses the upstream repository branch and includes the review fixes.

@benpankow benpankow closed this Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant