Github-Cookbook

Github์„ ํƒ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

View project on GitHub

๐Ÿ“Œ Previous Contents

Repository ์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด Code ๋ถ€ํ„ฐ Pull requests, Actions, Projects, Wiki, Security, Insights, ๊ทธ๋ฆฌ๊ณ  Settings ๊นŒ์ง€

8๊ฐ€์ง€์˜ ๋ฉ”๋‰ด ์ค‘์—์„œ Settings ์—์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ์–ผ๋งˆ๋‚˜ ์•Œ๊ณ  ์žˆ๋Š”์ง€ ์Šค์Šค๋กœ ์ž๋ฌธํ•ด๋ด…์‹œ๋‹ค.

์ €๋Š” ์ฃผ๋กœ Repository ์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜, ์œ„์น˜๋ฅผ ์ด๋™ํ•˜๊ฑฐ๋‚˜, ์‚ญ์ œํ•  ๋•Œ ์ด์™ธ์—๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Options Settings ์ด์™ธ์˜ ๋‹ค๋ฅธ ํƒญ ๋ฉ”๋‰ด๋“ค์— ๋Œ€ํ•ด์„œ๋„ ์‚ดํŽด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Repository Setting

์Šคํฌ๋ฆฐ์ƒท 2020-03-27 ์˜ค์ „ 12 18 36

Setting menu

์Šคํฌ๋ฆฐ์ƒท 2020-03-27 ์˜คํ›„ 9 57 43

Repository Setting ์‚ดํŽด๋ณด๊ธฐ

Options

Template repository

2019๋…„ 6์›” 9์ผ์ž๋กœ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์ธ template repository๋Š”, ์„ค์ •์„ ์ฒดํฌํ•˜๋ฉด ๋ชจ๋“  ํŒŒ์ผ๊ณผ ํด๋”๊ฐ€ ํฌํ•จ๋œ ์ƒˆ repository ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠœํ† ๋ฆฌ์–ผ์„ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ๊ธฐ์—…์šฉ boilerplate ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ์‹œ 1 : https://github.com/ttub-nii/test-template-repo

์‚ฌ์šฉ ์˜ˆ์‹œ 2 : https://github.com/ttub-nii/Study-Node-Server

Fork ์™€ ๋ฌด์—‡์ด ๋‹ค๋ฅธ๊ฐ€? Fork ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋งค์šฐ ์ค‘์š”ํ•œ ๋‹ค๋ฅธ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • fork ๋ฅผ ๋ฐ›์€ repository ์—๋Š” ์ƒ์œ„ ์ €์žฅ์†Œ์˜ ์ „์ฒด commit history ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ template ์—์„œ ์ž‘์„ฑ๋œ repository ๋Š” ์‹ฑ๊ธ€ commit ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  • fork ๋กœ commit ํ•œ ๋‚ด์šฉ์€ contributions ๊ทธ๋ž˜ํ”„์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ template ์—์„œ ์ƒ์„ฑ๋œ repository ์— ๋Œ€ํ•œ commit ์€ contributions ๊ทธ๋ž˜ํ”„์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  • fork ๋Š” ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ์ฝ”๋“œ๋ฅผ ๊ธฐ์—ฌํ•˜๊ธฐ ์œ„ํ•œ ์ž„์‹œ์ ์ธ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ์ง€๋งŒ template ์—์„œ repository ๋ฅผ ๋งŒ๋“ค๋ฉด ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Fork commit ์ด Merge ๋˜๊ธฐ ์ „ / ํ›„ ๋น„๊ต

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2020-04-01 แ„‹แ…ฉแ„’แ…ฎ 11 46 29ใ€€ ใ€€ แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2020-04-02 แ„‹แ…ฉแ„’แ…ฎ 1 40 17

##

