Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
9cd37d2
fix: Npgsql ๋ฒ„์ „ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ
Sean-mn Apr 1, 2026
702494e
update: Claude ์„ค์ • ๋ฐ hooks ์žฌ๊ตฌ์„ฑ
Sean-mn Apr 1, 2026
19e17ff
docs: CLAUDE.md ๋ฐ rules ๋””๋ ‰ํ„ฐ๋ฆฌ ์ถ”๊ฐ€
Sean-mn Apr 1, 2026
707464f
docs: commands๋ฅผ skills๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
Sean-mn Apr 1, 2026
9f8f9ba
fix: JoinRoom ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฒ€์ฆ ์กฐ๊ฑด์„ IsPrivate ๊ธฐ์ค€์œผ๋กœ ์ˆ˜์ •
Sean-mn Apr 1, 2026
10b4745
update: Auth ์ปจํŠธ๋กค๋Ÿฌ ์‘๋‹ต ํ˜•์‹์„ CommonApiResponse๋กœ ํ†ต์ผ
Sean-mn Apr 1, 2026
c2d27c2
fix: UserRepository ์‹ ๊ทœ ์‚ฌ์šฉ์ž ์ƒ์„ฑ ๋กœ์ง์„ EF Core AddAsync๋กœ ๊ต์ฒด
Sean-mn Apr 1, 2026
3793609
update: RoomSummary๋ฅผ GetRoomResponse๋กœ ๋Œ€์ฒดํ•˜๊ณ  MaxPlayers ์ƒ์ˆ˜ํ™”
Sean-mn Apr 1, 2026
1de9df3
update: Room ์ปจํŠธ๋กค๋Ÿฌ ์‘๋‹ต ํ˜•์‹์„ CommonApiResponse๋กœ ํ†ต์ผ
Sean-mn Apr 1, 2026
b871a4c
fix: JoinRoom ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฒ€์ฆ์„ IsNullOrWhiteSpace๋กœ ๊ฐ•ํ™”
Sean-mn Apr 1, 2026
a3514f1
update: pr ์Šคํ‚ฌ ์„ค์ • ๋ฐ ํ—ˆ์šฉ ๋„๊ตฌ ์—…๋ฐ์ดํŠธ
Sean-mn Apr 1, 2026
be87e83
Merge pull request #31 from Team-Gamism/refactor/auth-workflow
Sean-mn Apr 1, 2026
39b77e1
chore: commit/pr ์Šคํ‚ฌ ์„ค์ • ์—…๋ฐ์ดํŠธ
Sean-mn Apr 1, 2026
fd86edd
chore: .claude ํŒŒ์ผ ์ตœ์ ํ™”
Sean-mn Apr 1, 2026
52c758a
Merge pull request #32 from Team-Gamism/refactor/claude
Sean-mn Apr 1, 2026
7a62d65
feat: AppDbContextFactory ์ถ”๊ฐ€ ๋ฐ DB ์„ค์ • ์ˆ˜์ •
Sean-mn Apr 2, 2026
1635308
chore: Docker ๋นŒ๋“œ ๊ตฌ์กฐ ๋ฐ CI ์›Œํฌํ”Œ๋กœ์šฐ ์ˆ˜์ •
Sean-mn Apr 2, 2026
d362067
chore: AppDbContextFactory ์ œ๊ฑฐ ๋ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ DB ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด ์ถ”๊ฐ€
Sean-mn Apr 2, 2026
5a30247
chore: dotnet tool ๋ช…๋ น์–ด ํ—ˆ์šฉ ๋ชฉ๋ก ์ถ”๊ฐ€
Sean-mn Apr 2, 2026
cd17f18
chore: gemini commit/pr ํ…œํ”Œ๋ฆฟ ์ž‘์„ฑ
Sean-mn Apr 2, 2026
c4f8bd1
chore: dotnet SDK 9.0.201 ๋ฒ„์ „ ๊ณ ์ •
Sean-mn Apr 2, 2026
3cdb670
fix: nullable ์ฐธ์กฐ ๊ฒฝ๊ณ  ์ˆ˜์ •
Sean-mn Apr 2, 2026
3a1e7ee
feat: ์ดˆ๊ธฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ถ”๊ฐ€
Sean-mn Apr 2, 2026
0c2e696
update: User ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ๋ฅผ auth๋กœ ๋ณ€๊ฒฝ
Sean-mn Apr 2, 2026
b2b3d04
chore: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ DB ๋ฐ Redis ํฌํŠธ ๋ณ€๊ฒฝ
Sean-mn Apr 2, 2026
fb54ca9
chore: cmd.exe ๋ฐ dotnet SDK ๋ช…๋ น์–ด ํ—ˆ์šฉ ์ถ”๊ฐ€
Sean-mn Apr 2, 2026
efa14a0
Revert "fix: nullable ์ฐธ์กฐ ๊ฒฝ๊ณ  ์ˆ˜์ •"
Sean-mn Apr 2, 2026
f532bd7
Merge branch 'develop' into refactor/claude
Sean-mn Apr 2, 2026
a316eb9
fix: Docker Compose ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํ†ต์‹  ํ˜ธ์ŠคํŠธ๋ช… ๋ฐ ํฌํŠธ ์ˆ˜์ •
Sean-mn Apr 2, 2026
4a8c827
update: ์ดˆ๊ธฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์— auth ์Šคํ‚ค๋งˆ ํ†ตํ•ฉ ๋ฐ ๋ถˆํ•„์š”ํ•œ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ œ๊ฑฐ
Sean-mn Apr 2, 2026
cf4dcd8
Merge branch 'refactor/claude' of https://github.com/Team-Gamism/Pushโ€ฆ
Sean-mn Apr 2, 2026
66e10a9
Merge pull request #33 from Team-Gamism/refactor/claude
Sean-mn Apr 2, 2026
30f1a14
chore: .gitattributes ์ถ”๊ฐ€๋กœ ์ค„๋ฐ”๊ฟˆ LF ํ†ต์ผ
Sean-mn Apr 2, 2026
0ea3268
chore: UseAppHost ๋น„ํ™œ์„ฑํ™” ๋ฐ global.json ์ œ๊ฑฐ
Sean-mn Apr 2, 2026
cdedc2e
chore: compose.prod.yaml์—์„œ ์™ธ๋ถ€ DB ๋ถ„๋ฆฌ ๋ฐ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ์ถ”๊ฐ€
Sean-mn Apr 2, 2026
94f88c5
chore: CI/CD๋ฅผ Docker Compose ๋ฐฐํฌ ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜
Sean-mn Apr 2, 2026
5c4f636
chore: Steam WebApiKey ํ”Œ๋ ˆ์ด์Šคํ™€๋” ์ œ๊ฑฐ ๋ฐ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ช… ์ˆ˜์ •
Sean-mn Apr 3, 2026
982fd16
chore: ์„œ๋ฒ„ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ pushandpull-server๋กœ ํ†ต์ผ
Sean-mn Apr 3, 2026
1101985
Merge pull request #34 from Team-Gamism/cicd/cd-pipeline
Sean-mn Apr 3, 2026
b987a02
chore: db-migration-guide ์Šคํ‚ฌ์„ rules ํŒŒ์ผ๋กœ ์ „ํ™˜
Sean-mn Apr 3, 2026
40dcd2a
update: ์„œ๋น„์Šคยท๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ „ ๊ณ„์ธต์— CancellationToken ์ „ํŒŒ
Sean-mn Apr 3, 2026
8cf5e27
feat: ๋กœ๊ทธ์ธ Rate Limiting ์ถ”๊ฐ€
Sean-mn Apr 3, 2026
10d35fc
fix: Room ์—”ํ„ฐํ‹ฐ ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ ์ œํ•œ์ž๋ฅผ private set์œผ๋กœ ์ˆ˜์ •
Sean-mn Apr 3, 2026
349228b
chore: Steam AppId๋ฅผ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์™ธ๋ถ€ ์ฃผ์ž…ํ•˜๋„๋ก ๋ณ€๊ฒฝ
Sean-mn Apr 3, 2026
9a14432
chore: release/1.3.0 ๋จธ์ง€ ์ถฉ๋Œ ํ•ด๊ฒฐ
Sean-mn Apr 3, 2026
276e5fc
fix: Gemini ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ˜์˜ โ€” ๋ ˆ์ด์Šค ์ปจ๋””์…˜, Rate Limit ์‘๋‹ต, ์„œ๋น„์Šค ๋ ˆ์ด์–ด DTO ์˜์กด์„ฑ ์ œ๊ฑฐ
Sean-mn Apr 3, 2026
d325eca
update: RoomSummary๋ฅผ RoomInfo๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ
Sean-mn Apr 3, 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
25 changes: 25 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Normalize line endings to LF in the repository
* text=auto eol=lf

