Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .biomejs/ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
codegen-examples/
14 changes: 10 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ on:
jobs:
access-check:
runs-on: ubuntu-latest
# Skip permission check for the Codegen bot
if: ${{ github.triggering_actor != 'codegen-sh[bot]' }}
steps:
- uses: actions-cool/check-user-permission@v2
with:
Expand All @@ -21,7 +23,8 @@ jobs:
error-if-missing: true

unit-tests:
needs: access-check
# If the triggering actor is the Codegen bot, don't wait for access-check
needs: ${{ github.triggering_actor != 'codegen-sh[bot]' && 'access-check' || '' }}
runs-on: ubuntu-latest-8
steps:
- uses: actions/checkout@v4
Expand All @@ -48,7 +51,8 @@ jobs:
codecov_token: ${{ secrets.CODECOV_TOKEN }}

codemod-tests:
needs: access-check
# If the triggering actor is the Codegen bot, don't wait for access-check
needs: ${{ github.triggering_actor != 'codegen-sh[bot]' && 'access-check' || '' }}
# TODO: re-enable when this check is a develop required check
if: false
runs-on: ubuntu-latest-32
Expand Down Expand Up @@ -90,7 +94,8 @@ jobs:
GITHUB_WORKSPACE: $GITHUB_WORKSPACE

parse-tests:
needs: access-check
# If the triggering actor is the Codegen bot, don't wait for access-check
needs: ${{ github.triggering_actor != 'codegen-sh[bot]' && 'access-check' || '' }}
if: contains(github.event.pull_request.labels.*.name, 'parse-tests') || github.event_name == 'push' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest-32
steps:
Expand Down Expand Up @@ -161,7 +166,8 @@ jobs:
}

integration-tests:
needs: access-check
# If the triggering actor is the Codegen bot, don't wait for access-check
needs: ${{ github.triggering_actor != 'codegen-sh[bot]' && 'access-check' || '' }}
runs-on: ubuntu-latest-16
steps:
- uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ repos:
- id: biome-check
language: node
additional_dependencies: ["@biomejs/biome@1.9.4"]
exclude: (src/codemods/eval)|(tests/unit/skills/snapshots)|(tests/unit/codegen/sdk/output)|(tests/integration/verified_codemods)|(docs/samples)
exclude: (src/codemods/eval)|(tests/unit/skills/snapshots)|(tests/unit/codegen/sdk/output)|(tests/integration/verified_codemods)|(docs/samples)|(codegen-examples)
- repo: https://github.com/MarcoGorelli/cython-lint
rev: v0.16.6
hooks:
Expand Down
55 changes: 50 additions & 5 deletions docs/integrations/slack.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,19 @@ icon: "slack"

Connect Codegen to your Slack workspace to enable seamless communication between agents and your team.

<div className="add-to-slack-container" style={{ textAlign: 'center', margin: '2rem 0' }}>
<a href="https://codegen.sh/integrations" className="add-to-slack-button">
<img
alt="Add to Slack"
height="40"
width="139"
src="https://platform.slack-edge.com/img/add_to_slack.png"
srcSet="https://platform.slack-edge.com/img/add_to_slack.png 1x, https://platform.slack-edge.com/img/add_to_slack@2x.png 2x"
/>
</a>
<p style={{ marginTop: '0.5rem', fontSize: '0.9rem' }}>Click the button above to install Codegen in your Slack workspace</p>
</div>

## Capabilities & Functions

Codegen functions as a full-fledged software engineer that you can interact with directly through Slack. When responding to messages in Slack, Codegen can:
Expand All @@ -22,14 +35,14 @@ All of these capabilities are accessible through natural language interactions i

## Installation

Add the Codegen app for Slack to your workspace to enable agent communication.
Add the Codegen integration for Slack to your workspace to enable agent communication.

<Card
title="Add Codegen to Slack"
icon="slack"
href="https://codegen.sh/integrations"
>
Install the Codegen app for Slack from the Slack Marketplace and choose the
Install the Codegen integration for Slack from the Slack Marketplace and choose the
channels it can access.
</Card>

Expand All @@ -38,18 +51,50 @@ Add the Codegen app for Slack to your workspace to enable agent communication.
appropriate places.
</Note>

## Configuration Instructions

After installing the integration for Slack from the Slack Marketplace, follow these steps to configure it for your team:

### Channel Setup
- **Create a dedicated channel**: We recommend creating a channel like `#codegen` for general agent interactions.
- **Invite the Codegen bot**: Type `/invite @codegen` in any channel where you want Codegen to participate.

### Trigger Configuration
Codegen agents can be triggered in several ways:
- **Direct mentions**: Type `@codegen` followed by your request in any channel where the bot is present.
- **Thread replies**: Reply to a Codegen message in a thread to continue the conversation.
- **Direct messages**: Send a DM to the Codegen bot for private conversations.

### Notification Settings
Configure which events trigger notifications in Slack:
1. Go to your [Codegen Dashboard](https://codegen.sh/settings/notifications)
2. Under "Notification Settings", select which events should post to Slack:
- PR creation and updates
- Build failures
- Deployment events
- Agent task completions
3. Choose which channels should receive different types of notifications

### Permission Management
For security, you can control which team members can interact with Codegen:
1. Go to your [Codegen Dashboard](https://codegen.sh/settings/permissions)
2. Under "Slack Permissions", configure:
- Which users can trigger agent actions
- Which repositories can be accessed via Slack commands
- What level of access is permitted (read-only, PR creation, etc.)

## Message Response Behavior

Codegen responds to the following messages in Slack:

- **Direct Messages:**

- Responds to any DM sent to the Codegen app for Slack
- Responds to any DM sent to the Codegen integration for Slack
- Has visibility into previous messages in the conversation (not just threaded replies)
- This provides a more natural conversation experience as many users don't thread messages in DMs

- **Channel Messages:**
- Responds to any message that @mentions Codegen in channels where the app for Slack is installed
- Responds to any message that @mentions Codegen in channels where the integration for Slack is installed
- Only has visibility into the local context of the thread/conversation
- Sending subsequent messages within a thread routes to the same agent
- New messages in an active thread will interrupt the agent if it's currently working
Expand All @@ -64,4 +109,4 @@ Codegen responds to the following messages in Slack:

**User Permissions and Access Control:**

Codegen's actions on connected repositories are governed by the permissions of the user who initiated the interaction via Slack. The bot itself does not have independent permissions to repositories. Access to repositories and the ability to trigger actions are determined by the Codegen user's authenticated account and their associated repository permissions. We recommend configuring channel access carefully during installation to ensure the Codegen app for Slack is only present in channels where its use is appropriate.
Codegen's actions on connected repositories are governed by the permissions of the user who initiated the interaction via Slack. The bot itself does not have independent permissions to repositories. Access to repositories and the ability to trigger actions are determined by the Codegen user's authenticated account and their associated repository permissions. We recommend configuring channel access carefully during installation to ensure the Codegen integration for Slack is only present in channels where its use is appropriate.
Loading