Qiita TeamからNotePMへデータ移行するための方法と、プログラムの使い方を紹介します。
目次
Qiita Teamからのデータエクスポート
Qiita Teamの設定にチーム設定があります。
このチーム設定の下の方にデータのエクスポートがあります。
このエクスポートを実行すると、エクスポートの準備が開始します。しばらくすると、準備ができた旨メールが送られてきます。
チームデータはZipファイルでダウンロードされます。解凍(展開)すると、次のような内容となっています。
エクスポートデータについて
エクスポートされたデータの形式は次のようになっています。
- articles
記事データです。記事1件ずつ、1つのJSONファイルになっています。 - groups
グループデータです。1つのグループずつ、1つのJSONファイルになっています。 - projects
プロジェクトデータです。1つのグループずつ、1つのJSONファイルになっています。
エクスポートデータに画像や添付ファイルのデータは含まれませんので注意してください。
Qiita Teamのアクセストークン発行
Qiita Teamの設定画面にて、アクセストークンを発行します。これはアプリケーションの中にあります。そして、個人用アクセストークンにて 新しく発行する
を選択します。
スコープにて read_qiita_team を必ず選択してください(他は選択不要です)。
トークンが発行されますので、忘れずにコピーしてください。このトークンは再表示できません。
データのインポート
ではここからエクスポートしたデータをNotePMへ取り込む手順を紹介します。まず、プログラムをインストールします。必要なものは次の通りです。
- Node.js
- プログラムのインストール
- アクセストークンの取得
- 設定ファイルの作成
Node.jsのインストール
Node.jsはここからダウンロードできます。ダウンロード後、インストールを実行してください。
プログラムのインストール
プログラムはNode.jsをインストールした環境であれば、次のコマンドでインストールできます。
npm install notepm_importer -g
プログラムはMIT Licenseで公開しています。コードはNotePMMania/notepm_importer: 各種ドキュメント共有サービスからNotePMへ移行するスクリプトにて公開しています。
アクセストークンの取得
NotePMのアクセストークンは個人設定のAPIアクセストークンから取得できます。
そしてアクセストークンを新規作成してください。スコープとして、読み込みと書き込みの両方にチェックを付けてください。
生成されたアクセストークンは、再確認する方法はありません。必ずコピーしたり控えておいてください。
設定ファイルの作成
Qiita Teamのエクスポートデータにはユーザ名などの情報がありません。ユーザID(英数字)のみしかありません。そこで、Qiita TeamのユーザIDとNotePMの紐付けを行います。ベースになる設定ファイルは次のように出力できます。
notepm-users -a ACCESS_TOKEN -t TEAM_DOMAIN
- ACCESS_TOKEN
先ほど作成したNotePMのアクセストークンです - TEAM_DOMAIN
NotePMのチームドメインです(例:notepm)
実行すると、次のようにYAMLファイルの内容が出力されます。
:-:: プロジェクト太郎: "0000000001"-:: プロジェクト花子: "0000000002"
この内容をたとえば users.yaml として保存します。その後 id
の後にQiita TeamのユーザIDを記入してください。たとえば次のような内容にします。
:-: taro: プロジェクト太郎: "0000000001"-: hanako: プロジェクト花子: "0000000002"
これで準備完了です。
インポートを実行する
ではインポートを実行します。コマンドは次のようになります。(一行でコマンド実行する場合は、\は不要です
notepm-qiita \-q QIITA_ACCESS_TOKEN \-p PATH_TO_EXPORT_DIR \-a ACCESS_TOKEN \-t TEAM_DOMAIN \-u PATH_TO_SETTING_YAML
内容は次の通りです。
- QIITA_ACCESS_TOKEN
Qiita Teamで作成したアクセストークンです - PATH_TO_EXPORT_DIR
Qiita TeamからエクスポートしたZipファイルを解凍(展開)したディレクトリのパスです(例: /Users/yamada/Downloads/qiita ) - ACCESS_TOKEN
先ほど作成したNotePMのアクセストークンです - TEAM_DOMAIN
NotePMのチームドメインです(例:notepm) - PATH_TO_SETTING_YAML
先ほど作成した設定ファイル(YAML)のパスです(例: /Users/yamada/Downloads/users.yaml )
プロジェクトデータについて
Qiita Teamのプロジェクトデータはプロジェクトというノート作成し、その中に保存されます。各プロジェクトはページとして、次のように保存されます。
Qiita Teamの項目 | NotePMへの適用 |
---|---|
name | ページタイトルに利用します |
body | ページ本文に利用します |
user | IDが一致するユーザが見つかった場合は、そのユーザを作成者にします。いない場合は NotePM-bot になります。 |
created_at | ページ作成日時に利用します |
rendered_body | 利用しません |
archived | 利用しません |
id | 利用しません |
reactions_count | 利用しません |
updated_at | 利用しません |
グループデータについて
Qiita Teamのグループデータはノートとして保存します。
Qiita Teamの項目 | NotePMへの適用 |
---|---|
name | ノートタイトルに利用します |
users | ユーザが配列になっています。各ユーザについて、IDが一致するユーザが見つかった場合は、そのユーザのノート参加者にします。 |
url_name | 利用しません |
その他、デフォルト値は下記になります。
項目 | 値 |
---|---|
ノートの説明 | 固定「Qiita::Teamからのインポート」 |
スコープ | 固定「プライベート」 |
グループ | 設定しません |
アイコン | 設定しません |
すべてのノートはプライベートで取り込みます。調整後、公開してください。
記事データについて
Qiita Teamの記事データはページとして保存します。グループがない場合は「Qiita::Teamからのインポート用」というノートを作成し、その中に保存します。
Qiita Teamの項目 | NotePMへの適用 |
---|---|
title | ページタイトルに利用します |
body | ページ本文に利用します |
tags | name で指定されているタグ名を作成します |
user | IDが一致するユーザが見つかった場合は、そのユーザを作成者にします。いない場合は NotePM-bot になります。 |
group | 指定されている場合は、先に作成したノートに紐付けます。ない場合は「Qiita::Teamからのインポート用」というノートに紐付けます。 |
created_at | ページ作成日時に利用します |
rendered_body | 利用しません |
coediting | 利用しません |
comments_count | 利用しません |
id | 利用しません |
likes_count | 利用しません |
private | 利用しません |
reactions_count | 利用しません |
updated_at | 利用しません |
url | 利用しません |
page_views_count | 利用しません |
comments | 後述します |
さらにコメントはページへ紐付けて保存します。
Qiita Teamの項目 | NotePMへの適用 |
---|---|
body | コメント本文に利用します |
created_at | コメントの作成日時として利用します |
id | IDが一致するユーザが見つかった場合は、そのユーザをコメント作成者にします。いない場合は NotePM-bot になります。 |
rendered_body | 利用しません |
updated_at | 利用しません |
注意点
データのインポート時の注意点は次の通りです。
- ユーザが存在しない場合はNotePM-botになります。
- コメントユーザのIDは移行しません。
- ページ内リンクは移行しません。
- メンションは移行しません
- 権限がない画像、添付ファイルへはアクセスできません。必ずすべての画像、添付ファイルにアクセスできるユーザーのトークンを利用してください。
コード
おすすめの情報共有ツール
- NotePM :テレワーク時代のクラウド型ナレッジ共有ツール