14
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

無料でGitHubにQiitaの記事を自動バックアップ

14
Last updated at Posted at 2020-10-01

Qiitaの記事をバックアップしていますか?

記事を誤って消してしまった時に備えて,GitHubに自動でバックアップをとってみました.

技術的に言えば,GitHub Actions(GitHubの提供するCI)を定期実行してQiitaのAPI経由で投稿を取得して保存しています.

用意するもの

  • GitHubアカウント x1
    • GitHubリポジトリ x1
    • GitHub Actions (特別な設定は不要)
  • Qiitaアカウント x1
    • Qiita API トークン x1

手順

[1] GitHubにバックアップ先リポジトリを作成

GitHubにアクセスして右上のメニューから「New repository」を選んでリポジトリを作ります.

image.png

リポジトリ名と公開の有無を指定します.下書き記事や非公開記事もバックアップされるのでPrivateを選びました.

image.png

「Create repository」を押します.

[2] QiitaでAPIトークンを作成

右上にあるメニューから「設定」を選びます.

image.png

サブメニューから「アプリケーション」を選びます.

image.png

個人用アクセストークンから「新しいトークンを発行する」を選びます.

image.png

わかりやすいトークンの説明を入力して,スコープに read_qiita を選びます.「発行する」を押してトークンを発行します.

image.png

表示されたトークンをテキストエディタに貼り付けてメモしておきます.

image.png

[3] GitHubリポジトリにトークンを登録

手順1で作成したGitHubリポジトリにアクセスして,メニューから「Settings」を選びます.

image.png

サブメニューから「Secrets」を選びます.「New secret」を選んで先程取得したQiitaのAPIトークンを登録します.

image.png

トークン名を QIITA_ACCESS_TOKEN に設定して,先程取得したトークンを貼り付けます.「Add secret」を押します.

image.png

[4] GitHubリポジトリに設定ファイルを追加

リポジトリのトップから「creating a new file」を選びます.

image.png

ファイル名に .github/workflows/backup.yml を指定してください.

image.png

以下の設定ファイルを貼り付けます.

name: QiitaBackup

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
  schedule:
    # * is a special character in YAML so you have to quote this string
    - cron:  '00 00 * * *'

jobs:
  backup:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v2-beta
      with:
        node-version: '12'
    - run: npx qiita_export_all
      env:
        QIITA_ACCESS_TOKEN: ${{ secrets.QIITA_ACCESS_TOKEN }}
    - uses: EndBug/add-and-commit@v4
      with:
        add: 'items/ img/'
        author_name: 'Auto Backup Bot'
        author_email: backup@example.com
        cwd: '.'
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

「Commit new file」を押すと自動でバックアップが開始されます.

image.png

[5] GitHub Actionsをチェック

毎日0:00(UTC)に自動で定期的にバックアップが実行されます.9:00(JST)にバックアップが出来ているか確認してみてください.

image.png

快適なQiitaライフを!

14
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?