no image
GitHub Action으로 LeetCode 풀이 commit 자동화하기 | LeetCode Sync
코딩 테스트 문제를 제공하는 사이트 중 국내에서는 백준, 프로그래머스 등은 BaekjoonHub를 통해 문제를 푸는 데로 연동이 됩니다. 해외의 대표적인 사이트인 LeetCode도 LeetHub라는 것이 존재하지만 버전이 다르다보니 어떤 것을 쓰는 것이 적절한지 확신이 없어서 GitHub Action을 찾아보게 됐습니다.Marketplace에서 필요한 기능을 제공하는 GitHub Action을 찾을 수 있습니다. 사용하는 방법은 여기서 알려준 방법으로 진행하면 됩니다.1. LeetCode 홈페이지에서 필요 정보 추출로그인이 된 상태에서 홈에서 개발자 도구(F12)로 네트워크 탭에서 웹 페이지가 서버와 주고받는 네트워크 요청을 살펴봅니다. 저같은 경우 왼쪽에서 session에서 확인했고, Request H..
2024.12.22
no image
[Git] Github에서 생성한 레포지토리 로컬에 가져오기 | PAT 인증, Authentication failed 해결
Github에서 생성한 레포지토리(저장 공간)에 로컬에서 만든 코드를 올리기 위해서 레포지토리를 로컬에 가져올 필요가 있었습니다. 하지만, 아래와 같은 오류가 나왔습니다. 본 글은 이 오류를 해결하는 과정을 기록하기 위해 쓰여졌습니다. fatal: Authentication failed for '[repository url]' 먼저 생성한 레포지토리의 url을 가져옵니다. 아래 사진과 같이 화면을 이동(repository 선택 > 상단 Code 탭 선택 > 우측 상단의 초록색 Code 버튼 클릭 > HTTPS 선택)해서 빨간색으로 표시된 링크 옆의 복사 버튼으로 url을 클립복드로 복사합니다.   이렇게 복사한 레포지토리 url을 아래 커맨드를 CLI에 입력합니다.  git clone [repositor..
2024.09.16
no image
[Git] 깃허브 원격저장소 연결 및 백업
저장소 연결하기 # 저장소 주소(origin) 추가 $ git remote add origin [address] # 연결됐는지 확인하기 $ git remote -v 변경점을 동기화하기 # 지역 저장소의 커밋을 맨 처음 원격 저장소로 올리기 # -u 옵션ㅇ느 지역 저장소의 브랜치를 원격 저장소의 master 브랜치에 연결하기 위한 것 # 한번만 사용하면 충분 $ git push -u origin master # 모든 로컬 브랜치의 변경점을 Git Hub에 업로드 $ git push [remote] [branch] # origin의 내용을 master 브랜치로 가져오기 $ git pull origin master - pull : 원격 저장소와 지역 저장소의 상태를 같게 만들기 위해 원격 저장소의 소스를 지역..
2021.11.10
반응형

코딩 테스트 문제를 제공하는 사이트 중 국내에서는 백준, 프로그래머스 등은 BaekjoonHub를 통해 문제를 푸는 데로 연동이 됩니다. 해외의 대표적인 사이트인 LeetCode도 LeetHub라는 것이 존재하지만 버전이 다르다보니 어떤 것을 쓰는 것이 적절한지 확신이 없어서 GitHub Action을 찾아보게 됐습니다.

Marketplace에서 필요한 기능을 제공하는 GitHub Action을 찾을 수 있습니다. 사용하는 방법은 여기서 알려준 방법으로 진행하면 됩니다.

1. LeetCode 홈페이지에서 필요 정보 추출

로그인이 된 상태에서 홈에서 개발자 도구(F12)로 네트워크 탭에서 웹 페이지가 서버와 주고받는 네트워크 요청을 살펴봅니다. 저같은 경우 왼쪽에서 session에서 확인했고, Request Headers에서 쿠키(Cookie :) 항목 안에 csrftoken과 LEETCODE_SESSION 라는 값을 찾아서 저장해둡니다. (;는 제외)

2. Secrets 생성하기

해당 GitHub 저장소의 Settings > Secrets and variables > Actions로 이동합니다. 하단에 살펴보면 New repository secret 버튼이 있는데 이를 클릭해 위에서 저장한 csrftoken과 LEETCODE_SESSION을 각각 저장합니다. (저같은 경우는 LEETCODE_CSRF_TOKEN과 LEETCODE_SESSION으로 저장했습니다)

3. 설정 및 yaml 파일 작성

해당 레포지토리에서 Settings > Actions > General 로 인동한 후 Workflow permissions(하단)에서 Read and write permissions로 설정합니다. 그리고 .github/worflows에 아래와 같은 sync_leetcode.yml 파일을 만듭니다.

name: Sync Leetcode

on:
  workflow_dispatch:
  schedule:
    - cron: '0 8 * * *'  # cron 표현식으로 이렇게 하면 매일 오전 8시에 업데이트. 작은 따옴표 사용!

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Sync
        uses: joshcai/leetcode-sync@v1.7
        with:
          github-token: ${{ github.token }}
          leetcode-csrf-token: ${{ secrets.LEETCODE_CSRF_TOKEN }}
          leetcode-session: ${{ secrets.LEETCODE_SESSION }}
          destination-folder: my-folder  # commit될 폴더명
          verbose: true
          commit-header: "[LeetCode Sync]"

만약 .github/workflows에 파일이 없다면 아래와 같은 명령어를 통해 만들어서 수정해주면 됩니다.

mkdir -p .github/workflows
touch .github/workflows/sync_leetcode.yml

4. Sync

이렇게 작성하면 원하는 시간대마다 자동으로 업데이트를 하게 됩니다. 만약 즉각적인 확인을 원한다면 해당 레포지토리의 Actions 탭에서 클릭을 통해 실행할 수 있습니다.

반응형
반응형

Github에서 생성한 레포지토리(저장 공간)에 로컬에서 만든 코드를 올리기 위해서 레포지토리를 로컬에 가져올 필요가 있었습니다. 하지만, 아래와 같은 오류가 나왔습니다. 본 글은 이 오류를 해결하는 과정을 기록하기 위해 쓰여졌습니다.

 

fatal: Authentication failed for '[repository url]'

 

먼저 생성한 레포지토리의 url을 가져옵니다. 아래 사진과 같이 화면을 이동(repository 선택 > 상단 Code 탭 선택 > 우측 상단의 초록색 Code 버튼 클릭 > HTTPS 선택)해서 빨간색으로 표시된 링크 옆의 복사 버튼으로 url을 클립복드로 복사합니다. 

 

 

이렇게 복사한 레포지토리 url을 아래 커맨드를 CLI에 입력합니다. 

 

git clone [repository url]

 

그러면 GitHub 사용자 이름과 비밀번호를 입력하라는 창이 나옵니다. 여기서 사용자 이름은 Github 프로필을 클릭하면 나오는 이름을 작성해주면 되지만, 여기서 Github 비밀번호를 입력하면 위에서 언급한 오류가 나오게 됩니다. 이를 해결하기 위해서는 Personal Access Token(PAT)을 사용해 Github에 접근할 수 있도록 설정하면 됩니다.

 

PAT를 생성하는 방법은 아래와 같은 절차로 진행하면 됩니다.

 

 

  1. GitHub 계정에 로그인합니다.
  2. 상단 우측 프로필 사진을 클릭한 후, Settings를 선택합니다.
  3. 좌측 메뉴에서 Developer settings를 선택한 후, Personal access tokens으로 이동합니다.
  4. Tokens (classic) 항목을 클릭한 다음, Generate new token 버튼을 클릭합니다.
  5. 토큰에 대한 설명을 작성하고, 사용 범위를 설정합니다.
    • repo 권한은 필수입니다.
  6. Generate token 버튼을 눌러 토큰을 생성합니다.
  7. 생성된 토큰을 복사합니다.

이렇게 완료하면 아래 이미지와 같이 잘 설치된 것을 확인할 수 있습니다. 

 

 

반응형
반응형
  • 저장소 연결하기
# 저장소 주소(origin) 추가
$ git remote add origin [address]

# 연결됐는지 확인하기
$ git remote -v

 

Github 내 저장소 주소(origin) 찾기

 

  • 변경점을 동기화하기
# 지역 저장소의 커밋을 맨 처음 원격 저장소로 올리기
# -u 옵션ㅇ느 지역 저장소의 브랜치를 원격 저장소의 master 브랜치에 연결하기 위한 것
# 한번만 사용하면 충분
$ git push -u origin master

# 모든 로컬 브랜치의 변경점을 Git Hub에 업로드
$ git push [remote] [branch]

# origin의 내용을 master 브랜치로 가져오기
$ git pull origin master

- pull : 원격 저장소와 지역 저장소의 상태를 같게 만들기 위해 원격 저장소의 소스를 지역 저장소로 가져오는 행위

 

반응형