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
16 changes: 16 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# This file defines code owners for the repository.
# It assigns the default owner for all files to @HardMax71.
# Later, specific paths can be assigned to different teams or individuals.

# Default owner for everything
* @HardMax71

# Backend
backend/ @HardMax71

# Frontend
frontend/ @HardMax71

# DevOps / Helm / CI
helm/ @HardMax71
.github/ @HardMax71
86 changes: 86 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Bug Report
description: Report unexpected behavior or errors
title: "[Bug]: "
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report a bug! Please fill out the sections below.

- type: textarea
id: description
attributes:
label: Bug Description
description: A clear and concise description of what the bug is.
placeholder: What happened?
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '...'
3. See error
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What you expected to happen.
validations:
required: true

- type: dropdown
id: component
attributes:
label: Component
description: Which part of the system is affected?
options:
- Frontend (UI)
- Backend API
- Execution (K8s pods)
- Workers (Coordinator, DLQ, etc.)
- SSE / Real-time updates
- Authentication
- Other
validations:
required: true

- type: textarea
id: environment
attributes:
label: Environment
description: Please provide relevant environment details.
placeholder: |
- OS: [e.g., Ubuntu 22.04, macOS 14]
- Browser: [e.g., Chrome 120, Firefox 121]
- Deployment: [e.g., local dev, production]
- Python version: [e.g., 3.12]
validations:
required: false

- type: textarea
id: logs
attributes:
label: Relevant Logs
description: Include any error messages or logs (use code blocks).
render: shell
validations:
required: false

- type: checkboxes
id: checklist
attributes:
label: Checklist
options:
- label: I have searched existing issues to ensure this is not a duplicate
required: true
- label: I have included steps to reproduce the issue
required: true
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Documentation
url: https://hardmax71.github.io/Integr8sCode/
about: Check the documentation for guides and reference material
- name: Discussions
url: https://github.com/HardMax71/Integr8sCode/discussions
about: Ask questions and discuss ideas
66 changes: 66 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Feature Request
description: Suggest a new feature or enhancement
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for suggesting a feature! Please describe what you'd like to see.

- type: textarea
id: problem
attributes:
label: Problem Statement
description: What problem does this feature solve? Is it related to a frustration?
placeholder: I'm always frustrated when...
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe the solution you'd like.
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Any alternative solutions or features you've considered?
validations:
required: false

- type: dropdown
id: component
attributes:
label: Component
description: Which part of the system would this affect?
options:
- Frontend (UI)
- Backend API
- Execution (K8s pods)
- Workers
- Documentation
- DevOps / CI/CD
- Other
validations:
required: true

- type: textarea
id: context
attributes:
label: Additional Context
description: Add any other context, mockups, or screenshots.
validations:
required: false

- type: checkboxes
id: checklist
attributes:
label: Checklist
options:
- label: I have searched existing issues to ensure this is not a duplicate
required: true
50 changes: 50 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
## Summary

<!-- Briefly describe what this PR does. Link to related issues if applicable. -->

Fixes #

## Changes

<!-- List the key changes made in this PR -->

-
-
-

## Type of Change

<!-- Mark the relevant option(s) -->

- [ ] 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
- [ ] Refactoring (no functional changes)
- [ ] CI/CD or tooling changes

## Test Plan

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

- [ ] Unit tests pass (`uv run pytest`)
- [ ] E2E tests pass (`npx playwright test`)
- [ ] Manual testing performed

**Manual test steps:**

1.
2.
3.

## Checklist

- [ ] My code follows the project's style guidelines
- [ ] I have run `pre-commit run --all-files` and all checks pass
- [ ] I have added tests that prove my fix/feature works
- [ ] I have updated documentation if needed
- [ ] My changes don't introduce new warnings

## Screenshots (if applicable)

<!-- Add screenshots for UI changes -->
63 changes: 63 additions & 0 deletions .github/workflows/sbom-compliance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: SBOM & Supply Chain Security

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: '0 0 * * 0' # Run weekly on Sundays

permissions:
contents: read
security-events: write

