Pythonista3でGithubにPushする方法

Pythonista3でGithubにPushする方法

Pythonista3とは

Pythonista3とは、iPadやiPhoneでPythonのプログラムを書いたり、実行したりすることができるiOSのアプリです。
https://apps.apple.com/jp/app/pythonista-3/id1085978097

概要

本記事では、Pythonista3で書いたプログラムをアプリから直接Githubの自分のリポジトリにPushする方法を記載します。
iOSのアプリケーションでは基本的にShellスクリプトを実行することができないのですが、Pythonistaのユーザが作成したstashというスクリプトを実行することでShellが擬似的に使用できるにしてGithubへのアクセスをCUIベースで行います。

手順

stashのインストール

Pythonistaのアプリケーションで左にスワイプするとコマンドが表示されるので、そこで下記のコマンドを実行してstashをインストールします。

import requests as r; exec(r.get('https://bit.ly/get-stash').content)

Pythonistaを再起動

インストールが完了したら、Pythonistaを一度タスクリストから削除して、再度アプリの立ち上げを行うことで再起動します。

stashをPythonのバージョン2.7で起動

アプリ内のフォルダ直下(This iPad,This iPhone)にlaunc_stash.pyというプログラムが作成されているので、そのファイルを開いて右上のRun(再生ボタンみたいなやつ)を長押しすると「Run with Python 2.7」が表示されるのでそちらを押下します。すると、unix風のコンソールに切り替わると思うのでそこでコマンドを実行可能となります。ちなみに、Pythonバージョン2.7で起動している理由は、この後で実行するGitコマンドがバージョン3.6で起動すると動作しなかったからとなります。

公開鍵を作成

Githubとの接続に必要となる公開鍵をstash上で作成します。rsaはデフォルトでは1024bitとなりますが、セキュリティを考えて2048bitを指定しています。

ssh-keygen -t rsa -b 2048

作成した公開鍵をGithubへ登録します。
GithubのSetting->SSH keysから下記のコマンドで表示される文字列(ssh-rsa から始まる)をコピーして設定します。

cat ~/.ssh/id_rsa.pub

Gitコマンド

下記のコマンドでGithubへのPushまでを行います。

cd (アップロードするフォルダ) # アップロードするフォルダへ移動
git init 
git add (アップロードするファイル、フォルダ) # アップロードするファイル、フォルダを追加
git commit # ローカルにコミット,この後コミットメッセージを聞かれるので入力
git remote origin git@github.com/(アカウント名)/(リポジトリ名).git # リモートリポジトリを登録
git push

参考

stash
https://github.com/ywangd/stash