Skip to content
Closed
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
33 changes: 33 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Copilot Instructions — seclab-taskflows

## Project

- **Name**: seclab-taskflows
- **Organization**: AiFeatures (fork from GitHubSecurityLab)
- **Enterprise**: iAiFy
- **Description**: Security lab task flows and automation templates

## Conventions

- Use kebab-case for file and directory names
- Use conventional commits (feat:, fix:, chore:, docs:, refactor:, test:)
- All PRs require review before merge
- Branch from main, merge back to main

## Shared Infrastructure

- Reusable workflows: Ai-road-4-You/enterprise-ci-cd@v1
- Composite actions: Ai-road-4-You/github-actions@v1
- Governance standards: Ai-road-4-You/governance

## Quality Standards

- Run lint and tests before submitting PRs
- Keep dependencies updated via Dependabot
- No hardcoded secrets — use GitHub Secrets or environment variables
- Follow OWASP Top 10 security practices

## AgentHub Integration
- Skills: `.agents/skills/` in this repo links to shared AgentHub skills
- 14 shared agents available
- MCP: 12 servers (GitHub, Supabase, Playwright, MongoDB, Notion, HuggingFace, etc.)
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
35 changes: 5 additions & 30 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,14 @@ name: Python CI

on:
push:
branches: [ main ]
branches: [main]
pull_request:
branches: [ main ]
branches: [main]

permissions:
contents: read

jobs:
test:
name: Run Tests ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.11', '3.13'] # the one we have in the Codespace + the latest supported one by PyO3.
fail-fast: false # Continue testing other version(s) if one fails

steps:
- name: Checkout repository
uses: actions/checkout@v5

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'


- name: Install Hatch
run: pip install --upgrade hatch

- name: Run static analysis
run: hatch fmt --linter --check

- name: Run tests
run: hatch test --python ${{ matrix.python-version }} --cover --randomize --parallel --retries 2 --retry-delay 1
ci:
uses: Ai-road-4-You/enterprise-ci-cd/.github/workflows/ci-python.yml@v1
secrets: inherit
18 changes: 18 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Docker

on:
push:
branches: [main]
pull_request:
branches: [main]

permissions:
contents: read
packages: write

jobs:
docker:
uses: Ai-road-4-You/enterprise-ci-cd/.github/workflows/ci-docker.yml@v1
with:
tags-override: latest
secrets: inherit
14 changes: 14 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Release

on:
push:
tags:
- "v*"

permissions:
contents: write

jobs:
release:
uses: Ai-road-4-You/enterprise-ci-cd/.github/workflows/release.yml@v1
secrets: inherit
18 changes: 18 additions & 0 deletions .github/workflows/security-scan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Security Scan

on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: "0 6 * * 1"

permissions:
contents: read
security-events: write

jobs:
security:
uses: Ai-road-4-You/enterprise-ci-cd/.github/workflows/security-scan.yml@v1
secrets: inherit
47 changes: 43 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,47 @@
*.log
# =============================================================================
# Cross-language / cross-platform ignore rules
# =============================================================================

# OS junk
.DS_Store
Thumbs.db

# Editor / IDE temp files
*.bak
*.swp
*.swo
.idea/
.vscode/
*.sublime-workspace
*.sublime-project

# Node / JS / TS
node_modules/
.next/
.nuxt/

# Terraform
.terraform/
*.tfstate
*.tfstate.*

# Generic build / coverage artifacts
coverage/

# Environment files (broad glob)
.env*
!.env.example

# Direnv
.direnv
.envrc

# =============================================================================
# Python-specific (from github/gitignore)
# =============================================================================

*.log

# https://github.com/github/gitignore/blob/main/Python.gitignore
# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down Expand Up @@ -133,9 +173,8 @@ celerybeat.pid
# SageMath parsed files
*.sage.py

# Environments
.env
.venv
# Environments (`.env*` covered by cross-language section above)
.venv/
env/
venv/
ENV/
Expand Down
47 changes: 47 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# AI Agent Instructions

## Repository: seclab-taskflows

- **Organization**: AiFeatures (fork from GitHubSecurityLab)
- **Enterprise**: iAiFy