Social preview

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Repository ์— ๋งํฌ๋ฅผ ๊ฑธ ๋•Œ ์†Œ์…œ ๋ฏธ๋””์–ด ํ”Œ๋žซํผ์— ํ‘œ์‹œ๋˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์œผ๋ฉด ์ €์žฅ์†Œ ๋ฐ ์†Œ์œ ์ž ์•„๋ฐ”ํƒ€์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Social preview ์ ์šฉ ์ „ / ํ›„ ๋น„๊ต

ใ€€

##

Features

  • Wikis

    • ์ž์‹ ์˜ Repository ์— ๋Œ€ํ•ด documents ๋ฅผ ์ž‘์„ฑํ•ด์„œ ๋‹ค๋ฅธ ์ด๋“ค์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    • ์„ ํƒ์„ ํ•ด์ œํ•˜๋ฉด Wiki ํƒญ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Wiki ๋ฅผ collaborators ์—๊ฒŒ๋งŒ ์ˆ˜์ • ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Issues

    • ์‚ฌ์šฉ์ž์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ชจ์œผ๊ฑฐ๋‚˜, sw ์˜ ๋ฒ„๊ทธ๋ฅผ report ํ•˜๊ฑฐ๋‚˜, task ๋ฅผ ์˜ค๊ฑฐ๋‚˜์ด์ฆˆ ํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • Issues ํƒญ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๊ณ , Set up templates ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ƒˆ Issue ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์–‘์‹์„ ์ปค์Šคํ…€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • template ์˜ ํƒ€์ž…์„ Bug report, Fearture request, Custom template ์ค‘์— ์„ ํƒํ•˜์—ฌ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    • ์ด์Šˆ ์ œ๋ชฉ์„ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜, repository ์— ์ฝ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ด์Šˆ๋ฅผ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜, title, labels, YAML frontmatter ํ˜•์‹์˜ ์ปค์Šคํ…€ ๋ผ๋ฒจ์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ์ƒท 2020-03-28 ์˜คํ›„ 2 21 04

  • Sponsorships

    • ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๊ฐ€์น˜๋ฅผ ๊ธฐ์—ฌํ•˜๊ณ  ํ•ด๋‹น repository ์— ๋Œ€ํ•ด ์Šคํฐ์„œ ์‹ญ(๊ฒฝ์ œ์  ์ง€์›)์„ ๋ฐ›์„ ๊ฒƒ์ธ์ง€ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

    • Set up sponsor button ์„ ๋ˆ„๋ฅด๋ฉด ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ๊ฐ€์‹œ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ์Šคํฐ์„œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    TIP

    Github Sponsor ๊ณ„์ •์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ  ์€ํ–‰, ์„ธ๊ธˆ ์ •๋ณด๋ฅผ ์ œ์ถœํ•˜๊ณ  GitHub ๊ณ„์ •์—์„œ 2 ๋‹จ๊ณ„ ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์Šคํฐ์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Projects

    ์Šคํฌ๋ฆฐ์ƒท 2020-03-31 ์˜ค์ „ 2 07 15

    • ์ž‘์—…์„ ์กฐ์งํ™”, ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋งค๊ธธ ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์‹œํŒ์ž…๋‹ˆ๋‹ค.

    • ํŠน์ • ๊ธฐ๋Šฅ์˜ ์ž‘์—…์ด๋‚˜ ํฌ๊ด„์ ์ธ ๋กœ๋“œ๋งต์ด๋‚˜, ์ถœ์‹œ ์ฒดํฌ ๋ฆฌ์ŠคํŠธ ๋“ฑ์— ๊ด€ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Projects Template ์ข…๋ฅ˜

    • None
    • Basic kanban
    • Automated kanban
    • Automated kanban with reviews
    • Bug triage

##

Data services

denpendency ์—์„œ ์ทจ์•ฝ์„ฑ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์„ ๋•Œ ์•Œ๋ฆผ์„ ์ฃผ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ ์ทจ์•ฝ์„ฑ์€ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ, ๊ฐ€์šฉ์„ฑ์„ ์†์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์•…์šฉ๋  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

