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
25 changes: 20 additions & 5 deletions .agent/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -407,14 +407,20 @@ Subagents provide specialized capabilities. Read them when tasks require domain

## Getting Started

Run `setup.sh` from the aidevops repository to install agents locally:
**Installation:**

```bash
cd ~/Git/aidevops
./setup.sh
# npm (recommended)
npm install -g aidevops

# Homebrew
brew install marcusquinn/tap/aidevops

# curl (manual)
bash <(curl -fsSL https://aidevops.sh)
```

This copies agents to `~/.aidevops/agents/` and configures AI assistants.
This installs the CLI and deploys agents to `~/.aidevops/agents/`.

**Initialize aidevops in any project:**

Expand All @@ -434,9 +440,18 @@ aidevops features # List available features
| `aidevops upgrade-planning` | Upgrade TODO.md/PLANS.md to latest templates |
| `aidevops features` | List available features |
| `aidevops status` | Check installation status |
| `aidevops update` | Update to latest version |
| `aidevops update` | Update framework + check registered projects |
| `aidevops upgrade` | Alias for update |
| `aidevops repos` | List registered projects |
| `aidevops repos add` | Register current project |
| `aidevops detect` | Find unregistered aidevops projects |
| `aidevops update-tools` | Check for outdated tools |
| `aidevops uninstall` | Remove aidevops |

**Project tracking:** When you run `aidevops init`, the project is registered in `~/.config/aidevops/repos.json`. Running `aidevops update` will check all registered projects and offer to update their `.aidevops.json` version.

**Auto-detection:** When you clone a repo that has `.aidevops.json`, the CLI will suggest registering it. Run `aidevops detect` to scan `~/Git/` for unregistered projects.

For AI-assisted setup guidance, see `aidevops/setup.md`.

## Progressive Disclosure
Expand Down
1 change: 1 addition & 0 deletions .agent/scripts/full-loop-helper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ readonly STATE_FILE="${STATE_DIR}/full-loop.local.md"
# Legacy state directory (for backward compatibility during migration)
# shellcheck disable=SC2034 # Defined for documentation, used in cancel checks
readonly LEGACY_STATE_DIR=".claude"
# shellcheck disable=SC2034 # Defined for backward compatibility path reference
readonly LEGACY_STATE_FILE="${LEGACY_STATE_DIR}/full-loop.local.md"