jobs:
sbom-analysis:
name: Generate & Scan SBOMs
runs-on: ubuntu-latest
strategy:
matrix:
component: [backend, frontend]
include:
- component: backend
path: ./backend
type: python
- component: frontend
path: ./frontend
type: javascript

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

- name: Generate SBOM (${{ matrix.component }})
uses: anchore/sbom-action@v0
id: sbom
with:
path: ${{ matrix.path }}
format: spdx-json
output-file: ${{ matrix.component }}-sbom.spdx.json
upload-artifact: false

- name: Scan SBOM for Vulnerabilities
uses: anchore/scan-action@v6
id: scan
with:
sbom: ${{ matrix.component }}-sbom.spdx.json
fail-build: false # Don't block builds yet, just report
severity-cutoff: high

- name: Upload SBOM Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.component }}-sbom
path: ${{ matrix.component }}-sbom.spdx.json
retention-days: 5

- name: Upload Vulnerability Report
uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: ${{ steps.scan.outputs.sarif }}
category: ${{ matrix.component }}-dependencies
23 changes: 23 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Pre-commit hooks configuration
# Install: uv tool install pre-commit && pre-commit install
# Run manually: pre-commit run --all-files

repos:
# Local hooks using uv run to match CI exactly
- repo: local
hooks:
# Ruff - matches CI: cd backend && uv run ruff check . --config pyproject.toml
- id: ruff-backend
name: ruff check (backend)
entry: bash -c 'cd backend && uv run ruff check . --config pyproject.toml'
language: system
files: ^backend/.*\.py$
pass_filenames: false

# MyPy - matches CI: cd backend && uv run mypy --config-file pyproject.toml --strict .
- id: mypy-backend
name: mypy --strict (backend)
entry: bash -c 'cd backend && uv run mypy --config-file pyproject.toml --strict .'
language: system
files: ^backend/.*\.py$
pass_filenames: false
45 changes: 45 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We pledge to make our community welcoming, safe, and equitable for all. We are committed to fostering an environment that respects and promotes the dignity, rights, and contributions of all individuals, regardless of characteristics including race, ethnicity, caste, color, age, physical characteristics, neurodiversity, disability, sex or gender, gender identity or expression, sexual orientation, language, philosophy or religion, national or social origin, socio-economic position, level of education, or other status. The same privileges of participation are extended to everyone who participates in good faith and in accordance with this Covenant.

## Encouraged Behaviors

While acknowledging differences in social norms, we all strive to meet our community's expectations for positive behavior. We also understand that our words and actions may be interpreted differently than we intend based on culture, background, or native language. With these considerations in mind, we agree to behave mindfully toward each other and act in ways that center our shared values, including:

* Respecting the purpose of our community, our activities, and our ways of gathering.
* Engaging kindly and honestly with others.
* Respecting different viewpoints and experiences.
* Taking responsibility for our actions and contributions.
* Gracefully giving and accepting constructive feedback.
* Committing to repairing harm when it occurs.
* Behaving in other ways that promote and sustain the well-being of our community.

## Restricted Behaviors

We agree to restrict the following behaviors in our community. Instances, threats, and promotion of these behaviors are violations of this Code of Conduct.

* **Harassment.** Violating explicitly expressed boundaries or engaging in unnecessary personal attention after any clear request to stop.
* **Character attacks.** Making insulting, demeaning, or pejorative comments directed at a community member or group of people.
* **Stereotyping or discrimination.** Characterizing anyone's personality or behavior on the basis of immutable identities or traits.
* **Sexualization.** Using sexualized language or imagery, or engaging in unwelcome sexual attention or advances.
* **Violating confidentiality.** Publishing others' private information, such as a physical or email address, without their explicit permission.
* **Endangerment.** Threatening or inciting violence, or promoting self-harm.
* Behaving in other ways that threaten the well-being of our community.

## Scope

This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public or other spaces. Examples of representing our community include using an official email address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at <mailto:max.azatian@gmail.com>. All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the reporter of any incident.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 3.0, available at [Contributor Covenant](https://www.contributor-covenant.org/version/3/0/).

[homepage]: https://www.contributor-covenant.org
Loading
Loading