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
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: Bug Report
about: Report a bug or unexpected behavior in git-ai
title: '[Bug] '
labels: ['bug', 'triage']
assignees: ''
---

## Bug Description

<!-- A clear and concise description of what the bug is. -->

## Steps to Reproduce

1. Run `git-ai ...`
2. See error

## Expected Behavior

<!-- What you expected to happen. -->

## Actual Behavior

<!-- What actually happened. Include error messages or stack traces if available. -->

## Environment

- **OS:** <!-- e.g. macOS 14, Ubuntu 22.04, Windows 11 -->
- **Node.js version:** <!-- e.g. 20.x -->
- **git-ai version:** <!-- e.g. 1.0.0 -->
- **Git version:** <!-- e.g. 2.43.0 -->
- **AI provider:** <!-- e.g. OpenAI, Gemini -->

## Logs / Stack Trace

```
<!-- Paste any relevant logs or stack traces here. -->
```

## Additional Context

<!-- Any other context about the problem. Screenshots, related issues, etc. -->
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: 💬 Discussion / Question
url: https://github.com/BeyteFlow/git-ai/discussions
about: Ask questions and discuss ideas in GitHub Discussions
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: Feature Request
about: Suggest a new feature or improvement for git-ai
title: '[Feature] '
labels: ['enhancement', 'triage']
assignees: ''
---

## Feature Description

<!-- A clear and concise description of the feature you would like. -->

## Problem It Solves

<!-- Describe the problem or pain point this feature would address. -->
<!-- e.g. "I always have to manually ... when I want to ..." -->

## Proposed Solution

<!-- Describe how you envision this feature working. -->

## Alternatives Considered

<!-- Have you considered any alternative approaches or workarounds? -->

## Additional Context

<!-- Any other context, mockups, or screenshots about the feature request. -->

## Would you be willing to contribute this feature?

- [ ] Yes, I'd like to open a PR for this
- [ ] No, I'm just suggesting
34 changes: 34 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
version: 2
updates:
# Maintain dependencies for npm
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: 'weekly'
day: 'monday'
time: '09:00'
open-pull-requests-limit: 10
labels:
- 'dependencies'
commit-message:
prefix: 'chore(deps)'
prefix-development: 'chore(deps-dev)'
groups:
production-dependencies:
dependency-type: 'production'
development-dependencies:
dependency-type: 'development'

# Maintain dependencies for GitHub Actions
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
day: 'monday'
time: '09:00'
open-pull-requests-limit: 10
labels:
- 'dependencies'
- 'ci/cd'
commit-message:
prefix: 'chore(actions)'
57 changes: 57 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Pull Request auto-labeler configuration
# https://github.com/actions/labeler

'ci/cd':
- changed-files:
- any-glob-to-any-file:
- '.github/**'

'dependencies':
- changed-files:
- any-glob-to-any-file:
- 'package.json'
- 'package-lock.json'
- 'yarn.lock'

'documentation':
- changed-files:
- any-glob-to-any-file:
- '**/*.md'
- 'docs/**'

'cli':
- changed-files:
- any-glob-to-any-file:
- 'src/cli/**'

'core':
- changed-files:
- any-glob-to-any-file:
- 'src/core/**'

'ai':
- changed-files:
- any-glob-to-any-file:
- 'src/services/aiService.ts'

'git':
- changed-files:
- any-glob-to-any-file:
- 'src/services/gitService.ts'

'github':
- changed-files:
- any-glob-to-any-file:
- 'src/services/githubService.ts'

'ui':
- changed-files:
- any-glob-to-any-file:
- 'src/ui/**'

'tests':
- changed-files:
- any-glob-to-any-file:
- '**/*.test.ts'
- '**/*.spec.ts'
- 'tests/**'
42 changes: 42 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
## Description

<!-- A clear and concise description of what this PR does. -->

## Related Issue

<!-- Link to the issue this PR addresses, e.g. Closes #123 -->

Closes #

## Type of Change

<!-- Mark the relevant option with an [x]. -->

- [ ] 🐛 Bug fix (non-breaking change that fixes an issue)
- [ ] ✨ New feature (non-breaking change that adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to change)
- [ ] 📝 Documentation update
- [ ] 🔧 Refactor / internal improvement
- [ ] 🤖 CI/CD or tooling change
- [ ] ⬆️ Dependency update

## Checklist

- [ ] I have read the [CONTRIBUTING](../CONTRIBUTING.md) guidelines (if present)
- [ ] My code follows the existing code style
- [ ] I have added or updated tests that cover my changes
- [ ] All existing tests pass locally
- [ ] I have updated the documentation where necessary
- [ ] My changes do not introduce new security vulnerabilities

## How Has This Been Tested?

<!-- Describe how you tested your changes. -->

## Screenshots (if applicable)

<!-- Add screenshots to help explain your changes. -->

## Additional Notes

<!-- Any additional context or information. -->
40 changes: 40 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: CI

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

jobs:
build-and-test:
name: Build & Test
runs-on: ubuntu-latest
permissions:
contents: read

strategy:
matrix:
node-version: [18.x, 20.x]

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

- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Lint
run: npm run lint --if-present

- name: Build
run: npm run build --if-present

- name: Run tests
run: npm test --if-present
42 changes: 42 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: CodeQL

on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
schedule:
- cron: '30 4 * * 1'

jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
permissions:
security-events: write
packages: read
actions: read
contents: read

strategy:
fail-fast: false
matrix:
language: [javascript-typescript]

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

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
queries: security-extended,security-and-quality

- name: Autobuild
uses: github/codeql-action/autobuild@v3

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: '/language:${{ matrix.language }}'
42 changes: 42 additions & 0 deletions .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Labeler

on:
pull_request:
types: [opened, synchronize, reopened]
issues:
types: [opened, reopened]

jobs:
label-pr:
name: Label Pull Request
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
permissions:
contents: read
pull-requests: write

steps:
- name: Label PR based on changed files
uses: actions/labeler@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
configuration-path: .github/labeler.yml

label-issue:
name: Label Issue
runs-on: ubuntu-latest
if: github.event_name == 'issues'
permissions:
issues: write

steps:
- name: Add triage label to new issues
uses: actions/github-script@v7
with:
script: |
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: ['triage']
});
Loading