Security Alerts ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • ์‹ฌ๊ฐ๋„ ์ˆ˜์ค€

  • ํ”„๋กœ์ ํŠธ์˜ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ๋งํฌ

  • ์ทจ์•ฝ์ ์„ ํ•ด๊ฒฐํ•˜๋Š” ์ž๋™ ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ๊ฐ€ ํฌํ•จ๋œ Pull requests ๋งํฌ

##

Merge button

Pull request ๋ฅผ merge ํ•  ๋•Œ, commit / ์Šค์ฟผ์‹œ / ๋ฆฌ๋ฒ ์ด์Šค ์ค‘์—์„œ ์–ด๋–ค ์กฐํ•ฉ์„ ํ—ˆ์šฉํ•  ๊ฒƒ์ธ์ง€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋งŒ์•ฝ protected ๋ธŒ๋žœ์น˜์—์„œ linear history ๋ฅผ ํ™œ์„ฑํ™” ํ•œ ๊ฒฝ์šฐ์—๋Š” ์Šค์ฟผ์‹œ๋‚˜ ๋ฆฌ๋ฒ ์ด์Šค๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ต์…˜ ์ค‘์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์˜ต์…˜์€ ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Allow merge commits

  • Allow squash merging

  • Allow rebase merging

Pull request ๊ฐ€ merge ๋œ ํ›„ ํ—ค๋“œ ๋ธŒ๋žœ์น˜๋ฅผ ์ž๋™์œผ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Automatically delete head branches

##

GitHub Pages

GitHub ์ €์žฅ์†Œ์—์„œ ์ง์ ‘ ๊ฐœ์ธ, organization ๋˜๋Š” ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์›น ์‚ฌ์ดํŠธ๋ฅผ ํ˜ธ์ŠคํŒ… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
GitHub์˜ ์ €์žฅ์†Œ์—์„œ HTML, CSS ๋ฐ JavaScript ํŒŒ์ผ์„ ์ง์ ‘ ๊ฐ€์ ธ ์™€์„œ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๊ฒŒ์‹œํ•˜๋Š” ์ •์  ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

  • Source

    • default source ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋นŒ๋“œ๋œ master branch ์˜ ๋‚ด์šฉ์œผ๋กœ ์‚ฌ์ดํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค.

    • ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋‚˜ ํด๋”์—์„œ ํ”„๋กœ์ ํŠธ ์‚ฌ์ดํŠธ๋ฅผ ๊ฒŒ์‹œํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Theme Chooser

    • GitHub ํŽ˜์ด์ง€ ์‚ฌ์ดํŠธ์— ํ…Œ๋งˆ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์ดํŠธ์˜ ๋ชจ์–‘๊ณผ ๋А๋‚Œ์„ ์‚ฌ์šฉ์ž ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์˜ˆ์‹œ : https://ttub-nii.github.io/Github-Cookbook/

##

Danger Zone

  • ๋น„๊ณต๊ฐœ & ๊ณต๊ฐœ ์„ค์ •

  • repository ์˜ Owner ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜, ์œ„์น˜๋ฅผ ์ด๋™

  • repository ๋ฅผ ์•„์นด์ด๋น™ ๋ชฉ์ , read-only ๋กœ ์‚ฌ์šฉ

  • repository ๋ฅผ ์‚ญ์ œ

    • ๊ทธ๋Ÿฌ๋‚˜ ์‚ญ์ œ๋œ repository ๋˜๋Œ๋ฆฌ๊ธฐ๋Š” User settings > Repositories ์—์„œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

##

Manage access

team ์ด๋‚˜ person ์„ ๊ฒ€์ƒ‰ & ์ดˆ๋Œ€ํ•  ์ˆ˜ ์žˆ๊ณ  ๊ถŒํ•œ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

Branches

Branch protection rules

