diff --git a/.editorconfig b/.editorconfig
index df2f981..3d9a482 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -13,4 +13,4 @@ quote_type = single
[*.md]
max_line_length = off
-trim_trailing_whitespace = false
\ No newline at end of file
+trim_trailing_whitespace = false
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index da3ef4e..8bacd35 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,44 +1,48 @@
-name: Build and publish
-run-name: Build and publish
+name: Publish Library
+run-name: Publish Library
on:
push:
jobs:
- container:
- name: Build Container
+ build:
+ name: Build NPM Project
runs-on: ubuntu-latest
- container: docker
+ container: node:alpine
steps:
- - name: Build Container
- run: |
- git clone -b "${{github.ref_name}}" "$(echo ${{github.server_url}}/${{github.repository}}.git | sed s%://%://${{github.token}}@% )" .
- DOCKER_HUB=$([ -n "${{secrets.DOCKER_HUB_USER}}" ] && [ -n "${{secrets.DOCKER_HUB_TOKEN}}" ] && [ -n "${{secrets.DOCKER_HUB_IMAGE}}" ] && echo "true" || echo "false")
- REGISTRY="$(echo "${{github.server_url}}" | sed -E 's|https?://||')"
- VERSION="$(cat package.json | grep version | grep -Eo '[0-9][[:alnum:]\.\/\-]+')"
+ - name: Clone Repository
+ uses: ztimson/actions/clone@develop
- docker login -u "${{github.repository_owner}}" -p "${{secrets.DEPLOY_TOKEN}}" "$REGISTRY"
- if [ "$DOCKER_HUB" = "true" ]; then docker login -u "${{secrets.DOCKER_HUB_USER}}" -p "${{secrets.DOCKER_HUB_TOKEN}}" docker.io; fi
+ - name: Install & Build
+ run: npm i && npm run build
- docker build -t "$REGISTRY/${{github.repository}}:${{github.ref_name}}" .
- docker push "$REGISTRY/${{github.repository}}:${{github.ref_name}}"
- if [ "$DOCKER_HUB" = "true" ]; then
- docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:${{github.ref_name}}"
- docker push "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:${{github.ref_name}}"
- fi
+ - name: Publish Library
+ run: |
+ if [ "${{github.ref_name}}" = "master" ]; then
+ REGISTRY="${{github.server_url}}/api/packages/${{github.repository_owner}}/npm/"
+ npm set registry "$REGISTRY"
+ npm set $(echo $REGISTRY | sed s%http:%% | sed s%https:%% ):_authToken "${{secrets.DEPLOY_TOKEN}}"
+ npm publish || echo "Failed to publish"
- if [ "${{github.ref_name}}" = "master" ]; then
- docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "$REGISTRY/${{github.repository}}:$VERSION"
- docker push "$REGISTRY/${{github.repository}}:$VERSION"
- if [ "$DOCKER_HUB" = "true" ]; then
- docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:$VERSION"
- docker push "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:$VERSION"
- fi
+ REGISTRY="https://registry.npmjs.org/"
+ npm set registry "$REGISTRY"
+ npm set $(echo $REGISTRY | sed s%http:%% | sed s%https:%% ):_authToken "${{secrets.NPM_TOKEN}}"
+ npm publish || echo "Failed to publish"
+ fi
+ tag:
+ name: Tag Version
+ needs: build
+ if: ${{github.ref_name}} == 'release'
+ runs-on: ubuntu-latest
+ container: node:alpine
+ steps:
+ - name: Clone Repository
+ uses: ztimson/actions/clone@develop
- docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "$REGISTRY/${{github.repository}}:latest"
- docker push "$REGISTRY/${{github.repository}}:latest"
- if [ "$DOCKER_HUB" = "true" ]; then
- docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:latest"
- docker push "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:latest"
- fi
- fi
+ - name: Get Version Number
+ run: echo "VERSION=$(cat package.json | grep version | grep -Eo ':.+' | grep -Eo '[[:alnum:]\.\/\-]+')" >> $GITHUB_ENV
+
+ - name: Tag Version
+ uses: ztimson/actions/tag@develop
+ with:
+ tag: ${{env.VERSION}}
diff --git a/.github/workflows/review.yml b/.github/workflows/review.yml
index 210fe62..13550a3 100644
--- a/.github/workflows/review.yml
+++ b/.github/workflows/review.yml
@@ -6,7 +6,7 @@ on:
jobs:
review:
runs-on: ubuntu-latest
- container: docker
+ container: node:22
steps:
- name: Fetch code
run: |
@@ -15,17 +15,14 @@ jobs:
git fetch origin ${{ github.event.pull_request.base.ref }}
- name: Run AI Review
- run: |
- echo $GITHUB_WORKSPACE
- docker pull "git.zakscode.com/ztimson/ai-reviewer:test"
- docker run --rm -v $GITHUB_WORKSPACE:/app \
- -e AI_HOST=anthropic \
- -e AI_MODEL=claude-sonnet-4-5 \
- -e AI_TOKEN="${{ secrets.ANTHROPIC_TOKEN }}" \
- -e GIT_HOST="${{ github.server_url }}" \
- -e GIT_OWNER="${{ github.repository_owner }}" \
- -e GIT_REPO="${{ github.event.repository.name }}" \
- -e GIT_TOKEN="${{ secrets.ASSISTANT_TOKEN }}" \
- -e GIT_BRANCH="origin/${{ github.event.pull_request.base.ref }}" \
- -e PULL_REQUEST="${{ github.event.pull_request.number }}" \
- "git.zakscode.com/ztimson/ai-reviewer:test"
+ run: npx -y @ztimson/ai-agents review
+ env:
+ AI_HOST: anthropic
+ AI_MODEL: claude-sonnet-4-5
+ AI_TOKEN: ${{ secrets.ANTHROPIC_TOKEN }}
+ GIT_HOST: ${{ github.server_url }}
+ GIT_OWNER: ${{ github.repository_owner }}
+ GIT_REPO: ${{ github.event.repository.name }}
+ GIT_TOKEN: ${{ secrets.ASSISTANT_TOKEN }}
+ GIT_BRANCH: origin/${{ github.event.pull_request.base.ref }}
+ PULL_REQUEST: ${{ github.event.pull_request.number }}
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 0e56696..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM node:22
-
-COPY . /ai
-RUN cd /ai && npm ci && mkdir -p /app
-
-WORKDIR /app
-ENTRYPOINT ["node", "/ai/src/review.mjs", "/app"]
diff --git a/README.md b/README.md
index 8b9f029..5802b71 100644
--- a/README.md
+++ b/README.md
@@ -6,29 +6,29 @@
-### AI Reviewer
+### AI Agents
-Automated AI-powered code review for pull requests 🤖
+Automated AI-powered agents for automated reviews and code assistance
-[](https://git.zakscode.com/ztimson/ai-reviewer/tags)
-[](https://git.zakscode.com/ztimson/ai-reviewer/pulls)
-[](https://git.zakscode.com/ztimson/ai-reviewer/issues)
+[](https://git.zakscode.com/ztimson/ai-agents/tags)
+[](https://git.zakscode.com/ztimson/ai-agents/pulls)
+[](https://git.zakscode.com/ztimson/ai-agents/issues)
---