SAP BTP 自動ログインボット (sap-login-bot)

Tool

概要

sap-login-bot は SAP BTP(SAP Business Technology Platform)の試用アカウントへ自動ログインを行う小規模な自動化プロジェクトです。GitHub Actions のスケジュール(デフォルトで 10 日ごと)により Playwright スクリプトを実行し、メール/パスワードと二段階認証を含むログインフローを自動で操作します。ログイン後に「転到試用アカウント」などの遷移を確認し、成功・失敗いずれの場合もスクリーンショットを取得して Telegram へ通知、さらに GitHub Artifact としてアップロードして履歴を残します。運用はリポジトリを Fork して Secrets を設定するだけで開始できます。

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 13
  • ウォッチャー数: 5
  • コミット数: 7
  • ファイル数: 4
  • メインの言語: JavaScript

主な特徴

  • GitHub Actions と Playwright を使った完全自動化(スケジュール実行)
  • SAP BTP 試用アカウントのログイン操作を再現(メール・パスワード・二段階認証対応)
  • ログイン成功/失敗時にスクリーンショットを取得し Telegram に通知
  • スクリーンショットを GitHub Actions の Artifact として保存して履歴管理

技術的なポイント

このプロジェクトはブラウザ自動操作(Playwright)と CI/CD(GitHub Actions)を組み合わせる典型的な例です。Playwright は Chromium/Firefox/WebKit の実ブラウザを操作できるため、JavaScript による DOM 操作やクリック、入力、待機(waitFor)を用いて SAP の複雑なログインフローを再現します。リポジトリ内の SAP_ACCOUNTS.json にアカウント情報(複数アカウント対応の可能性)を保持し、実行時に GitHub Secrets(メール・パスワード・Telegram トークン等)を注入して Credentials を秘匿します。

二段階認証(two-step verification)に対しては、スクリプト側で表示される検証ページの要素を検出して送信ボタンを押す、もしくは予め許可済みのデバイスとして扱うためのクッキー管理(セッション保存)を行う実装が想定されます。ログイン操作中の重要な局面(ログイン後のダッシュボード、試用アカウント遷移後)のスクリーンショットを確実に取得するため、適切な待機戦略(要素の出現待ち、ナビゲーション完了待ち、タイムアウトの設定など)を取り入れています。

エラー発生時は例外キャッチでエラーページのスクリーンショットを撮り、Telegram API 経由で通知する仕組みを備えています。GitHub Actions 環境上で Playwright を動かす際は必要なブラウザバイナリのインストールや、ランナーのリソース制約(タイムアウト、ネットワーク制限)を考慮してワークフローを定義します。成果物は GitHub Actions の Artifact として保存され、過去ログのダウンロードや確認が可能です。

運用面では、SAP の UI 変更に対してスクリプトが脆弱になる点、サービス利用規約や自動化の可否(ボット検出)に注意する必要があります。また、Secrets の管理(定期的なローテーション、最小権限化)や Telegram トークンの保護、ログの扱い(機密情報を含めない)などセキュリティ対策が重要です。将来的にはセレクタの耐性向上(テキストベースや ARIA 属性使用)、再試行ロジック、より詳細なログ出力や監視アラートの追加が考えられます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir
  • README.md: file
  • SAP_ACCOUNTS.json: file
  • scripts: dir

まとめ

GitHub Actions と Playwright を組み合わせた、シンプルかつ実用的な SAP BTP 試用アカウント自動管理ツールです。

リポジトリ情報:

READMEの抜粋:

SAP BTP Auto Login Bot

这个项目用于 自动登录 SAP BTP 试用账号,并通过 GitHub Actions + Playwright
每隔 10 天执行一次,完成以下任务:

  1. 自动登录 SAP BTP 试用账号(邮箱 + 密码两步验证)。
  2. 点击 “转到您的试用账户”,进入试用账户主页。
  3. 截取两张截图:
    • 登录成功后的页面
    • 进入试用账户后的页面
  4. 自动将截图推送到 Telegram
  5. 登录失败或操作失败时,会截取错误页面截图并推送到 Telegram。
  6. 自动上传截图到 GitHub Artifact,方便保存和下载历史记录。

🚀 部署步骤

1. Fork 项目

点击右上角 Fork,把本项目复制到你自己的 GitHub 仓库。


2. 配置 GitHub Secrets

在你的仓库里,依次进入: Settings → Secrets and variables → Acti…