🚩 고생한 후 결론
아래 내용과 참고 url을 토대로 진행하면 간편하고 빠르게 연동이 가능합니다!
다만, 따라한 후 마지막 성공 부분에 기재한 권한 부분 에 대해서 반드시 확인하시고
권한부분까지 수정 완료하면 벨로그와 깃허브 연동 완전 성공 🧚♀️
중요! Public repository로 생성하기!
📛 코드 속 벨로그 주소 확인!!! 📛
name: Update Blog Posts
on:
push:
branches:
- master # 또는 워크플로우를 트리거하고 싶은 브랜치 이름
schedule:
- cron: '0 0 * * *' # 매일 자정에 실행
jobs:
update_blog:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Push changes
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git push https://${{ secrets.GH_PAT }}@github.com/rimgosu/velog.git
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install dependencies
run: |
pip install feedparser gitpython
- name: Run script
run: python scripts/update_blog.py
📛 코드 속 벨로그 아이디 확인!!! 📛
import feedparser
import git
import os
# 벨로그 RSS 피드 URL
# example : rss_url = 'https://api.velog.io/rss/@soozi'
rss_url = 'https://api.velog.io/rss/@[벨로그 아이디]'
# 깃허브 레포지토리 경로
repo_path = '.'
# 'velog-posts' 폴더 경로
posts_dir = os.path.join(repo_path, 'velog-posts')
# 'velog-posts' 폴더가 없다면 생성
if not os.path.exists(posts_dir):
os.makedirs(posts_dir)
# 레포지토리 로드
repo = git.Repo(repo_path)
# RSS 피드 파싱
feed = feedparser.parse(rss_url)
# 각 글을 파일로 저장하고 커밋
for entry in feed.entries:
# 파일 이름에서 유효하지 않은 문자 제거 또는 대체
file_name = entry.title
file_name = file_name.replace('/', '-') # 슬래시를 대시로 대체
file_name = file_name.replace('\\', '-') # 백슬래시를 대시로 대체
# 필요에 따라 추가 문자 대체
file_name += '.md'
file_path = os.path.join(posts_dir, file_name)
# 파일이 이미 존재하지 않으면 생성
if not os.path.exists(file_path):
with open(file_path, 'w', encoding='utf-8') as file:
file.write(entry.description) # 글 내용을 파일에 작성
# 깃허브 커밋
repo.git.add(file_path)
repo.git.commit('-m', f'Add post: {entry.title}')
# 변경 사항을 깃허브에 푸시
repo.git.push()
위에서 생성한 레포지토리 - Settings - Actions secrets and variables - Actions - New Repository Secret
Name : 원하는 이름 작성 / Secret : [2번에서 발급받은 토큰]
깜찍하게 실패한 이유
깜찍하게 실패한 이유
깃허브가 다시한번 친절하게 "응~ 너 실패~" 메일을 보내주었습니다 😊
Update Blog Posts: All jobs have failed
The requested URL returned error: 403
해당 오류가 발생했다고 합니다!!! 당장 구글링
저장서 권한이 없어서 발생한 오류라고 합니다!
더 구글링 해보니 사용자 이름을 기재해야 한다는 글을 발견하고 냅따 수정했습니다.
https://github.com/orgs/community/discussions/68891
https://velog.io/@nu11/Git-PUSH-%ED%95%A0-%EB%95%8C-403-%EC%97%90%EB%9F%AC-%EB%B0%9C%EC%83%9DThe-requested-URL-returned-error-403
수정하고 다음날 다시 확인해보겠습니다...또 다시 웨이링할꼬아ㅜㅜ
깜찍하게 실패한 이유 (점점 분노 차오르는 중 🔥🔥🔥)
깃허브가 다시한번 친절하게 "응~ 너 실패~" 메일을 보내주었습니다 😊
Update Blog Posts: All jobs have failed
Run git credential-manager reject https://github.com
git credential-manager reject https://github.com
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git push https://***github.com/sooozi/velog_mori.git
shell: /usr/bin/bash -e {0}
git: 'credential-manager' is not a git command. See 'git --help'.
Error: Process completed with exit code 1.
새로운 오류 발견!!! 이번에는 지피티 너를 믿는당
이러한 방법 중 하나로 문제를 해결할 수 있어야 합니다. 계속해서 문제가 지속되면 추가적인 디버깅이 필요할 수 있습니다.
=> Git Credential Manager를 설치하고 설정해보자!!!!
깜찍하게 실패한 이유와 성공 후기 (감덩 대폭발 👼👼👼)
=> 참고
https://stackoverflow.com/questions/72851548/permission-denied-to-github-actionsbot
https://github.com/ad-m/github-push-action/issues/96
✅ 참고
https://velog.io/@rimgosu/velog-글-작성-시-자동으로-github에-커밋하기
https://stackoverflow.com/questions/72851548/permission-denied-to-github-actionsbot
https://github.com/ad-m/github-push-action/issues/96
넘 어려버보여요 ;;