Pull requests ๊ฐ€ Merge ์ „์— ์ผ๋ จ์˜ ํ™•์ธ์„ ํ†ต๊ณผํ•˜๋„๋ก ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์ƒํƒœ ํ™•์ธ์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•œ Pull requests ์„ ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์ˆ˜์˜ ์Šน์ธ ๊ฒ€ํ† ๊ฐ€ ์žˆ์–ด์•ผ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Add rules ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์˜ค์ง€๋Š” ์ปดํ“จํ„ฐ ๊ณต๋ถ€ - Git์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž 5. GitHub ์ถ”๊ฐ€ ๊ธฐ๋Šฅ๋“ค
  • Require pull request reviews before merging

    • ์ง€์ •๋œ ํšŸ์ˆ˜ ๋งŒํผ์˜ ์Šน์ธ์ด ์™„๋ฃŒ๋˜์–ด์•ผ Merge๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • ์ด ์กฐ๊ฑด์„ ์„ ํƒํ•  ๊ฒฝ์šฐ, ์š”๊ตฌ ์Šน์ธ ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋˜ ๋‹ค๋ฅธ ์ถ”๊ฐ€ ์„ ํƒ ์‚ฌํ•ญ๋“ค์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  • Require status checks to pass before merging
    • CI ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ธฐ์กด ๋ธŒ๋žœ์น˜์™€ ์ถฉ๋Œ์ด ์—†์„ ์‹œ์—๋งŒ Merge๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • A ๋ธŒ๋žœ์น˜๊ฐ€ ์ตœ์‹ ์ธ ์ƒํƒœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ด๋‹น ๊ฒ€์‚ฌ๋ฅผ ์‹ค์‹œํ•˜๊ธฐ์—, B ๋ธŒ๋žœ์น˜์—์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋˜ ์ค‘ C ๋ธŒ๋žœ์น˜์— ์˜ํ•ด A ๋ธŒ๋žœ์น˜๊ฐ€ ์—…๋ฐ์ดํŠธ ๋์„ ์‹œ, ์ƒˆ๋กœ์šด A ๋ธŒ๋žœ์น˜๋ฅผ B ๋ธŒ๋žœ์น˜๋กœ Merge ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Require signed commits
    • GPG key๊ฐ€ ์žˆ์–ด์•ผ Merge๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • Require linear history
    • to block all merge commits from a protected branch.
  • Include administrators
    • ๊ด€๋ฆฌ์ž์—๊ฒŒ๋„ ์ด ๋ชจ๋“  ์ œ์•ฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋„๋ก ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๊ฐ•์ œ๋กœ ํ‘ธ์‹œํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜, ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ ์—ญ์‹œ ๊ถŒํ•œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Allow force pushes

  • Allow deletions

    ์‚ฌ์šฉ ์˜ˆ์‹œ : https://github.com/binarysound/web-lab/issues/4

Webhooks

์•ฑ์ด ๋‹ค๋ฅธ ์•ฑ์— ์‹ค์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
GitHub ์˜ ํŠน์ • ์ด๋ฒคํŠธ๋ฅผ ๊ตฌ๋…ํ•˜๋Š” GitHub Apps ๋˜๋Š” OAuth Apps ์™€ ๊ฐ™์€ integrations ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Webhooks ์˜ URL์— HTTP ์š”์ฒญ์„ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ฃผ๋กœ POST ํ˜•ํƒœ์˜ ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋ณด๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์•ฝํ•˜์ž๋ฉด, Webhook ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ํŠน์ • API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  44bits - ๊นƒํ—ˆ๋ธŒ ์›นํ›…์„ ํ™œ์šฉํ•ด ์Šฌ๋ž™์— ์ด๋ฒคํŠธ ์ „๋‹ฌํ•˜๊ธฐ SendGrid Team - Whatโ€™s a Webhook?
  • ์œ ์ผํ•œ ๋‹จ์ ์€ ์ฒ˜์Œ์— ์„ค์ •ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ Webhook ์€ API์™€๋Š” ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • Webhook ์€ API ์ŠคํŽ™์— ํ•ด๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— Webhook ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” API๋ฅผ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณดํ†ต API๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์–ด๋–ค ์ •๋ณด๋ฅผ ๋˜๋Œ๋ ค์ค๋‹ˆ๋‹ค๋งŒ, Webhook ์— ๋“ฑ๋กํ•˜๋ฉด ์–ด๋–ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ๊ฑฐ๊พธ๋กœ ๊นƒํ—ˆ๋ธŒ์—์„œ ๋“ฑ๋กํ•œ URL์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