## Shared Infrastructure

| Resource | Reference |
|---|---|
| Reusable workflows | `Ai-road-4-You/enterprise-ci-cd@v1` |
| Composite actions | `Ai-road-4-You/github-actions@v1` |
| Governance docs | `Ai-road-4-You/governance` |
| Repo templates | `Ai-road-4-You/repo-templates` |

## Conventions

1. Use **conventional commits** (`feat:`, `fix:`, `chore:`, `docs:`, `refactor:`, `test:`)
2. Create **feature branches** for all changes
3. Never push directly to `main`
4. Run tests before submitting PR
5. Keep dependencies updated via Dependabot
6. All file names in **kebab-case**
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file states “All file names in kebab-case”, but the repo includes several non-kebab-case filenames (e.g., README.md, LICENSE, and this AGENTS.md). Consider clarifying the convention (e.g., apply to new source files / directories) or renaming to match the stated rule to avoid conflicting guidance.

Suggested change
6. All file names in **kebab-case**
6. Use **kebab-case** for new source file and directory names; standard repository metadata files such as `README.md`, `LICENSE`, and `AGENTS.md` may keep their conventional names

Copilot uses AI. Check for mistakes.

## Quality Gates

Before merging any PR:

- [ ] Lint passes
- [ ] Tests pass (if test suite exists)
- [ ] No new security vulnerabilities
- [ ] PR has a meaningful description
- [ ] Conventional commit messages used

## Branch Strategy

- `main` — Production-ready, protected
- `feature/*` — New features
- `fix/*` — Bug fixes
- `chore/*` — Maintenance

## Code Review

- CODEOWNERS auto-assigns reviewers
- Self-merge allowed for single-developer workflow
- All changes must go through PR (org ruleset enforced)
22 changes: 22 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# seclab-taskflows

## Overview

Security lab task flows and automation templates.

## Project Structure

- GitHub Security Lab workflows and task definitions

## Conventions

- Use kebab-case for file and directory names
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file recommends kebab-case for file/directory names, but the repo includes many exceptions (e.g., README.md, LICENSE, CLAUDE.md). Consider scoping the rule (e.g., “new source files under src/”) or aligning filenames to avoid contradictory project guidance.

Suggested change
- Use kebab-case for file and directory names
- Use kebab-case for new source files and directories; standard top-level files such as `README.md`, `LICENSE`, and `CLAUDE.md` may keep their conventional names

Copilot uses AI. Check for mistakes.
- Use conventional commits
- Follow security best practices

## AgentHub
- Central hub: `~/AgentHub/`
- Skills: `.agents/skills/` (symlinked to AgentHub shared skills)
- MCP: 12 servers synced across all agents
- Agents: 14 shared agents available
- Hooks: Safety, notification, and logging hooks
28 changes: 28 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
FROM python:3.12-slim AS builder

WORKDIR /build

COPY pyproject.toml README.md ./
COPY src/ ./src/

RUN pip install --no-cache-dir --prefix=/install .

# -----------------------------------------------------------
FROM python:3.12-slim

LABEL org.opencontainers.image.source="https://github.com/AiFeatures/seclab-taskflows" \
org.opencontainers.image.description="Security lab task flows and automation templates" \
org.opencontainers.image.licenses="MIT"

COPY --from=builder /install /usr/local

WORKDIR /app
COPY src/ ./src/

RUN groupadd --system appgroup && useradd --system --gid appgroup appuser
USER appuser

HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD ["python", "-c", "import seclab_taskflows; print('ok')"]

ENTRYPOINT ["python", "-m", "seclab_taskflows"]
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ENTRYPOINT ["python", "-m", "seclab_taskflows"] will fail because the seclab_taskflows package does not define a __main__ module (no src/seclab_taskflows/__main__.py) and there is no console script in pyproject.toml. Update the entrypoint to a runnable module/CLI (e.g., python -m seclab_taskflow_agent ...) or add a __main__.py/console script that provides the intended container command.

Suggested change
ENTRYPOINT ["python", "-m", "seclab_taskflows"]
ENTRYPOINT ["python"]

Copilot uses AI. Check for mistakes.
Loading
Loading