Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
6d03121
feat: improve security posture and documentation
pmalarme Feb 18, 2026
311a7da
feat: add CODEOWNERS, enhance workflows, and update documentation
pmalarme Feb 18, 2026
d4953a1
Merge branch 'main' into feature/add-documentation-and-copilot-instru…
pmalarme Feb 18, 2026
ae8a741
feat: enhance documentation and improve code structure in workflows a…
pmalarme Feb 18, 2026
a4d5d4e
feat: add comprehensive documentation and workflows for Python enviro…
pmalarme Feb 18, 2026
de28695
feat: update permissions for pull request handling in security review…
pmalarme Feb 18, 2026
384abd6
feat: update permissions for pull requests in security review workflow
pmalarme Feb 18, 2026
642e7f1
feat: remove outdated Python Docker workflow and update security revi…
pmalarme Feb 18, 2026
226b096
feat: update security review workflow to allow multiple reviewers and…
pmalarme Feb 18, 2026
8442740
feat: update GitHub Actions setup to version 0.46.1 and enhance docum…
pmalarme Feb 18, 2026
b0d203b
feat: enhance security review documentation and add cache memory inst…
pmalarme Feb 18, 2026
e827dad
feat: update GitHub Actions setup to version 0.46.3 and enhance secur…
pmalarme Feb 19, 2026
3242629
feat: update documentation for security review and standardize Copilo…
pmalarme Feb 19, 2026
9d223dd
feat: update documentation and remove deprecated model reference for …
pmalarme Feb 19, 2026
2f93ec8
feat: update documentation and security review configurations for Cop…
pmalarme Feb 19, 2026
18986b0
feat: update security review documentation and add user-specific revi…
pmalarme Feb 19, 2026
ea6a740
Update the reviewer for testing if they are assigned
pmalarme Feb 19, 2026
83bb9d4
feat: update security review documentation and remove user-specific r…
pmalarme Feb 19, 2026
fd7f4e5
feat: enhance documentation and update Copilot instructions for secur…
pmalarme Feb 19, 2026
3f44e21
Initial plan
Copilot Feb 19, 2026
a3d6c8b
Initial plan
Copilot Feb 19, 2026
d7cc09d
Initial plan
Copilot Feb 19, 2026
0df6c86
Initial plan
Copilot Feb 19, 2026
38c93bc
Fix script injection in setup-python-env action by using env var for …
Copilot Feb 19, 2026
24b1cab
fix: pin astral-sh/setup-uv to SHA f0ec1fc # v5.4.2
Copilot Feb 19, 2026
d650789
Initial plan
Copilot Feb 19, 2026
5b3eb09
fix: use persist-credentials: false and explicit token in git remote URL
Copilot Feb 19, 2026
c18d4e9
fix: pin actions/checkout to SHA in all workflow files
Copilot Feb 19, 2026
14d179b
fix: use env var AGENT instead of inline matrix.agent in docker workflow
Copilot Feb 19, 2026
03681a0
Merge pull request #19 from pmalarme/copilot/sub-pr-18
pmalarme Feb 19, 2026
3096d80
Merge pull request #20 from pmalarme/copilot/sub-pr-18-again
pmalarme Feb 19, 2026
7257783
Merge pull request #21 from pmalarme/copilot/sub-pr-18-another-one
pmalarme Feb 19, 2026
7283406
Update .github/workflows/monorepo-release.yml
pmalarme Feb 19, 2026
92397df
Merge pull request #23 from pmalarme/copilot/sub-pr-18-one-more-time
pmalarme Feb 19, 2026
777c851
docs: document GITHUB_TOKEN requirement for release workflows in README
Copilot Feb 19, 2026
a234e18
fix: push to explicit URL instead of modifying git remote to avoid pe…
Copilot Feb 19, 2026
808aa17
fix: apply persist-credentials: false and explicit push URL to python…
Copilot Feb 19, 2026
1675a96
Merge pull request #22 from pmalarme/copilot/sub-pr-18-yet-again
pmalarme Feb 19, 2026
2e35535
Initial plan
Copilot Feb 19, 2026
822d1a9
fix: route action inputs and context values through env vars in shell…
Copilot Feb 19, 2026
bc100f8
Merge pull request #26 from pmalarme/copilot/sub-pr-18
pmalarme Feb 19, 2026
4aeb3bb
Initial plan
Copilot Feb 19, 2026
6270260
Initial plan
Copilot Feb 19, 2026
51f6e4f
Initial plan
Copilot Feb 19, 2026
be0edae
Fix shell injection risk in monorepo-release.yml by using env: variables
Copilot Feb 19, 2026
ba39fa6
Pin actions/upload-pages-artifact and actions/deploy-pages to commit …
Copilot Feb 19, 2026
994a7c4
Initial plan
Copilot Feb 19, 2026
8f22b4f
Pin actions/deploy-pages and actions/upload-pages-artifact to commit …
Copilot Feb 19, 2026
eeeb4f1
Fix: pass github.repository via env in release workflows
Copilot Feb 19, 2026
d39d8a5
Merge pull request #30 from pmalarme/copilot/sub-pr-18-yet-again
pmalarme Feb 19, 2026
99b95d0
Merge pull request #29 from pmalarme/copilot/sub-pr-18-another-one
pmalarme Feb 19, 2026
b7839eb
Merge pull request #28 from pmalarme/copilot/sub-pr-18-again
pmalarme Feb 19, 2026
88f03d2
Merge branch 'feature/add-documentation-and-copilot-instructions' int…
pmalarme Feb 19, 2026
68f287d
Merge pull request #27 from pmalarme/copilot/sub-pr-18
pmalarme Feb 19, 2026
ddb8d5c
Initial plan
Copilot Feb 19, 2026
fcb6186
docs: add security note for extra-args in setup-python-env README
Copilot Feb 19, 2026
5eae4d8
Initial plan
Copilot Feb 19, 2026
69d5b39
Initial plan
Copilot Feb 19, 2026
9288d22
docs: warn against ACTIONS_STEP_DEBUG in release workflows
Copilot Feb 19, 2026
0ab9096
Merge pull request #31 from pmalarme/copilot/sub-pr-18
pmalarme Feb 19, 2026
4f0723c
Merge pull request #33 from pmalarme/copilot/sub-pr-18-another-one
pmalarme Feb 19, 2026
290792f
Use http.extraHeader for git push — token never embedded in URL or wr…
Copilot Feb 19, 2026
bf4d024
Merge branch 'feature/add-documentation-and-copilot-instructions' int…
pmalarme Feb 19, 2026
27d356b
Replace base64+extraHeader with credential.helper — GH_TOKEN used dir…
Copilot Feb 19, 2026
ef7d199
Merge pull request #32 from pmalarme/copilot/sub-pr-18-again
pmalarme Feb 19, 2026
3f70fab
Initial plan
Copilot Feb 19, 2026
1ff1d5e
Initial plan
Copilot Feb 19, 2026
86fdc0b
Initial plan
Copilot Feb 19, 2026
9e76438
Initial plan
Copilot Feb 19, 2026
c287c59
Remove packages:write permission from python-release workflow
Copilot Feb 19, 2026
5dab66f
Fix smoke test to not swallow container exit codes unconditionally
Copilot Feb 19, 2026
c1d98d3
feat: add defensive guard to validate extra-args tokens in setup-pyth…
Copilot Feb 19, 2026
010950b
Remove packages: write permission from python-release workflow
Copilot Feb 19, 2026
e1505f8
Merge pull request #34 from pmalarme/copilot/sub-pr-18
pmalarme Feb 19, 2026
beec10b
Merge pull request #36 from pmalarme/copilot/sub-pr-18-another-one
pmalarme Feb 19, 2026
41695d3
Merge pull request #37 from pmalarme/copilot/sub-pr-18-yet-again
pmalarme Feb 19, 2026
4de087e
Merge pull request #38 from pmalarme/copilot/sub-pr-18-one-more-time
pmalarme Feb 19, 2026
10799dc
Initial plan
Copilot Feb 19, 2026
c1732f3
Initial plan
Copilot Feb 19, 2026
8fa7b55
Initial plan
Copilot Feb 19, 2026
3bc5d88
Add agent name allowlist validation in docker build workflow
Copilot Feb 19, 2026
2bfcc2f
fix: remove -U and --prerelease flags from docs workflow extra-args
Copilot Feb 19, 2026
5379c4d
Add security comments to extra-args validation in setup-python-env ac…
Copilot Feb 19, 2026
6352048
Merge pull request #43 from pmalarme/copilot/sub-pr-18
pmalarme Feb 19, 2026
350d968
Merge pull request #44 from pmalarme/copilot/sub-pr-18-again
pmalarme Feb 19, 2026
263494e
Merge pull request #45 from pmalarme/copilot/sub-pr-18-another-one
pmalarme Feb 19, 2026
d222fcc
Initial plan
Copilot Feb 19, 2026
325ffd7
Initial plan
Copilot Feb 19, 2026
17faad8
Add denylist for dangerous uv sync registry-override flags in setup-p…
Copilot Feb 19, 2026
3f3f6e8
Add NAME/VERSION format validation in python-release.yml
Copilot Feb 19, 2026
dd6d716
Merge pull request #46 from pmalarme/copilot/sub-pr-18
pmalarme Feb 19, 2026
6b2208f
Merge pull request #47 from pmalarme/copilot/sub-pr-18-again
pmalarme Feb 19, 2026
3f53046
feat: refactor security review workflows and documentation
pmalarme Feb 19, 2026
8c56f63
fix: remove unnecessary input from security review job in PR orchestr…
pmalarme Feb 19, 2026
32c0a89
Add PR write for the Code Review Workflow
pmalarme Feb 19, 2026
913241e
feat: reorganize PR orchestrator workflow stages and enhance document…
pmalarme Feb 19, 2026
98f9b13
feat: update workflows to trigger on pull requests and enhance securi…
pmalarme Feb 19, 2026
ed6fdb9
Merge remote-tracking branch 'origin/feature/add-documentation-and-co…
pmalarme Feb 19, 2026
e284741
feat: enhance security review workflows and documentation for clarity
pmalarme Feb 19, 2026
c631770
feat: update workflows and documentation to enhance security posture …
pmalarme Feb 19, 2026
d5c5d79
Update agents/agent1/README.md
pmalarme Feb 19, 2026
33767c0
Initial plan
Copilot Feb 19, 2026
d4b5d60
Initial plan
Copilot Feb 19, 2026
141da55
Initial plan
Copilot Feb 19, 2026
32b1a86
docs: update publish section - publishing disabled by default, no Git…
Copilot Feb 19, 2026
7adf6cd
Initial plan
Copilot Feb 19, 2026
31dd195
Fix incorrect GitHub Packages default in DEVELOPMENT.md
Copilot Feb 19, 2026
aef698c
feat: always include docs group in dev install for security checks
Copilot Feb 19, 2026
ee9fcb6
feat: raise validators coverage threshold to 100% with complete edge …
Copilot Feb 19, 2026
a207e0e
feat: add create-issue command workflow for PR review comments
pmalarme Feb 19, 2026
d205b34
Merge branch 'feature/add-agentic-workflow-and-security-posture' of h…
pmalarme Feb 19, 2026
a01307c
Merge pull request #60 from pmalarme/copilot/sub-pr-51-one-more-time
pmalarme Feb 19, 2026
3622c27
Merge pull request #61 from pmalarme/copilot/sub-pr-51-please-work
pmalarme Feb 19, 2026
8b9a007
fix: add docs-install to setup task and update DEVELOPMENT.md
Copilot Feb 19, 2026
31efbd9
refactor: remove resolve review thread functionality from create-issu…
pmalarme Feb 19, 2026
56cf0e0
Merge pull request #63 from pmalarme/copilot/sub-pr-51-3656f025-f948-…
pmalarme Feb 19, 2026
5ff785e
docs: update README.md to reflect docs group installed via setup
Copilot Feb 19, 2026
bee5322
Merge pull request #62 from pmalarme/copilot/sub-pr-51-ed167b40-bcc9-…
pmalarme Feb 19, 2026
d544758
feat: enhance create-issue command to check for duplicate issues befo…
pmalarme Feb 19, 2026
bc15972
Merge branch 'feature/add-agentic-workflow-and-security-posture' of h…
pmalarme Feb 19, 2026
9de03fd
feat: update create-issue workflow to include concurrency settings
pmalarme Feb 19, 2026
f96ba65
Update .github/workflows/python-release.yml
pmalarme Feb 19, 2026
79a2f34
Merge branch 'main' into feature/add-agentic-workflow-and-security-po…
pmalarme Feb 19, 2026
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 .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.github/workflows/*.lock.yml linguist-generated=true merge=ours
14 changes: 14 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# CODEOWNERS — uncomment and customize after creating a repo from this template.
# See: https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
#
# Default owners for everything in the repo
# * @your-org/your-team
#
# Agent-specific ownership
# agents/agent1/ @your-org/agent1-team
#
# CI / workflow changes require admin review
# .github/ @your-org/platform-team
#
# Documentation
# docs/ @your-org/docs-team
62 changes: 62 additions & 0 deletions .github/actions/setup-python-env/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Setup Python Environment

Composite GitHub Action that sets up [uv](https://docs.astral.sh/uv/) with a
specific Python version and installs project dependencies via `uv sync`.

## Inputs

| Input | Required | Default | Description |
|---|---|---|---|
| `python-version` | No | `"3.13"` | Python version to install (e.g. `"3.13"`, `"3.10"`). |
| `include-docs` | No | `"false"` | When `"true"`, adds `--group docs` to install Sphinx and related packages. |
| `extra-args` | No | `""` | Additional arguments appended to the `uv sync` command. Must be a trusted, static flag string — see [Security note](#security-note) below. |

The base command is always `uv sync --all-extras --dev`. The `include-docs` flag
and `extra-args` extend it.

## Security note

`extra-args` is passed to `uv sync` via an environment variable and intentionally
word-split so that callers can supply multiple flags (e.g.
`--all-packages --prerelease=if-necessary-or-explicit`). A defensive guard
validates each token before execution: every token must start with `-` and
contain only alphanumeric characters and safe flag characters (`=`, `.`, `:`,
`/`, `@`, `+`, `-`). Tokens that do not match this pattern cause the action to
fail immediately with an error. Despite this guard, **only hardcoded, static
strings should be used**. Never pass dynamic values sourced from issue bodies,
PR descriptions, user-controlled inputs, or any other external source, as those
could introduce unexpected `uv sync` flags and alter environment resolution
behaviour.

## Usage

### Minimal (defaults to Python 3.13)

```yaml
- uses: ./.github/actions/setup-python-env
```

### With a Python version matrix

```yaml
- uses: ./.github/actions/setup-python-env
with:
python-version: ${{ matrix.python-version }}
```

### Including docs dependencies

```yaml
- uses: ./.github/actions/setup-python-env
with:
include-docs: "true"
```

### With extra sync arguments

```yaml
- uses: ./.github/actions/setup-python-env
with:
include-docs: "true"
extra-args: "--all-packages -U --prerelease=if-necessary-or-explicit"
```
53 changes: 53 additions & 0 deletions .github/actions/setup-python-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: "Setup Python environment"
description: "Set up uv with Python and install project dependencies."

inputs:
python-version:
description: "Python version to install (e.g. '3.13', '3.10')."
required: false
default: "3.13"
include-docs:
description: "Install the docs dependency group (sphinx, sphinx_autodoc_typehints, …)."
required: false
default: "false"
extra-args:
description: "Additional arguments appended to the `uv sync` command."
required: false
default: ""

runs:
using: composite
steps:
- name: Set up uv
uses: astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb # v5.4.2
with:
python-version: ${{ inputs.python-version }}
enable-cache: true

- name: Install dependencies
shell: bash
env:
EXTRA_ARGS: ${{ inputs.extra-args }}
INCLUDE_DOCS: ${{ inputs.include-docs }}
run: |
args="--all-extras --dev"
if [[ "$INCLUDE_DOCS" == "true" ]]; then
args="$args --group docs"
fi
if [[ -n "$EXTRA_ARGS" ]]; then
# Validate each whitespace-split token: must start with '-' and contain only safe flag characters.
# NOTE: '--' (end-of-options marker) is intentionally allowed; positional args would fail validation.
for arg in $EXTRA_ARGS; do
# Denylist: block flags that could redirect dependency resolution to an attacker-controlled index.
if [[ "$arg" =~ ^--(index-url|extra-index-url|trusted-host|find-links)(=|$) ]]; then
echo "::error::Blocked dangerous extra-args token: '$arg'. Registry overrides are not permitted." >&2
exit 1
fi
if [[ ! "$arg" =~ ^-[a-zA-Z0-9=._:/@+-]+$ ]]; then
echo "::error::Unsafe extra-args token: '$arg'. Each token must start with '-' and contain only safe flag characters." >&2
exit 1
fi
done
fi
# shellcheck disable=SC2086 # intentional word-splitting for uv flags (all tokens validated above)
uv sync $args $EXTRA_ARGS
143 changes: 143 additions & 0 deletions .github/agents/agentic-workflows.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
---
description: GitHub Agentic Workflows (gh-aw) - Create, debug, and upgrade AI-powered workflows with intelligent prompt routing
disable-model-invocation: true
---

# GitHub Agentic Workflows Agent

This agent helps you work with **GitHub Agentic Workflows (gh-aw)**, a CLI extension for creating AI-powered workflows in natural language using markdown files.

## What This Agent Does

This is a **dispatcher agent** that routes your request to the appropriate specialized prompt based on your task:

- **Creating new workflows**: Routes to `create` prompt
- **Updating existing workflows**: Routes to `update` prompt
- **Debugging workflows**: Routes to `debug` prompt
- **Upgrading workflows**: Routes to `upgrade-agentic-workflows` prompt
- **Creating shared components**: Routes to `create-shared-agentic-workflow` prompt

Workflows may optionally include:

- **Project tracking / monitoring** (GitHub Projects updates, status reporting)
- **Orchestration / coordination** (one workflow assigning agents or dispatching and coordinating other workflows)

## Files This Applies To

- Workflow files: `.github/workflows/*.md` and `.github/workflows/**/*.md`
- Workflow lock files: `.github/workflows/*.lock.yml`
- Shared components: `.github/workflows/shared/*.md`
- Configuration: https://github.com/github/gh-aw/blob/v0.46.0/.github/aw/github-agentic-workflows.md

## Problems This Solves

- **Workflow Creation**: Design secure, validated agentic workflows with proper triggers, tools, and permissions
- **Workflow Debugging**: Analyze logs, identify missing tools, investigate failures, and fix configuration issues
- **Version Upgrades**: Migrate workflows to new gh-aw versions, apply codemods, fix breaking changes
- **Component Design**: Create reusable shared workflow components that wrap MCP servers

## How to Use

When you interact with this agent, it will:

1. **Understand your intent** - Determine what kind of task you're trying to accomplish
2. **Route to the right prompt** - Load the specialized prompt file for your task
3. **Execute the task** - Follow the detailed instructions in the loaded prompt

## Available Prompts

### Create New Workflow
**Load when**: User wants to create a new workflow from scratch, add automation, or design a workflow that doesn't exist yet

**Prompt file**: https://github.com/github/gh-aw/blob/v0.46.0/.github/aw/create-agentic-workflow.md

**Use cases**:
- "Create a workflow that triages issues"
- "I need a workflow to label pull requests"
- "Design a weekly research automation"

### Update Existing Workflow
**Load when**: User wants to modify, improve, or refactor an existing workflow

**Prompt file**: https://github.com/github/gh-aw/blob/v0.46.0/.github/aw/update-agentic-workflow.md

**Use cases**:
- "Add web-fetch tool to the issue-classifier workflow"
- "Update the PR reviewer to use discussions instead of issues"
- "Improve the prompt for the weekly-research workflow"

### Debug Workflow
**Load when**: User needs to investigate, audit, debug, or understand a workflow, troubleshoot issues, analyze logs, or fix errors

**Prompt file**: https://github.com/github/gh-aw/blob/v0.46.0/.github/aw/debug-agentic-workflow.md

**Use cases**:
- "Why is this workflow failing?"
- "Analyze the logs for workflow X"
- "Investigate missing tool calls in run #12345"

### Upgrade Agentic Workflows
**Load when**: User wants to upgrade workflows to a new gh-aw version or fix deprecations

**Prompt file**: https://github.com/github/gh-aw/blob/v0.46.0/.github/aw/upgrade-agentic-workflows.md

**Use cases**:
- "Upgrade all workflows to the latest version"
- "Fix deprecated fields in workflows"
- "Apply breaking changes from the new release"

### Create Shared Agentic Workflow
**Load when**: User wants to create a reusable workflow component or wrap an MCP server

**Prompt file**: https://github.com/github/gh-aw/blob/v0.46.0/.github/aw/create-shared-agentic-workflow.md

**Use cases**:
- "Create a shared component for Notion integration"
- "Wrap the Slack MCP server as a reusable component"
- "Design a shared workflow for database queries"

## Instructions

When a user interacts with you:

1. **Identify the task type** from the user's request
2. **Load the appropriate prompt** from the GitHub repository URLs listed above
3. **Follow the loaded prompt's instructions** exactly
4. **If uncertain**, ask clarifying questions to determine the right prompt

## Quick Reference

```bash
# Initialize repository for agentic workflows
gh aw init

# Generate the lock file for a workflow
gh aw compile [workflow-name]

# Debug workflow runs
gh aw logs [workflow-name]
gh aw audit <run-id>

# Upgrade workflows
gh aw fix --write
gh aw compile --validate
```

## Key Features of gh-aw

- **Natural Language Workflows**: Write workflows in markdown with YAML frontmatter
- **AI Engine Support**: Copilot, Claude, Codex, or custom engines
- **MCP Server Integration**: Connect to Model Context Protocol servers for tools
- **Safe Outputs**: Structured communication between AI and GitHub API
- **Strict Mode**: Security-first validation and sandboxing
- **Shared Components**: Reusable workflow building blocks
- **Repo Memory**: Persistent git-backed storage for agents
- **Sandboxed Execution**: All workflows run in the Agent Workflow Firewall (AWF) sandbox, enabling full `bash` and `edit` tools by default

## Important Notes

- Always reference the instructions file at https://github.com/github/gh-aw/blob/v0.46.0/.github/aw/github-agentic-workflows.md for complete documentation
- Use the MCP tool `agentic-workflows` when running in GitHub Copilot Cloud
- Workflows must be compiled to `.lock.yml` files before running in GitHub Actions
- **Bash tools are enabled by default** - Don't restrict bash commands unnecessarily since workflows are sandboxed by the AWF
- Follow security best practices: minimal permissions, explicit network access, no template injection
Loading
Loading