diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9dd2ca80e..3ea874924 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,17 @@ jobs: access-check: runs-on: ubuntu-latest steps: + - name: Check if user is bot + id: check-bot + run: | + if [[ "${{ github.triggering_actor }}" == "codegen-sh[bot]" ]]; then + echo "is_bot=true" >> $GITHUB_OUTPUT + else + echo "is_bot=false" >> $GITHUB_OUTPUT + fi + - uses: actions-cool/check-user-permission@v2 + if: steps.check-bot.outputs.is_bot != 'true' with: require: write username: ${{ github.triggering_actor }} diff --git a/docs/docs.json b/docs/docs.json index 1b1f62939..49b827c83 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -18,6 +18,7 @@ "pages": [ "introduction/overview", "introduction/capabilities", + "introduction/tools", "introduction/api", "introduction/prompting", "introduction/community", diff --git a/docs/introduction/capabilities.mdx b/docs/introduction/capabilities.mdx index d53b2a8de..14b658806 100644 --- a/docs/introduction/capabilities.mdx +++ b/docs/introduction/capabilities.mdx @@ -5,7 +5,7 @@ icon: "gear" iconType: "solid" --- -Codegen agents come equipped with a versatile set of tools and capabilities designed to seamlessly integrate into your development workflow and automate a wide range of tasks. +Codegen agents, with an underlying architecture based on Claude Code, come equipped with a versatile set of tools and capabilities designed to seamlessly integrate into your development workflow and automate a wide range of tasks. ## Integrated Tool Suites diff --git a/docs/introduction/tools.mdx b/docs/introduction/tools.mdx new file mode 100644 index 000000000..4ae4968dc --- /dev/null +++ b/docs/introduction/tools.mdx @@ -0,0 +1,86 @@ +--- +title: "Available Tools" +sidebarTitle: "Available Tools" +icon: "toolbox" +iconType: "solid" +--- + +Codegen provides a comprehensive set of tools that enable agents to perform a wide range of tasks across different platforms and services. These tools are organized by category and can be used in various contexts, including Slack interactions, GitHub integrations, and Linear workflows. + +## Sandbox Interaction Tools + +| Tool | Description | +| --------------------- | ------------------------------------------------------- | +| `ripgrep_search` | Search the codebase using regex pattern matching | +| `set_active_codebase` | Selects a codebase to be "active" for operations | +| `file_write` | Create new files or completely overwrite existing files | +| `relace_edit` | Make targeted edits to existing files | +| `run_command` | Run a command in a sandboxed environment | + +## Web Search & Browsing + +| Tool | Description | +| ------------------- | ----------------------------------------------------------- | +| `exa_web_search` | Search the web and get content snippets from search results | +| `exa_web_view_page` | View the content of a specific webpage | + +## GitHub + +| Tool | Description | +| ---------------------------- | -------------------------------------------------------------------- | +| `view_all_repos` | View all repositories in the organization | +| `view_repo_history` | View the recent commit history for the codebase | +| `view_commit` | View the details of a commit | +| `search_all_repos` | Search for code across all repositories in the organization | +| `get_repo_default_branch` | Get the name of the default branch for the repository | +| `create_pr` | Create a PR for the current branch | +| `view_pr` | View the diff and associated context for a pull request | +| `list_pr_checks` | List the check suites for a PR | +| `view_workflow_run` | View a workflow run | +| `github_assign_pr_reviewers` | Assign a reviewer to a GitHub PR | +| `edit_pr_meta` | Edit a PR's title and/or body and/or state | +| `create_pr_comment` | Create a general comment on a pull request | +| `create_pr_review_comment` | Create an inline review comment on a specific line in a pull request | +| `github_create_issue` | Create a new GitHub issue in the repository | +| `view_issue` | View the details of a GitHub issue | +| `create_issue_comment` | Create a general comment on an issue | +| `search_issues` | Search for GitHub issues/PRs using a query string | + +## Linear + +| Tool | Description | +| ---------------------------------- | --------------------------------------------------------- | +| `linear_create_issue` | Create a new Linear issue | +| `linear_get_issue` | Get details of a Linear issue by its ID | +| `linear_update_issue` | Update an existing Linear issue | +| `linear_comment_on_issue` | Add a comment to a Linear issue | +| `linear_get_issue_comments` | Get all comments on a Linear issue | +| `linear_search_issues` | Search for Linear issues with flexible filtering options | +| `linear_assign_issue_to_cycle` | Assign a Linear issue to a cycle | +| `linear_get_teams` | Get all Linear teams the authenticated user has access to | +| `linear_search_teams` | Search for Linear teams using a search string | +| `linear_search_projects` | Search for Linear projects using a search string | +| `linear_get_assignees` | Get all users who can be assigned to issues in a team | +| `linear_search_users` | Search for Linear users using a search string | +| `linear_get_issue_states` | Get all states for issues in a team | +| `linear_get_issue_priority_values` | Get all issue priority values | +| `linear_get_issue_labels` | Get all labels for issues in a team | +| `linear_get_active_cycle` | Get the active cycle for a Linear team | +| `linear_get_cycles` | Get all cycles for a Linear team | +| `linear_get_cycle_issues` | Get all issues in a Linear cycle | + +## User Information + +| Tool | Description | +| ------------- | ----------------------------------------------------------- | +| `who_is_user` | Returns information about the user you are interacting with | + +## Communication + +| Tool | Description | +| -------------- | ------------------------ | +| `send_message` | Send a message via Slack | + +## Tool Availability by Organization + +Note that tool availability may vary by organization settings. Some organizations may have certain tools disabled, such as SQL database access or PR creation capabilities.