Notifications

push ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์„ค์ •ํ•œ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋กœ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Approved header

    • GitHub๊ฐ€ ๋ณด๋‚ด๋Š” ๊ฐ ์ด๋ฉ”์ผ ์•Œ๋ฆผ์—๋Š” ํ—ค๋” ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๋ชจ๋“  ์ด๋ฉ”์ผ์˜ ํ—ค๋” ์ •๋ณด๋Š” ์ผ๊ด€์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ ๋ชจ๋“  GitHub ์•Œ๋ฆผ ๋˜๋Š” ํŠน์ • ์œ ํ˜•์˜ GitHub ์•Œ๋ฆผ์„ ํ•„ํ„ฐ๋งํ•˜๊ฑฐ๋‚˜ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • โ€˜Approvedโ€™ ํ—ค๋” ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ฝ๊ธฐ ์ „์šฉ ๋ฉ”์ผ์„ ์ž๋™์œผ๋กœ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.

Integrations

์„ค์น˜๋œ Github Apps ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ์‹œ

์Šคํฌ๋ฆฐ์ƒท 2020-04-01 ์˜คํ›„ 8 23 33

Deploy keys

repository ์˜ SSH ํ‚ค๋กœ, repository ์— ์ ‘๊ทผํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ฝ๊ธฐ ์ „์šฉ (์›ํ•˜๋Š” ๊ฒฝ์šฐ r / w) ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ์ฃผ์š” ๊ธฐ๋Šฅ์€ ์ฝ๊ธฐ ์ ‘๊ทผ ๊ถŒํ•œ์ด ํ•„์š”ํ•œ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ Deploy key ๋ฅผ ์„ค์ •ํ•˜๋ฉด ์„œ๋ฒ„ ์ชฝ์ด ๋ง๊ฐ€์กŒ์„ ๊ฒฝ์šฐ์— ๋Œ€๋น„ํ•˜์—ฌ repository ๋ฅผ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ• : https://gist.github.com/zhujunsan/a0becf82ade50ed06115

Secrets

์•”ํ˜ธํ™” ๋˜์–ด ์ €์žฅ๋˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ํŠน์ • ์„ ํƒํ•œ ์ž‘์—…์—๋งŒ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
Repository ์— ๊ณต๋™ ์ž‘์—…์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ๋‚˜ ์ด๋Ÿฌํ•œ ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์•ก์„ธ์Šค ํ† ํฐ๊ณผ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ณ , fork ๋กœ ๋ถ€ํ„ฐ Pull requests ํ•œ ์›Œํฌ ํ”„๋กœ์šฐ์—๋Š” Secret ์ด ์ „๋‹ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Github ๊ณต์‹ ๋ฌธ์„œ์—์„œ๋Š” Secret ์ด๋ฆ„์€ ๊ณต๋ฐฑ์„ ํฌํ•จํ•  ์ˆ˜ ์—†๊ณ , JSON ์ด๋‚˜ ์ธ์ฝ”๋”ฉ ๋œ Git Blob ๊ณผ ๊ฐ™์€ structured data ๋ฅผ secret ๊ฐ’์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ฑธ ์ง€์–‘ํ•˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜

https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets

