Skip to content
Open
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
a662b79
Merge pull request #528 from 42core-team/dev
PaulicStudios Feb 8, 2026
f28d926
Merge pull request #534 from 42core-team/dev
PaulicStudios Feb 12, 2026
507ece0
Merge pull request #580 from 42core-team/dev
Peu77 Mar 13, 2026
a6e5af0
refactor: update documentation for GitHub service to reflect transiti…
Peu77 Apr 3, 2026
3dc279e
remove old nestjs github-service project
Peu77 Apr 3, 2026
e7334eb
feat: add configuration for GitHub service using Effect
Peu77 Apr 3, 2026
09e5eac
feat: implement RabbitMQ service using Effect
Peu77 Apr 3, 2026
df701d9
feat: add decryption utility using Effect and CryptoJS
Peu77 Apr 3, 2026
54aa375
update dockerfile in github-service to use bun
Peu77 Apr 3, 2026
24ff82e
implement GitHub client with API methods and error handling using effect
Peu77 Apr 3, 2026
4ba6f00
implement main application layer with GitHub and RabbitMQ integration…
Peu77 Apr 3, 2026
41052c0
add message schemas and handlers for GitHub repository operations
Peu77 Apr 3, 2026
e20011d
refactor: update package.json scripts and dependencies for Bun integr…
Peu77 Apr 3, 2026
8ba8aa5
add: create bun.lock file for dependency management and workspace con…
Peu77 Apr 3, 2026
a538a2f
Merge remote-tracking branch 'origin/dev' into refactor-github-servic…
Peu77 Apr 3, 2026
bca6231
refactor: streamline InfraLayer and update message consumption logic
Peu77 Apr 3, 2026
294e235
integrate @effect/eslint-plugin for enhanced linting support
Peu77 Apr 3, 2026
2f912ba
add unit tests for RepoUtilsService methods
Peu77 Apr 3, 2026
2a93ffd
refactor: update test paths and script commands in package.json and t…
Peu77 Apr 3, 2026
1a242b8
refactor: improve error logging in message consumption logic
Peu77 Apr 3, 2026
e4d0ee3
remove bad comments
Peu77 Apr 3, 2026
7ddc7b9
improve code formatting and structure in GitHub client
Peu77 Apr 3, 2026
eaff58d
format code
Peu77 Apr 3, 2026
3b9ceb9
remove unnecessary cast
Peu77 Apr 3, 2026
50d6169
refactor: enhance logging attributes in pushToTeamRepo function
Peu77 Apr 4, 2026
5130eb7
format
Peu77 Apr 4, 2026
99b1aa1
refactor: improve error handling in decryptSecret function
Peu77 Apr 4, 2026
cde89fe
replace catchAll with tapError for improved error handling
Peu77 Apr 4, 2026
f2d3faf
fix: prevent double execution of eff in withRetries after rate-limit …
Copilot Apr 4, 2026
8bb57c4
refactor: update lint command and improve error handling in program.ts
Peu77 Apr 4, 2026
e6efc42
Merge remote-tracking branch 'origin/refactor-github-service-to-effec…
Peu77 Apr 4, 2026
a0693c0
refactor: update lint command and improve error handling in program.ts
Peu77 Apr 4, 2026
531275b
implement retry logic for message sending in RabbitMQ consumer
Peu77 Apr 4, 2026
a5cab58
use replaceAll for path normalization in repoUtils
Peu77 Apr 4, 2026
7177712
refactor: simplify user addition to repository logic in handleAddUser…
Peu77 Apr 4, 2026
6e2583e
enhance RabbitMQ connection and channel management with improved erro…
Peu77 Apr 4, 2026
1688462
integrate OpenTelemetry for metrics and tracing in GitHub service
Peu77 Apr 4, 2026
220f94a
add observability configuration for GitHub service with Prometheus, T…
Peu77 Apr 4, 2026
6621314
Merge pull request #616 from 42core-team/dev
PaulicStudios Apr 6, 2026
72c6195
Merge pull request #620 from 42core-team/dev
PaulicStudios Apr 6, 2026
98f2803
Merge pull request #622 from 42core-team/dev
PaulicStudios Apr 6, 2026
136b3bb
Merge pull request #641 from 42core-team/dev
PaulicStudios Apr 16, 2026
a0f9dfb
remove devcontainer
Peu77 Jun 23, 2026
3a18565
migrate GitHub Service workflows and pre-commit hooks from pnpm to Bun
Peu77 Jun 23, 2026
17fbb51
Merge branch 'main' into refactor-github-service-to-effect
Peu77 Jun 23, 2026
8e24e3a
add dynamic image tagging to GitHub workflows and extend summary with…
Peu77 Jun 28, 2026
0a8e60d
fix type error
Peu77 Jun 28, 2026
f3b2b47
update dependencies: bump NestJS, TypeORM, Jest, and other packages i…
Peu77 Jun 28, 2026
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
35 changes: 28 additions & 7 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@ This repository is a monorepo containing multiple services. Please follow these

- `api/` - NestJS API service (TypeScript)
- `frontend/` - Next.js frontend application (TypeScript)
- `github-service/` - NestJS service for GitHub integration (TypeScript)
- `github-service/` - Effect + Bun service for GitHub integration (TypeScript)
- `k8s-service/` - Kubernetes management service (Go)

## 1. Build, Lint, and Test Commands

### General
- Package Manager: `pnpm` is used for JavaScript/TypeScript projects.
- Go: Standard Go toolchain (1.23+) and `make`.
- Package Manager: `pnpm` is used for `api/` and `frontend/`; `github-service/` uses Bun (`bun.lock`).
- Go: Standard Go toolchain (1.26+) and `make`.

### `api/` & `github-service/` (NestJS)
### `api/` (NestJS)
* **Build:** `pnpm build` (Runs `nest build`)
* **Lint:** `pnpm lint` (Runs `eslint`)
* **Format:** `pnpm format` (Runs `prettier`)
Expand All @@ -30,11 +30,27 @@ This repository is a monorepo containing multiple services. Please follow these
pnpm test -- -t "should do something"
```

### `github-service/` (Effect + Bun)
* **Build:** `bun run build`
* **Lint:** `bun run lint`
* **Format:** `bun run format`
* **Run Dev:** `bun run start:dev`
* **Test:** `bun run test`
* **Run Single Test:**
```bash
# Run a specific test file
bun test src/path/to/file.test.ts

# Run a specific test case by name
bun test -t "should do something"
```

### `frontend/` (Next.js)
* **Build:** `pnpm build` (Runs `next build`)
* **Dev:** `pnpm dev`
* **Lint:** `pnpm lint`
* **Run Single Test:** (Assuming standard Jest/Vitest setup if present, otherwise rely on linting/build)
* **Test:** No dedicated test script is currently defined in `frontend/package.json`; rely on lint/build validation.
* **Run Single Test:** Only if a test runner is added to the service.
```bash
pnpm test -- path/to/file
```
Expand All @@ -61,11 +77,16 @@ This repository is a monorepo containing multiple services. Please follow these
* Classes/Interfaces/Components: `PascalCase`
* Files: `kebab-case.ts` (NestJS conventions), `PascalCase.tsx` (React components) or `page.tsx`/`layout.tsx` (Next.js App Router).
* **Imports:** Clean and organized. Remove unused imports.
* **Typing:** Strict TypeScript. Avoid `any` where possible. Use interfaces/types for DTOs and props.
* **Typing:** Prefer explicit types and avoid `any` where possible. (`strictNullChecks` is enabled, but `noImplicitAny` is currently false in `api/tsconfig.json` and `github-service/tsconfig.json`.)
* **NestJS Specifics:**
* Applies to `api/`.
* Use Dependency Injection via constructors.
* Use Decorators (`@Injectable()`, `@Controller()`, `@Get()`) appropriately.
* Follow `module` -> `controller` -> `service` architecture.
* **github-service Specifics (Effect):**
* Use Effect Layers and services (see `github-service/src/effect/main.ts`).
* Keep message schemas in `github-service/src/effect/schemas/messages.ts` and handle queue patterns in `github-service/src/effect/program.ts`.
* Use Bun runtime APIs via `@effect/platform-bun` where needed.
* **Next.js Specifics:**
* Use App Router structure (`app/`).
* Mark Client Components with `"use client"` at the top.
Expand All @@ -86,6 +107,6 @@ This repository is a monorepo containing multiple services. Please follow these
## 3. General Rules for Agents
1. **Context is King:** Always analyze the surrounding code before making changes to match the existing style.
2. **Verify Changes:** Run the lint and test commands for the specific service you are modifying before declaring the task complete.
3. **Monorepo Awareness:** Be aware of which directory you are in. Do not run `npm` commands in the root if you intend to affect a specific service; `cd` into the service directory or use `pnpm --filter`.
3. **Monorepo Awareness:** Be aware of which directory you are in. Do not run `npm` commands in the root if you intend to affect a specific service; `cd` into the service directory (for `github-service/`, run Bun commands from that directory).
4. **No Blind Edits:** Use `read` to check file contents before `edit` or `write`.
5. **Paths:** Always use absolute paths for file operations.
4 changes: 2 additions & 2 deletions api/src/github-api/github-api.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import * as CryptoJS from "crypto-js";

@Injectable()
export class GithubApiService {
private githubClient: ClientProxy;
private readonly githubClient: ClientProxy;

constructor(private configService: ConfigService) {
constructor(private readonly configService: ConfigService) {
this.githubClient = ClientProxyFactory.create(
getRabbitmqConfig(configService, "github_service"),
);
Expand Down
20 changes: 8 additions & 12 deletions github-service/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,34 +1,30 @@
## Stage 1: Build
FROM node:25-alpine AS builder
FROM oven/bun:1.3.11-alpine AS builder
WORKDIR /app

# Install dependencies
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
RUN npm install -g pnpm && pnpm install --frozen-lockfile
COPY package.json bun.lock ./
RUN bun install --frozen-lockfile

# Copy source and build
COPY . .
RUN pnpm run build

# Prune dev dependencies to keep only production deps
RUN pnpm prune --prod
RUN bun run build

## Stage 2: Production runtime
FROM node:25-alpine AS runner
FROM oven/bun:1.3.11-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production

# Copy production dependencies and built artifacts
COPY package.json ./
COPY --from=builder /app/node_modules ./node_modules
COPY package.json bun.lock ./
RUN bun install --frozen-lockfile --production
Comment on lines +19 to +20

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

there should be no need to install the dependencies here again as this was already done in step one

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

there is, here I only need the runtime depedencies and in the step before it also installs the dev depedencies

COPY --from=builder /app/dist ./dist

RUN apk update

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

apk update could still be needed, needs to be tested

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I tested it

RUN apk add --no-cache git

# Set git config for container
RUN git config --global user.name "corethegame"
RUN git config --global user.email "core@paulgrossmann.de"

# Start the microservice
CMD ["node", "dist/main.js"]
CMD ["bun", "dist/main.js"]
Loading
Loading