# Default settings
Expand Down
68 changes: 32 additions & 36 deletions .agent/scripts/version-manager.sh
Original file line number Diff line number Diff line change
Expand Up @@ -595,60 +595,56 @@ generate_release_notes() {
IFS='.' read -r major minor patch <<< "$version"

cat << EOF
🚀 **AI DevOps Framework v$version**
## AI DevOps Framework v$version

## 📋 **What's New in v$version**
### Installation

### ✨ **Key Features**
- Enhanced framework capabilities and integrations
- Improved documentation and user experience
- Quality improvements and bug fixes
- Updated service integrations and configurations
\`\`\`bash
# npm (recommended)
npm install -g aidevops

### 🔧 **Technical Improvements**
- Framework optimization and performance enhancements
- Security updates and best practices implementation
- Documentation updates and clarity improvements
- Configuration and setup enhancements
# Homebrew
brew install marcusquinn/tap/aidevops

### 📊 **Framework Status**
- **27+ Service Integrations**: Complete DevOps ecosystem coverage
- **Enterprise Security**: Zero credential exposure patterns
- **Quality Monitoring**: A+ grades across all platforms
- **Professional Versioning**: Semantic version management
- **Comprehensive Documentation**: 18,000+ lines of guides
# curl
bash <(curl -fsSL https://aidevops.sh)
\`\`\`

### What's New

See [CHANGELOG.md](CHANGELOG.md) for detailed changes.

### Quick Start

## 🚀 **Quick Start**
\`\`\`bash
# Check installation
aidevops status

`bash`
# Clone the repository
git clone https://github.com/marcusquinn/aidevops.git
cd aidevops
# Initialize in a project
aidevops init

# Run setup wizard
bash setup.sh
# Update framework + projects
aidevops update

# Configure your services
# Follow the comprehensive documentation in .agent/
# List registered projects
aidevops repos
\`\`\`

## 📚 **Documentation**
### Documentation

- **[Setup Guide](README.md)**: Complete framework setup
- **[API Integrations](.agent/API-INTEGRATIONS.md)**: 27+ service APIs
- **[Security Guide](.agent/SECURITY.md)**: Enterprise security practices
- **[MCP Integration](.agent/MCP-INTEGRATIONS.md)**: Real-time AI data access
- **[User Guide](.agent/AGENTS.md)**: AI assistant integration
- **[API Integrations](.agent/aidevops/api-integrations.md)**: Service APIs

### Links

## 🔗 **Links**
- **Website**: https://aidevops.sh
- **Repository**: https://github.com/marcusquinn/aidevops
- **Documentation**: Available in repository
- **Issues**: https://github.com/marcusquinn/aidevops/issues
- **Discussions**: https://github.com/marcusquinn/aidevops/discussions

---

**Full Changelog**: https://github.com/marcusquinn/aidevops/compare/v1.0.0...v$version

**Copyright © Marcus Quinn 2025** - All rights reserved under MIT License
EOF
return 0
}
Expand Down
7 changes: 7 additions & 0 deletions .codacy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ engines:
- 'configs/**'
- 'tests/**'

# Security analysis
semgrep:
enabled: true
exclude_paths:
- 'scripts/**' # npm postinstall paths are safe (package-relative)

# Documentation analysis
markdownlint:
enabled: true
Expand All @@ -28,6 +34,7 @@ engines:
exclude_paths:
- 'configs/**'
- 'tests/**'
- 'scripts/**' # npm postinstall uses CommonJS for Node.js compatibility

exclude_paths:
# Exclude generated or third-party files
Expand Down
137 changes: 137 additions & 0 deletions .github/workflows/publish-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
name: Publish Packages

on:
release:
types: [published]
workflow_dispatch:
inputs:
version:
description: 'Version to publish (e.g., 2.52.1)'
required: true

jobs:
publish-npm:
name: Publish to npm
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'

- name: Get version
id: version
env:
INPUT_VERSION: ${{ github.event.inputs.version }}
run: |
if [ -n "$INPUT_VERSION" ]; then
echo "version=$INPUT_VERSION" >> $GITHUB_OUTPUT
else
echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT
fi

- name: Update package.json version
env:
PKG_VERSION: ${{ steps.version.outputs.version }}
run: |
npm version "$PKG_VERSION" --no-git-tag-version --allow-same-version

- name: Publish to npm
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN_MARCUSQUINN }}

- name: Summary
env:
PKG_VERSION: ${{ steps.version.outputs.version }}
run: |
echo "## npm Package Published" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Version:** $PKG_VERSION" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Install with:" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "npm install -g aidevops" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY

update-homebrew-tap:
name: Update Homebrew Tap
runs-on: ubuntu-latest
needs: publish-npm
permissions:
contents: write

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Get version and SHA
id: release
env:
INPUT_VERSION: ${{ github.event.inputs.version }}
run: |
if [ -n "$INPUT_VERSION" ]; then
VERSION="$INPUT_VERSION"
else
VERSION=$(cat VERSION)
fi
echo "version=$VERSION" >> $GITHUB_OUTPUT

# Get SHA256 of the release tarball (fail on HTTP errors)
TARBALL_URL="https://github.com/marcusquinn/aidevops/archive/refs/tags/v${VERSION}.tar.gz"
if ! SHA256=$(curl -fsSL "$TARBALL_URL" | sha256sum | cut -d' ' -f1); then
echo "::error::Failed to download tarball for SHA256 calculation"
exit 1
fi
echo "sha256=$SHA256" >> $GITHUB_OUTPUT

- name: Update Homebrew formula
env:
RELEASE_VERSION: ${{ steps.release.outputs.version }}
RELEASE_SHA256: ${{ steps.release.outputs.sha256 }}
run: |
# Update the formula with new version and SHA
sed -i "s|url \"https://github.com/marcusquinn/aidevops/archive/refs/tags/v.*\.tar\.gz\"|url \"https://github.com/marcusquinn/aidevops/archive/refs/tags/v${RELEASE_VERSION}.tar.gz\"|" homebrew/aidevops.rb
sed -i "s|sha256 \".*\"|sha256 \"${RELEASE_SHA256}\"|" homebrew/aidevops.rb

- name: Push to homebrew-tap repo
# Pinned to commit SHA for security
uses: dmnemec/copy_file_to_another_repo_action@bbebd3da22e4a37d04dca5f782edd5201cb97083
env:
API_TOKEN_GITHUB: ${{ secrets.HOMEBREW_TAP_TOKEN }}
with:
source_file: 'homebrew/aidevops.rb'
destination_repo: 'marcusquinn/homebrew-tap'
destination_folder: 'Formula'
user_email: 'github-actions[bot]@users.noreply.github.com'
user_name: 'github-actions[bot]'
commit_message: 'Update aidevops to v${{ steps.release.outputs.version }}'
continue-on-error: true

- name: Summary
env:
RELEASE_VERSION: ${{ steps.release.outputs.version }}
RELEASE_SHA256: ${{ steps.release.outputs.sha256 }}
run: |
echo "## Homebrew Tap Updated" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Version:** $RELEASE_VERSION" >> $GITHUB_STEP_SUMMARY
echo "**SHA256:** $RELEASE_SHA256" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Install with:" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "brew install marcusquinn/tap/aidevops" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Note:** If the tap repo doesn't exist yet, create it first:" >> $GITHUB_STEP_SUMMARY
echo "1. Create repo: marcusquinn/homebrew-tap" >> $GITHUB_STEP_SUMMARY
echo "2. Add Formula/ directory" >> $GITHUB_STEP_SUMMARY
echo "3. Set HOMEBREW_TAP_TOKEN secret with repo write access" >> $GITHUB_STEP_SUMMARY
Loading