-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
224 hivemind question platform agnostic data transformation #225
Changes from 9 commits
7e72e3e
7c40900
3833ddc
de6771f
d245599
ed88a91
8bbd9cc
e084b90
c6714c0
0033c1d
6267c1d
cfe6f79
0ae3492
786583d
af3355d
1de91cb
ffaea59
2d0d5de
00e40fa
25ef0c5
ae4c08e
3d51529
645b4e5
26f95bc
ccce869
a5d09a9
9b5afa9
f846209
bfe7e2e
0fa7a73
5c89dd0
4505abc
2c4ef7e
54a2072
981b9ea
0c74949
8eca6b0
21473ad
c4a5328
3d7569d
8dab3fa
cac48f9
4e74991
8fea8f2
1ba0919
d3c49ac
f7fbe1f
fe5be33
685e7fa
d4af98b
b06a491
a9c0966
2a4153c
d8c9e71
553a00f
2a1032a
f3b1fd6
5c82534
b15175c
881e64d
9a31a79
bc78e3a
69503c6
8f86f27
4b00e40
0f56904
32d1dd3
6199521
4380dd1
6b3eebb
9795dee
3b8f593
f42c843
c78d2d6
0a1748d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,51 @@ | ||||||
# .github/workflows/bot-ci.yml | ||||||
|
||||||
name: Bot CI Pipeline | ||||||
|
||||||
on: | ||||||
push: | ||||||
paths: | ||||||
- "bot/**" | ||||||
pull_request: | ||||||
paths: | ||||||
- "bot/**" | ||||||
|
||||||
jobs: | ||||||
lint: | ||||||
name: Lint | ||||||
runs-on: ubuntu-latest | ||||||
steps: | ||||||
- uses: actions/checkout@v4 | ||||||
- uses: super-linter/[email protected] | ||||||
env: | ||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||
TYPESCRIPT_DEFAULT_STYLE: prettier | ||||||
VALIDATE_DOCKERFILE_HADOLINT: false | ||||||
VALIDATE_JSCPD: false | ||||||
VALIDATE_PYTHON_FLAKE8: false | ||||||
VALIDATE_PYTHON_MYPY: false | ||||||
|
||||||
test: | ||||||
runs-on: ubuntu-latest | ||||||
steps: | ||||||
- uses: actions/checkout@v4 | ||||||
- uses: actions/setup-node@v3 | ||||||
with: | ||||||
node-version: 20 | ||||||
cache: "npm" | ||||||
- run: npm install --force | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Avoid using Using - - run: npm install --force
+ - run: npm install 📝 Committable suggestion
Suggested change
|
||||||
- run: npm run test | ||||||
- uses: paambaati/[email protected] | ||||||
env: | ||||||
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | ||||||
with: | ||||||
coverageCommand: npm run test:cov | ||||||
|
||||||
build-push: | ||||||
# needs: [lint, test] | ||||||
needs: [lint, test] | ||||||
uses: ./.github/workflows/build-push.yml | ||||||
with: | ||||||
app_name: "bot" | ||||||
context: "./bot" | ||||||
dockerfile: "./bot/Dockerfile" |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,59 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# .github/workflows/build-push.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name: Build and Push Docker Image | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
on: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
workflow_call: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
app_name: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description: "Name of the application (bot or hivemind-adapter)" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required: true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type: string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
context: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description: "Build context path" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required: true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type: string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dockerfile: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description: "Path to the Dockerfile" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required: true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type: string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Add input validation for security. Consider adding pattern validation to restrict input values:
inputs:
app_name:
description: "Name of the application (bot or hivemind-adapter)"
required: true
type: string
+ pattern: '^(bot|hivemind-adapter)$'
context:
description: "Build context path"
required: true
type: string
+ pattern: '^[a-zA-Z0-9/_.-]+$'
dockerfile:
description: "Path to the Dockerfile"
required: true
type: string
+ pattern: '^[a-zA-Z0-9/_.-]+Dockerfile[a-zA-Z0-9._-]*$' 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
env: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REGISTRY: ghcr.io | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IMAGE_NAME: ${{ github.repository }}-${{ inputs.app_name }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Consider making the registry configurable. While using GHCR is good, consider making the registry configurable to support potential future requirements to use different registries. env:
- REGISTRY: ghcr.io
+ REGISTRY: ${{ inputs.registry || 'ghcr.io' }}
IMAGE_NAME: ${{ github.repository }}-${{ inputs.app_name }} And add to inputs: registry:
description: "Container registry URL (defaults to ghcr.io)"
required: false
type: string |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
jobs: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
build-push: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name: Build and Push Image | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
permissions: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contents: read | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
packages: write | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
steps: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- name: Checkout code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- name: Set up Docker Buildx | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uses: docker/setup-buildx-action@v3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- name: Log in to GitHub Container Registry | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uses: docker/login-action@v3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
registry: ${{ env.REGISTRY }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
username: ${{ github.actor }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
password: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- name: Extract metadata (tags, labels) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uses: docker/metadata-action@v5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id: meta | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- name: Build and push Docker image | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uses: docker/build-push-action@v5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
context: ${{ inputs.context }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
file: ${{ inputs.dockerfile }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
push: true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tags: ${{ steps.meta.outputs.tags }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
labels: ${{ steps.meta.outputs.labels }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+32
to
+59
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Enhance build performance and security. Consider the following improvements:
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: ${{ inputs.context }}
file: ${{ inputs.dockerfile }}
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
+ cache-from: type=gha
+ cache-to: type=gha,mode=max
+ platforms: linux/amd64,linux/arm64 And add before the build step: - name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
image-ref: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}
format: 'table'
exit-code: '1'
ignore-unfixed: true
vuln-type: 'os,library'
severity: 'CRITICAL,HIGH' |
This file was deleted.
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,51 @@ | ||||||||||||||||||||||||||||||||||||
# .github/workflows/hivemind-adapter-ci.yml | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
name: Hivemind Adapter CI Pipeline | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
on: | ||||||||||||||||||||||||||||||||||||
push: | ||||||||||||||||||||||||||||||||||||
paths: | ||||||||||||||||||||||||||||||||||||
- "hivemind-adapter/**" | ||||||||||||||||||||||||||||||||||||
pull_request: | ||||||||||||||||||||||||||||||||||||
paths: | ||||||||||||||||||||||||||||||||||||
- "hivemind-adapter/**" | ||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Consider adding branch filters for push events. While the path filters are correctly configured, consider adding branch filters for the push event to avoid unnecessary workflow runs on feature branches. on:
push:
+ branches:
+ - main
+ - develop
paths:
- "hivemind-adapter/**"
pull_request:
paths:
- "hivemind-adapter/**" 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
jobs: | ||||||||||||||||||||||||||||||||||||
lint: | ||||||||||||||||||||||||||||||||||||
name: Lint | ||||||||||||||||||||||||||||||||||||
runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||||||
steps: | ||||||||||||||||||||||||||||||||||||
- uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||||||
- uses: super-linter/[email protected] | ||||||||||||||||||||||||||||||||||||
env: | ||||||||||||||||||||||||||||||||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||||||||||||||||||||||||
TYPESCRIPT_DEFAULT_STYLE: prettier | ||||||||||||||||||||||||||||||||||||
VALIDATE_DOCKERFILE_HADOLINT: false | ||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification Enabling Dockerfile validation is recommended Both
Specific locations that would benefit from hadolint validation:
🔗 Analysis chainReconsider disabling Dockerfile validation. Dockerfile validation (hadolint) is currently disabled. Consider enabling it to catch potential issues in Dockerfile best practices and security. Let me search more broadly for any Dockerfile in the repository to make a well-informed decision. Let me check the content of these Dockerfiles to determine if Dockerfile validation would be valuable. 🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Check if the Dockerfile exists and contains content
if [ -f "hivemind-adapter/Dockerfile" ]; then
echo "Dockerfile exists. Consider enabling hadolint validation."
cat hivemind-adapter/Dockerfile
fi
Length of output: 161 Script: #!/bin/bash
# Search for any Dockerfile in the repository
fd Dockerfile
# Also check if there are any docker-compose files that might indicate Docker usage
fd docker-compose
Length of output: 291 Script: #!/bin/bash
# Check contents of both Dockerfiles
echo "=== bot/Dockerfile ==="
cat bot/Dockerfile
echo -e "\n=== hivemind-adapter/Dockerfile ==="
cat hivemind-adapter/Dockerfile
Length of output: 1236 |
||||||||||||||||||||||||||||||||||||
VALIDATE_JSCPD: false | ||||||||||||||||||||||||||||||||||||
VALIDATE_PYTHON_FLAKE8: false | ||||||||||||||||||||||||||||||||||||
VALIDATE_PYTHON_MYPY: false | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
# test: | ||||||||||||||||||||||||||||||||||||
# runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||||||
# steps: | ||||||||||||||||||||||||||||||||||||
# - uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||||||
# - uses: actions/setup-node@v3 | ||||||||||||||||||||||||||||||||||||
# with: | ||||||||||||||||||||||||||||||||||||
# node-version: 20 | ||||||||||||||||||||||||||||||||||||
# cache: "npm" | ||||||||||||||||||||||||||||||||||||
# - run: npm install --force | ||||||||||||||||||||||||||||||||||||
# - run: npm run test | ||||||||||||||||||||||||||||||||||||
# - uses: paambaati/[email protected] | ||||||||||||||||||||||||||||||||||||
# env: | ||||||||||||||||||||||||||||||||||||
# CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | ||||||||||||||||||||||||||||||||||||
# with: | ||||||||||||||||||||||||||||||||||||
# coverageCommand: npm run test:cov | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
build-push: | ||||||||||||||||||||||||||||||||||||
# needs: [lint, test] | ||||||||||||||||||||||||||||||||||||
needs: [lint] | ||||||||||||||||||||||||||||||||||||
uses: ./.github/workflows/build-push.yml | ||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||
app_name: "hivemind-adapter" | ||||||||||||||||||||||||||||||||||||
context: "./hivemind-adapter" | ||||||||||||||||||||||||||||||||||||
dockerfile: "./hivemind-adapter/Dockerfile" |
This file was deleted.
This file was deleted.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,43 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||
import { SlashCommandBuilder } from 'discord.js'; | ||||||||||||||||||||||||||||||||||||||||||||||||||
import { interactionService } from '../../services'; | ||||||||||||||||||||||||||||||||||||||||||||||||||
import RabbitMQ, { Event, Queue as RabbitMQQueue } from '@togethercrew.dev/tc-messagebroker'; | ||||||||||||||||||||||||||||||||||||||||||||||||||
import { type ChatInputCommandInteraction_broker } from '../../interfaces/Hivemind.interface'; | ||||||||||||||||||||||||||||||||||||||||||||||||||
import parentLogger from '../../config/logger'; | ||||||||||||||||||||||||||||||||||||||||||||||||||
const logger = parentLogger.child({ command: 'question' }); | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
export default { | ||||||||||||||||||||||||||||||||||||||||||||||||||
data: new SlashCommandBuilder() | ||||||||||||||||||||||||||||||||||||||||||||||||||
.setName('question') | ||||||||||||||||||||||||||||||||||||||||||||||||||
.setDescription('Ask a question and get an answer from Hivemind!') | ||||||||||||||||||||||||||||||||||||||||||||||||||
.addStringOption((option) => | ||||||||||||||||||||||||||||||||||||||||||||||||||
option.setName('question').setDescription('Your question to Hivemind').setRequired(true), | ||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
async execute(interaction: ChatInputCommandInteraction_broker) { | ||||||||||||||||||||||||||||||||||||||||||||||||||
logger.info({ interaction_id: interaction.id, user: interaction.user }, 'question command started'); | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
try { | ||||||||||||||||||||||||||||||||||||||||||||||||||
await interactionService.createInteractionResponse(interaction, { | ||||||||||||||||||||||||||||||||||||||||||||||||||
type: 5, | ||||||||||||||||||||||||||||||||||||||||||||||||||
data: { flags: 64 }, | ||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||
RabbitMQ.publish( | ||||||||||||||||||||||||||||||||||||||||||||||||||
RabbitMQQueue.DISCORD_HIVEMIND_ADAPTER, | ||||||||||||||||||||||||||||||||||||||||||||||||||
Event.DISCORD_HIVEMIND_ADAPTER.QUESTION_COMMAND_RECEIVED, | ||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||
interaction, | ||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ensure the 'interaction' object is serializable before publishing The Apply this diff to extract the necessary data: RabbitMQ.publish(
RabbitMQQueue.DISCORD_HIVEMIND_ADAPTER,
Event.DISCORD_HIVEMIND_ADAPTER.QUESTION_COMMAND_RECEIVED,
{
- interaction,
+ interactionData: {
+ id: interaction.id,
+ user: {
+ id: interaction.user.id,
+ username: interaction.user.username,
+ discriminator: interaction.user.discriminator,
+ },
+ guildId: interaction.guildId,
+ channelId: interaction.channelId,
+ options: interaction.options.data,
+ },
},
); 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||
} catch (error) { | ||||||||||||||||||||||||||||||||||||||||||||||||||
logger.error(error, 'question command failed'); | ||||||||||||||||||||||||||||||||||||||||||||||||||
await interactionService.createInteractionResponse(interaction, { | ||||||||||||||||||||||||||||||||||||||||||||||||||
type: 4, | ||||||||||||||||||||||||||||||||||||||||||||||||||
data: { | ||||||||||||||||||||||||||||||||||||||||||||||||||
content: | ||||||||||||||||||||||||||||||||||||||||||||||||||
"Sorry, we couldn't process your request at the moment. Please report this issue to the TogetherCrew development team. Thank you for your patience!", | ||||||||||||||||||||||||||||||||||||||||||||||||||
flags: 64, | ||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||
}; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
module.exports = { | ||
parser: '@typescript-eslint/parser', | ||
parserOptions: { | ||
project: 'tsconfig.json', | ||
tsconfigRootDir: __dirname, | ||
sourceType: 'module', | ||
}, | ||
plugins: ['@typescript-eslint/eslint-plugin'], | ||
extends: [ | ||
'plugin:@typescript-eslint/recommended', | ||
'plugin:prettier/recommended', | ||
], | ||
root: true, | ||
env: { | ||
node: true, | ||
jest: true, | ||
}, | ||
ignorePatterns: ['.eslintrc.js'], | ||
rules: { | ||
'@typescript-eslint/interface-name-prefix': 'off', | ||
'@typescript-eslint/explicit-function-return-type': 'off', | ||
'@typescript-eslint/explicit-module-boundary-types': 'off', | ||
'@typescript-eslint/no-explicit-any': 'off', | ||
}, | ||
}; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# compiled output | ||
/dist | ||
/node_modules | ||
/build | ||
|
||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
pnpm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
lerna-debug.log* | ||
|
||
# OS | ||
.DS_Store | ||
|
||
# Tests | ||
/coverage | ||
/.nyc_output | ||
|
||
# IDEs and editors | ||
/.idea | ||
.project | ||
.classpath | ||
.c9/ | ||
*.launch | ||
.settings/ | ||
*.sublime-workspace | ||
|
||
# IDE - VSCode | ||
.vscode/* | ||
!.vscode/settings.json | ||
!.vscode/tasks.json | ||
!.vscode/launch.json | ||
!.vscode/extensions.json | ||
|
||
# dotenv environment variable files | ||
.env | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
.env.local | ||
|
||
# temp directory | ||
.temp | ||
.tmp | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Diagnostic reports (https://nodejs.org/api/report.html) | ||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,9 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||
"**/*.ts": [ | ||||||||||||||||||||||||||||||||||||||||||||||||
"eslint --fix", | ||||||||||||||||||||||||||||||||||||||||||||||||
"prettier --write" | ||||||||||||||||||||||||||||||||||||||||||||||||
], | ||||||||||||||||||||||||||||||||||||||||||||||||
"**/*.md": [ | ||||||||||||||||||||||||||||||||||||||||||||||||
"prettier --write" | ||||||||||||||||||||||||||||||||||||||||||||||||
] | ||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+1
to
+9
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Consider enhancing the pre-commit hooks configuration. The current configuration is good, but could be improved with additional checks: {
"**/*.ts": [
+ "tsc --noEmit",
"eslint --fix",
"prettier --write"
],
"**/*.md": [
+ "cspell",
"prettier --write"
],
+ "**/*.{json,yml,yaml}": [
+ "prettier --write"
+ ]
} These changes would:
📝 Committable suggestion
Suggested change
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"trailingComma": "es5", | ||
"tabWidth": 4, | ||
"semi": false, | ||
"singleQuote": true, | ||
"printWidth": 80 | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Consider adding branch restrictions to the workflow triggers.
The workflow currently runs on all branches. To optimize CI resources, consider limiting the workflow to run only on main/master branch for pushes and pull requests targeting these branches.
📝 Committable suggestion