
GitHub CLI
Git을 처음 배울 때, 커맨드 라인에서 배워서 익숙해져있는 것도 있기도 하고, intelliJ를 쓰다보니, 내장된 Git 도구를 사용하기 때문에 UI 툴은 따로 설치하여 사용하지 않았습니다. 아 intelliJ를 사용하기 이전에는 sourceTree를 쓰기도 했었네요. GitHub 데스크탑이라는 GitHub에서 만든 툴도 있지만, 몇번 써보고는 사용하지 않았습니다. 기능이 좋고 나쁘고를 떠나서, 커맨드 라인에서 쓰는 게 딱히 불편하지 않았고, 개발하다가 다른 툴과 계속 왔다갔다하면서 작업하는게 귀찮았습니다. 그래서 intelliJ의 내장된 툴을 쓰거나, 터미널을 실행해서 커맨드 라인에서 Git을 사용하는게 편했습니다. 그런데 이런 제 마음을 GitHub에서 읽었는지, GitHub CLI( https:/..

GitHub OAuth 구현하기 (3)
2020/07/04 - GitHub OAuth 구현하기 (1) 2020/07/07 - GitHub OAuth 구현하기 (2) 에서 이어집니다. GitHub OAuth 구현을 실제 소스코드를 통해서 설명하려고 합니다. ( 사용한 언어는 Golang 이지만, 다른 언어를 사용하더라도 비슷한 방식으로 구현할 수 있습니다. ) 먼저 init() 함수에서 OAuth관련 설정을 해 줍니다. 여기서 만든 설정은 전체 앱에서 사용합니다. var OAuthConf *oauth2.Config func init() { OAuthConf = &oauth2.Config{ ClientID: "{{ oauth app client id }}", ClientSecret: "{{ oauth app client secret }}", Re..

GitHub OAuth 구현하기 (2)
2020/07/04 - GitHub OAuth 구현하기 (1) 에서 이어집니다. GitHub OAuth의 인증을 진행하기 위해, 3가지 파일을 만들었습니다. main.go : 앱의 라우팅 및 OAuth 인증을 진행하기 위한 코드 login.html : "GitHub으로 로그인하기" 버튼을 보여주며, 인증 되지 않은 사용자가 처음 접하는 화면입니다. main.html : GitHub으로부터 인증 받은 이후 처음 보여질 화면입니다. main.go에서 정의한 라우팅은 http.HandleFunc("/", MainHandler) http.HandleFunc("/auth", AuthHandler) http.HandleFunc("/auth/callback", CallbackHandler) log.Fatal(http..

GitHub OAuth 구현하기 (1)
앞으로 몇개 글을 통해서 Go로 OAuth 인증을 구현하는 것을 해보려고 합니다. 오늘 글은 그 첫번째로 OAuth인증 방식과 GitHub에서 OAuth앱을 등록하는 방법을 간략히 설명합니다. 아마도 "Login with Google" 또는 "Sign in with GitHub" 이라는 버튼은 이제 익숙하게 봐왔을 것입니다. 사용자에게는 편리한 기능이지만, 기능을 개발하는 개발자는 개발하기가 좀 까다로운 기능입니다. ( 물론 이미 훌륭하게 구현해 놓은 소스코드들이 있기 때문에 반드시 까다롭다고 말할 수는 없습니다. ) 바로 OAuth 라는 규약의 인증과정을 이해해야 하고, 그 규약에 맞추어 메시지를 주고 받을 수 있어야 하기 때문이기도 하고, 테스트를 하려면, 직접 해당하는 서비스와 연결해야 할 필요가 ..

GitHub에서 Merge된 Branch 자동으로 삭제하기.
요새는 Git을 사용하는 사람도 많아졌고, GitHub에서 개발하는 사람도 많아졌습니다. GitHub에서 개발한다는 이야기는 Pull Request(PR)를 이용해서 workflow를 사용한다는 이야기도 될 수 있을 것 같은데요. Pull Request를 이용하다 보면 관리해줘야 할 것이 있습니다. 바로 Merge된 Branch를 삭제해주는 것입니다. GitHub에서는 Merge될 경우, 브랜치를 쉽게 삭제할 수도록 "Delete Branch" 버튼을 제공합니다. 혼자 관리하는 리파지토리는 잘 눌러서 살아있는(?) 브랜치만 관리합니다. 그런데, 여러명이 협업하는 리파지토리에서는 이 버튼을 잘 눌러지지 않더라구요. 일단 Merge담당자(Reviewer일 수도 있습니다) 입장에서는 함부로 브랜치를 삭제하기 ..