Skip to content

DaleStudy/github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

DaleStudy GitHub App

DaleStudy ์กฐ์ง์˜ ์ž๋™ํ™” ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” GitHub App (https://github.com/apps/dalestudy)

ํ”„๋กœ์ ํŠธ ๋น„์ „

DaleStudy ์กฐ์ง์˜ ์—ฌ๋Ÿฌ repository์—์„œ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…๋“ค์„ ์ž๋™ํ™”ํ•˜๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ

1. PR Week ์„ค์ • ์ž๋™ ๊ฒ€์‚ฌ (๋ฆฌํŠธ์ฝ”๋“œ ์Šคํ„ฐ๋””)

Fork PR์—์„œ๋„ ์ž‘๋™ํ•˜๋„๋ก GitHub Projects v2์˜ Week ํ•„๋“œ๋ฅผ ์กฐํšŒํ•˜๊ณ , Week ์„ค์ •์ด ๋ˆ„๋ฝ๋œ PR์— ์ž๋™์œผ๋กœ ๊ฒฝ๊ณ  ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํŠธ๋ฆฌ๊ฑฐ ๋ฐฉ์‹:

  • ์‹ค์‹œ๊ฐ„: GitHub Organization Webhook (Week ์„ค์ • ๋ณ€๊ฒฝ ์ฆ‰์‹œ ๋ฐ˜์‘)
  • ์ˆ˜๋™: REST API ์ง์ ‘ ํ˜ธ์ถœ

๋Œ€์ƒ: https://github.com/DaleStudy/leetcode-study

์„ค์ • ๊ฐ€์ด๋“œ: AGENTS.md์˜ "GitHub Organization Webhook ์„ค์ •" ์„น์…˜ ์ฐธ๊ณ 

ํ–ฅํ›„ ํ™•์žฅ ๊ณ„ํš

๋‹จ์ผ Worker์— ์—ฌ๋Ÿฌ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ž๋™ํ™” ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๋ฐฐํฌ ๋ฐฉ๋ฒ•

1. Cloudflare ๊ณ„์ • ์„ค์ •

  1. https://dash.cloudflare.com ํšŒ์›๊ฐ€์ž…
  2. Workers ์„น์…˜์œผ๋กœ ์ด๋™

2. Wrangler CLI ์„ค์น˜

npm install -g wrangler
wrangler login

3. Secrets ์„ค์ •

GitHub App์˜ credentials๋ฅผ Worker secrets์— ์ €์žฅ:

cd cloudflare-worker

# APP_ID ์„ค์ •
wrangler secret put APP_ID
# ํ”„๋กฌํ”„ํŠธ์—์„œ GitHub App ID ์ž…๋ ฅ

# PRIVATE_KEY ์„ค์ •
wrangler secret put PRIVATE_KEY
# ํ”„๋กฌํ”„ํŠธ์—์„œ GitHub App Private Key ์ „์ฒด ๋‚ด์šฉ ์ž…๋ ฅ
# (-----BEGIN RSA PRIVATE KEY----- ๋ถ€ํ„ฐ -----END RSA PRIVATE KEY----- ๊นŒ์ง€)

4. Worker ๋ฐฐํฌ

wrangler deploy

๋ฐฐํฌ ์™„๋ฃŒ ํ›„ Custom Domain์„ ํ†ตํ•ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค:

https://github.dalestudy.com

API ์—”๋“œํฌ์ธํŠธ

Base URL: https://github.dalestudy.com

POST /check-weeks

๋ชจ๋“  Open PR์—์„œ Week ์„ค์ •์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์ž๋™์œผ๋กœ ๋Œ“๊ธ€ ์ž‘์„ฑ/์‚ญ์ œ

Request:

{
  "repo_owner": "DaleStudy",
  "repo_name": "leetcode-study"
}

Response:

{
  "success": true,
  "total_prs": 3,
  "checked": 3,
  "commented": 1,
  "deleted": 1,
  "results": [
    { "pr": 1970, "week": null, "commented": true },
    { "pr": 1969, "week": "Week 8", "commented": false, "deleted": true }
  ]
}

๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ

๋กœ์ปฌ ๊ฐœ๋ฐœ

# ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹œ์ž‘
wrangler dev

# ๋กœ์ปฌ ํ…Œ์ŠคํŠธ (๋ณ„๋„ ํ„ฐ๋ฏธ๋„)
curl -X POST http://localhost:8787/check-weeks \
  -H "Content-Type: application/json" \
  -d '{"repo_owner": "DaleStudy", "repo_name": "leetcode-study"}'

ํ”„๋กœ๋•์…˜ ํ…Œ์ŠคํŠธ

curl -X POST https://github.dalestudy.com/check-weeks \
  -H "Content-Type: application/json" \
  -d '{"repo_owner": "DaleStudy", "repo_name": "leetcode-study"}'

๋กœ๊ทธ ํ™•์ธ

wrangler tail

๋ณด์•ˆ

  • DaleStudy organization๋งŒ ํ—ˆ์šฉ
  • CORS ํ—ค๋” ์„ค์ • (๋ชจ๋“  origin ํ—ˆ์šฉ)
  • GitHub App credentials๋Š” Worker secrets์— ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ
  • Rate limiting์€ Cloudflare์—์„œ ์ž๋™ ์ฒ˜๋ฆฌ

๋น„์šฉ

Cloudflare Workers ๋ฌด๋ฃŒ ํ‹ฐ์–ด:

  • 100,000 requests/day
  • 10ms CPU time per request

๋ฆฌํŠธ์ฝ”๋“œ ์Šคํ„ฐ๋”” PR ์ˆ˜์ค€์ด๋ฉด ๋ฌด๋ฃŒ ํ‹ฐ์–ด๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•˜๊ธฐ

์ƒˆ๋กœ์šด ์ž๋™ํ™” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด:

  1. index.js์— ์ƒˆ ์—”๋“œํฌ์ธํŠธ ๋ผ์šฐํŒ… ์ถ”๊ฐ€
  2. ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜ ๊ตฌํ˜„ (๊ธฐ์กด handleCheckAllPrs ์ฐธ๊ณ )
  3. GitHub App ๊ถŒํ•œ ํ™•์ธ ๋ฐ ํ•„์š”์‹œ ์ถ”๊ฐ€
  4. ๋ฌธ์„œ(AGENTS.md, README.md) ์—…๋ฐ์ดํŠธ
  5. ๋กœ์ปฌ ํ…Œ์ŠคํŠธ ํ›„ ๋ฐฐํฌ (wrangler deploy)

์ž์„ธํ•œ ๊ฐ€์ด๋“œ๋Š” AGENTS.md๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋ฌธ์ œ ํ•ด๊ฒฐ

Worker๊ฐ€ 401 ์—๋Ÿฌ ๋ฐ˜ํ™˜

GitHub App credentials ํ™•์ธ:

wrangler secret list

APP_ID์™€ PRIVATE_KEY๊ฐ€ ๋ชจ๋‘ ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Worker๊ฐ€ 403 ์—๋Ÿฌ ๋ฐ˜ํ™˜

DaleStudy organization์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ ๋ฌธ์„œ

  • AGENTS.md: AI ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ์ƒ์„ธ ๊ฐ€์ด๋“œ (๊ฐœ๋ฐœ์ž๋„ ํ•„๋…!)
  • DEPLOYMENT.md: ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐฐํฌํ•˜๋Š” ์ „์ฒด ๊ฐ€์ด๋“œ
  • GitHub App: https://github.com/organizations/DaleStudy/settings/apps/dalestudy

About

๐Ÿค– ๊นƒํ—ˆ๋ธŒ ์•ฑ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published