# Explicitly declare text files
*.cs text eol=lf
*.csproj text eol=lf
*.sln text eol=lf
*.json text eol=lf
*.md text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
*.sh text eol=lf
*.toml text eol=lf
*.dockerfile text eol=lf
*.dockerignore text eol=lf
*.gitignore text eol=lf

# Binary files โ€” no line ending conversion
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.zip binary
*.tar.gz binary
41 changes: 25 additions & 16 deletions .github/workflows/Deploy-Server.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,33 +19,42 @@ jobs:
run: |
docker build \
-t seanyee1227/pushandpull-server:latest \
-f PushAndPull/PushAndPull/Dockerfile \
PushAndPull/PushAndPull
-f PushAndPull/deploy/prod.dockerfile \
PushAndPull

- name: Push Docker image
run: docker push seanyee1227/pushandpull-server:latest

- name: Deploy to server via SSH
- name: Copy compose file to server
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
port: ${{ secrets.SSH_PORT }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
source: "PushAndPull/deploy/compose.prod.yaml"
target: "~/deploy/"
strip_components: 2

- name: Deploy via Docker Compose
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
port: ${{ secrets.SSH_PORT }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
docker pull seanyee1227/pushandpull-server:latest
docker stop pushandpull-server || true
docker rm pushandpull-server || true

docker run -d \
--name pushandpull-server \
--network pushandpull-network \
--restart unless-stopped \
-p 21754:80 \
-e ASPNETCORE_URLS=http://+:80 \
-e ASPNETCORE_ENVIRONMENT=Production \
-e "ConnectionStrings__Default=${{ secrets.DB_CONNECTION_STRING }}" \
seanyee1227/pushandpull-server:latest
mkdir -p ~/deploy

printf 'DB_CONNECTION_STRING=%s\nREDIS_CONNECTION_STRING=%s\nSTEAM_WEB_API_KEY=%s\nSTEAM_APP_ID=%s\n' \
"${{ secrets.DB_CONNECTION_STRING }}" \
"${{ secrets.REDIS_CONNECTION_STRING }}" \
"${{ secrets.STEAM_WEB_API_KEY }}" \
"${{ secrets.STEAM_APP_ID }}" \
> ~/deploy/.env

docker compose -f ~/deploy/compose.prod.yaml --env-file ~/deploy/.env pull
docker compose -f ~/deploy/compose.prod.yaml --env-file ~/deploy/.env up -d

sleep 5
docker ps | grep pushandpull-server
Expand Down
72 changes: 0 additions & 72 deletions PushAndPull/.claude/commands/commit.md

This file was deleted.

26 changes: 0 additions & 26 deletions PushAndPull/.claude/commands/migrate.md

This file was deleted.

16 changes: 0 additions & 16 deletions PushAndPull/.claude/commands/test.md

This file was deleted.

61 changes: 0 additions & 61 deletions PushAndPull/.claude/hooks/commit-msg.sh

This file was deleted.

49 changes: 49 additions & 0 deletions PushAndPull/.claude/hooks/postToolUse.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/bin/bash
# .claude/hooks/postToolUse.sh

INPUT=$(cat)
TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // empty')
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')

if [[ "$TOOL_NAME" != "Edit" && "$TOOL_NAME" != "Write" ]]; then
exit 0
fi

if [[ "$FILE_PATH" != *.cs ]]; then
exit 0
fi

echo "[Hook] C# file modified: $FILE_PATH" >&2

dotnet format --no-restore 2>/dev/null || echo "[Hook] format failed (ignored)" >&2

CACHE_FILE=".claude/.last_build_hash"

CURRENT_HASH=$(find . -name "*.cs" -not -path "*/obj/*" | sort | xargs md5sum 2>/dev/null | md5sum | cut -d' ' -f1)

LAST_HASH=""
if [[ -f "$CACHE_FILE" ]]; then
LAST_HASH=$(cat "$CACHE_FILE")
fi

if [[ "$CURRENT_HASH" != "$LAST_HASH" ]]; then
echo "[Hook] Running dotnet build..." >&2
if dotnet build PushAndPull/PushAndPull.csproj --no-restore; then
echo "$CURRENT_HASH" > "$CACHE_FILE"
else
echo "[Hook] Build failed" >&2
exit 2
fi
else
echo "[Hook] Skip build (no source changes)" >&2
fi

echo "[Hook] Running tests..." >&2
if dotnet test PushAndPull.Test/PushAndPull.Test.csproj --no-build --verbosity minimal; then
echo "[Hook] Tests passed" >&2
else
echo "[Hook] Tests failed" >&2
exit 2
fi

exit 0
50 changes: 32 additions & 18 deletions PushAndPull/.claude/hooks/preCommit.sh
Original file line number Diff line number Diff line change
@@ -1,28 +1,42 @@
#!/bin/bash
# .claude/hooks/preCommit.sh
# Ensure tests pass before allowing dotnet build/run/publish (Claude Code PreToolUse hook)

INPUT=$(cat)
TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // empty')
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
COMMIT_MSG="$TOOL_PARAMS_MESSAGE"

if [[ "$TOOL_NAME" != "Bash" ]]; then
exit 0
fi
# allowed types
PATTERN="^(feat|fix|update|docs): .+"

if [[ ! "$COMMAND" =~ dotnet[[:space:]]+(build|run|publish) ]]; then
exit 0
if [[ ! "$COMMIT_MSG" =~ $PATTERN ]]; then
echo "[Hook] โœ— Invalid commit message format"
echo ""
echo "Expected:"
echo " {type}: {Korean description}"
echo ""
echo "Types:"
echo " feat โ€” new feature"
echo " fix โ€” bug fix or missing DI/config"
echo " update โ€” modification to existing code"
echo " docs โ€” documentation changes"
echo ""
echo "Examples:"
echo " feat: ๋ฐฉ ์ƒ์„ฑ API ์ถ”๊ฐ€"
echo " fix: ์„ธ์…˜ DI ๋ˆ„๋ฝ ์ˆ˜์ •"
echo " update: Room ์—”ํ„ฐํ‹ฐ ์ˆ˜์ •"
exit 1
fi

echo "[Hook] Checking tests before proceeding..."

dotnet test PushAndPull/PushAndPull.sln --nologo --no-build 2>/dev/null
RESULT=$?
# punctuation check
if [[ "$COMMIT_MSG" =~ [\.\!]$ ]]; then
echo "[Hook] โœ— Do not end the message with punctuation"
echo "Example: feat: ๋ฐฉ ์ƒ์„ฑ API ์ถ”๊ฐ€"
exit 1
fi

if [ $RESULT -ne 0 ]; then
echo "[Hook] โœ— Tests failed โ€” fix tests before running dotnet $BASH_REMATCH[1]"
exit 2
# ensure single line
if [[ "$COMMIT_MSG" == *$'\n'* ]]; then
echo "[Hook] โœ— Commit body is not allowed"
echo "Use subject line only"
exit 1
fi

echo "[Hook] โœ“ Tests passed"
exit 0
echo "[Hook] โœ“ Commit message format valid"
Loading
Loading