GitHubから公開する

GitHub のリポジトリにあるゲームを、そのまま取り込んで公開できます。

まんがでわかる GitHubから公開
  1. アソビ「わたしのゲーム、GitHubに置いてあるんだ」
  2. アイ「URLを貼るだけで取り込めるよ!」(github.com/you/my-game)
  3. アソビ「pushしたら…」 アイ「自動で新しいバージョンに!」
  4. アソビ「更新履歴もコミットから作られるんだね!」

画面から取り込む

  1. 「公開する」を開いて、「GitHubから」タブを選びます。
  2. リポジトリの URL(https://github.com/you/my-game)を入れます。
  3. ゲームがフォルダの中にあるときや、ブランチを決めたいときは「ブランチやフォルダを指定する」から入れます(例:dist、gh-pages)。
  4. 「次へ」を押すと取り込まれ、タイトルなどを入れる画面に進みます。
GitHubから公開する
  • フォルダの中の index.html が起動ファイルになります。ビルドが必要なゲームは、ビルド結果のフォルダ(dist など)か gh-pages ブランチを指定してください。
  • リポジトリの ZIP は 50MB まで、ゲームのファイルは 2000 個までです。
  • あとから「設定 → バージョン」で取り込み直すと、前回からのコミットのメッセージが更新履歴に入ります。

非公開リポジトリ

非公開リポジトリは、Asobiai の GitHub App をインストールすると取り込めます。インストールするときに、取り込みを許可するリポジトリを選べます(読み取りだけで、書き込みはしません)。

GitHub App をインストール

非公開リポジトリでも、取り込んだフォルダの中身はゲームのファイルとして配信されます。秘密の情報が入っていないか確認してください。

push したら自動で更新

GitHub App 経由で取り込んだゲームは、「push したら自動で更新する」にチェックしておくと、push するたびに新しいバージョンとして公開されます。コミットのメッセージがそのまま更新履歴に入ります。

  • ブランチを指定していないときはデフォルトブランチ、指定したときはそのブランチへの push で更新します。タグやコミットを指定したゲームは自動では更新しません。
  • GitHub App を使わずに、GitHub Actions から更新することもできます(下の「AI・APIから」を参照)。

AI・APIから

MCP の publish_game / update_game と REST API で、次のフィールドが使えます。

github_repoowner/repo か https://github.com/owner/repo(/tree/<ブランチ>/<フォルダ> 付きの URL も可)
github_refブランチ・タグ・コミット(省略するとデフォルトブランチ)
github_pathindex.html が入っているフォルダ(省略するとリポジトリ全体)
github_autopush したら自動で更新する(GitHub App 経由のときだけ)
sync_githubupdate_game で、前回と同じ場所から最新のコミットを取り込む

REST API の例:

sh
curl -X POST https://asobiai.games/api/v1/games \
  -H "Authorization: Bearer asb_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Neon Snake", "github_repo": "you/neon-snake", "github_path": "dist" }'

GitHub Actions から更新する例(リポジトリの Secrets に ASOBIAI_TOKEN、Variables に ASOBIAI_GAME_ID を登録)。新しいコミットがないときは「変更なし」として成功します:

yaml
# .github/workflows/asobiai.yml
on:
  push:
    branches: [main]
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - run: |
          curl -fsS -X POST https://asobiai.games/api/v1/games/${{ vars.ASOBIAI_GAME_ID }} \
            -H "Authorization: Bearer ${{ secrets.ASOBIAI_TOKEN }}" \
            -H "Content-Type: application/json" \
            -d '{ "sync_github": true }'