Actions

  • local ๊ณผ third party Action ๋ชจ๋‘ ํ—ˆ์šฉํ•จ
    • Action ์ฝ”๋“œ๊ฐ€ ์ด repository ์— ์žˆ๋Š”์ง€, organization ์— ์žˆ๋Š”์ง€, ์ œ 3์ž๊ฐ€ ์†Œ์œ ํ•œ repository ์— ์žˆ๋Š”์ง€ ์ƒ๊ด€ ์—†์ด ๋ชจ๋“  Action ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • local Action ๋งŒ ํ—ˆ์šฉํ•จ
    • ํ•ด๋‹น repository ๋‚˜ organization ์— ์†ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์–ด๋–ค Action ์ด๋“  ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Action ์‚ฌ์šฉ ์•ˆํ•จ
    • ํ•ด๋‹น repository ์—์„œ ๋ชจ๋“  Action ์„ ๋ถˆํ—ˆํ•ฉ๋‹ˆ๋‹ค.

Security Alerts (organization ์— ์†ํ•œ repository)

๋ณด์•ˆ ๊ฒฝ๊ณ ๋Š” ๊ด€๋ฆฌ์ž๊ฐ€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ ์‚ฌ๋žŒ๊ณผ ํŒ€๋งŒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›์œผ๋ฉด dependencies ์ค‘ ํ•˜๋‚˜์—์„œ ์ƒˆ๋กœ์šด ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ์•Œ๋ฆผ์„ ์ฃผ๊ณ , ์ž๋™ ์—…๋ฐ์ดํŠธํ•œ ๋ณด์•ˆ ๋‚ด์šฉ์˜ ์ถ”๊ฐ€ ์„ธ๋ถ€ ์ •๋ณด๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ ๊ฐœ์ธ์€ ํ•ด๋‹น ํƒญ์—์„œ ๋ณด์•ˆ ์•Œ๋ฆผ์„ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์„ ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Choose the people or teams you would like to grant access to security alerts

๋ณด์•ˆ ๊ฒฝ๊ณ ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋Š” ๊ฐœ์ธ์ด๋‚˜ ํŒ€์„ ์ฐพ์•„ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.


Moderation

Interaction limits

24์‹œ๊ฐ„ ๋™์•ˆ repository ๋‚˜ organization ์˜ ํŠน์ • ์‚ฌ์šฉ์ž๊ฐ€

  1. comment ๋ฅผ ๋‚จ๊ธฐ๊ฑฐ๋‚˜,
  2. issues ๋ฅผ ์—ด๊ฑฐ๋‚˜,
  3. Pull requests ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, Github ๊ณต์‹ ๋ฌธ์„œ๋Š”

This may be used to force a "cool-down" period during heated discussions.

๋„ˆ๋ฌด ๋…ผ์Ÿ์ด ๊ณผ์—ด๋์„ ๋•Œ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง„์ • ๊ธฐ๊ฐ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • Limit to existing users
    • Users that have recently created their account will be unable to interact with the repository.

    • 24์‹œ๊ฐ„ ์ด๋‚ด์— ๊ณ„์ •์„ ๋งŒ๋“  ์‚ฌ์šฉ์ž ์ค‘์— contributions ๊ฐ€ ์—†๊ณ  ๊ณต๋™ ์ž‘์—…์ž๋„ ์•„๋‹Œ ์‚ฌ์šฉ์ž์˜ ํ™œ๋™์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

  • Limit to prior contributors
    • Users that have not previously committed to the repositoryโ€™s master branch will be unable to interact with the repository.

    • ์ด์ „์— master ๋ธŒ๋žœ์น˜์— commit ํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๊ณต๋™ ์ž‘์—…์ž๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž์˜ ํ™œ๋™์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

  • Limit to repository collaborators
    • ๊ณต๋™ ์ž‘์—…์ž๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž์˜ ํ™œ๋™์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

Reported content (organization ์— ์†ํ•œ repository)

collaborators ๋‚˜ contributors ๋Š” ์š•์„ค ๋˜๋Š” ํŒŒ๊ดด์ ์ธ ์ฝ˜ํ…์ธ ๋ฅผ ์‹ ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Accept ํ•œ๋‹ค๋ฉด repository ๊ด€๋ฆฌ์ž์—๊ฒŒ collaborators, contributors ๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ์‹ ๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค.


๋! ๋ชจ๋‘ ์ˆ˜๊ณ  ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค :)