Skip to content
Merged
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
104 changes: 104 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Bug Report
description: Report a bug in the Strands Agents Evals
title: "[BUG] "
labels: ["bug", "triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report for Strands Agents Evals!
- type: checkboxes
id: "checks"
attributes:
label: "Checks"
options:
- label: "I have updated to the lastest minor and patch version of Strands and evals"
required: true
- label: "I have checked the documentation and this is not expected behavior"
required: true
- label: "I have searched [./issues](./issues?q=) and there are no duplicates of my issue"
required: true
- type: input
id: strands-version
attributes:
label: Strands Version
description: Which version of Strands are you using?
placeholder: e.g., 0.5.2
validations:
required: true
- type: input
id: strands-evals-version
attributes:
label: Strands Evals Version
description: Which version of Strands Evals are you using?
placeholder: e.g., 0.5.2
validations:
required: true
- type: input
id: python-version
attributes:
label: Python Version
description: Which version of Python are you using?
placeholder: e.g., 3.10.5
validations:
required: true
- type: input
id: os
attributes:
label: Operating System
description: Which operating system are you using?
placeholder: e.g., macOS 12.6
validations:
required: true
- type: dropdown
id: installation-method
attributes:
label: Installation Method
description: How did you install Strands?
options:
- pip
- git clone
- binary
- other
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to Reproduce
description: Detailed steps to reproduce the behavior
placeholder: |
1. Code Snippet (Minimal reproducible example)
2. Install Strands using...
3. Run the command...
4. See error...
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected Behavior
description: A clear description of what you expected to happen
validations:
required: true
- type: textarea
id: actual-behavior
attributes:
label: Actual Behavior
description: What actually happened
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Any other relevant information, logs, screenshots, etc.
- type: textarea
id: possible-solution
attributes:
label: Possible Solution
description: Optional - If you have suggestions on how to fix the bug
- type: input
id: related-issues
attributes:
label: Related Issues
description: Optional - Link to related issues if applicable
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Strands Agents SDK Support
url: https://github.com/strands-agents/sdk-python/discussions
about: Please ask and answer questions here
- name: Strands Agents SDK Documentation
url: https://github.com/strands-agents/docs
about: Visit our documentation for help
41 changes: 41 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Feature Request
description: Suggest a new feature or enhancement for Strands Agents SDK
title: "[FEATURE] "
labels: ["enhancement", "triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thanks for suggesting a new feature for Strands Agents SDK!
- type: textarea
id: problem-statement
attributes:
label: Problem Statement
description: Describe the problem you're trying to solve. What is currently difficult or impossible to do?
placeholder: I would like Strands to...
validations:
required: true
- type: textarea
id: proposed-solution
attributes:
label: Proposed Solution
description: Optional - Describe your proposed solution in detail. How would this feature work?
- type: textarea
id: use-case
attributes:
label: Use Case
description: Provide specific use cases for the feature. How would people use it?
placeholder: This would help with...
validations:
required: true
- type: textarea
id: alternatives-solutions
attributes:
label: Alternatives Solutions
description: Optional - Have you considered alternative approaches? What are their pros and cons?
- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Include any other context, screenshots, code examples, or references that might help understand the feature request.
38 changes: 38 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## Description
<!-- Provide a detailed description of the changes in this PR -->

## Related Issues

<!-- Link to related issues using #issue-number format -->

## Documentation PR

<!-- Link to related associated PR in the agent-docs repo -->

## Type of Change

<!-- Choose one of the following types of changes, delete the rest -->

Bug fix
New feature
Breaking change
Documentation update
Other (please describe):

## Testing

How have you tested the change? Verify that the changes do not break functionality or introduce warnings in consuming repositories: agents-docs, agents-tools, agents-cli

- [ ] I ran `hatch run prepare`

## Checklist
- [ ] I have read the CONTRIBUTING document
- [ ] I have added any necessary tests that prove my fix is effective or my feature works
- [ ] I have updated the documentation accordingly
- [ ] I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
- [ ] My changes generate no new warnings
- [ ] Any dependent changes have been merged and published

----

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
20 changes: 20 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 100
commit-message:
prefix: ci
groups:
dev-dependencies:
patterns:
- "pytest"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 100
commit-message:
prefix: ci
73 changes: 73 additions & 0 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Secure Integration test

on:
pull_request_target:
branches: main

jobs:
authorization-check:
permissions: read-all
runs-on: ubuntu-latest
outputs:
approval-env: ${{ steps.collab-check.outputs.result }}
steps:
- name: Collaborator Check
uses: actions/github-script@v7
id: collab-check
with:
result-encoding: string
script: |
try {
const permissionResponse = await github.rest.repos.getCollaboratorPermissionLevel({
owner: context.repo.owner,
repo: context.repo.repo,
username: context.payload.pull_request.user.login,
});
const permission = permissionResponse.data.permission;
const hasWriteAccess = ['write', 'admin'].includes(permission);
if (!hasWriteAccess) {
console.log(`User ${context.payload.pull_request.user.login} does not have write access to the repository (permission: ${permission})`);
return "manual-approval"
} else {
console.log(`Verifed ${context.payload.pull_request.user.login} has write access. Auto Approving PR Checks.`)
return "auto-approve"
}
} catch (error) {
console.log(`${context.payload.pull_request.user.login} does not have write access. Requiring Manual Approval to run PR Checks.`)
return "manual-approval"
}
check-access-and-checkout:
runs-on: ubuntu-latest
needs: authorization-check
environment: ${{ needs.authorization-check.outputs.approval-env }}
permissions:
id-token: write
pull-requests: read
contents: read
steps:
- name: Configure Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.STRANDS_INTEG_TEST_ROLE }}
aws-region: us-east-1
mask-aws-account-id: true
- name: Checkout head commit
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }} # Pull the commit from the forked repo
persist-credentials: false # Don't persist credentials for subsequent actions
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: |
pip install --no-cache-dir hatch
- name: Run integration tests
env:
AWS_REGION: us-east-1
AWS_REGION_NAME: us-east-1 # Needed for LiteLLM
STRANDS_TEST_API_KEYS_SECRET_NAME: ${{ secrets.STRANDS_TEST_API_KEYS_SECRET_NAME }}
id: tests
run: |
hatch test tests_integ
19 changes: 19 additions & 0 deletions .github/workflows/pr-and-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Pull Request and Push Action

on:
pull_request: # Safer than pull_request_target for untrusted code
branches: [ main ]
types: [opened, synchronize, reopened, ready_for_review]
push:
branches: [ main ] # Also run on direct pushes to main
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
call-test-lint:
uses: ./.github/workflows/test-lint.yml
permissions:
contents: read
with:
ref: ${{ github.event.pull_request.head.sha }}
Loading