{"id":16292894,"url":"https://github.com/ainoya/stf-bot","last_synced_at":"2025-07-29T19:16:15.778Z","repository":{"id":150692033,"uuid":"66918438","full_name":"ainoya/stf-bot","owner":"ainoya","description":"A Slack bot controlling openstf/stf devices","archived":false,"fork":false,"pushed_at":"2024-11-02T09:23:51.000Z","size":8,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-29T22:39:22.053Z","etag":null,"topics":["bot","openstf"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ainoya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-08-30T07:43:16.000Z","updated_at":"2025-05-15T21:47:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"cc4df037-d62f-4bde-8c10-9199918f49db","html_url":"https://github.com/ainoya/stf-bot","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"0afc9976f3afbefe4b8a2cf1d245eda8f93e9701"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ainoya/stf-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ainoya%2Fstf-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ainoya%2Fstf-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ainoya%2Fstf-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ainoya%2Fstf-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ainoya","download_url":"https://codeload.github.com/ainoya/stf-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ainoya%2Fstf-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267740836,"owners_count":24137158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","openstf"],"created_at":"2024-10-10T20:09:16.514Z","updated_at":"2025-07-29T19:16:15.685Z","avatar_url":"https://github.com/ainoya.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"A Slack bot controlling openstf/stf devices\n============================================\n\n## Features\n\n- Install apk to all stf devices automatically when someone uploads apk to Slack\n\n\n1\\. Bot detects apk file uploaded\n\n![](https://www.evernote.com/shard/s25/sh/54b7bc97-630d-4934-bc8f-2252183a9613/2a82aa801c8f3550/res/7327ce51-5cb3-4d60-98d8-f23f69e47db8/skitch.png)\n\n2\\. Install confirmation\n\n![](https://www.evernote.com/shard/s25/sh/f37069e5-82a7-413c-90e7-b79c67273237/7aab4aeca39c6120/res/a4ff6831-a466-4b71-9253-24d40b415049/skitch.png)\n\n3\\. Install target apk file to all devices managed by your openstf/stf :tada:\n\n![](https://www.evernote.com/shard/s25/sh/02ebeefa-2f04-4242-b2c4-4f8dba82e35a/b4837d46d91b16f1/res/dae96e66-3103-4edc-b6ee-cae357c1fd19/skitch.png)\n\n## Setup\n\nBefore launching this bot, you have to setup Slack App to use Interactive Messages.\n\n1. [Create Slack App](https://api.slack.com/apps/new) to create gateway to bot\n2. Set `https://your-internet-reachable-host.com/slack/receive` to `Request URL` which locates in `Interactive Messages` section of App configuration\n3. Set `https://your-internet-reachable-host/oauth` to `Redirect URI(s)` which locates in `OAuth Information` section of App configuration\n4. Get OAuth `ClientID` and  `Clien Secret` and copy them to `.envrc`\n5. To allow bot seeing `file_created` events, add Event name `file_created` to `Event Subscriptions \u003e Bot Events`\n\n## How to use\n\nSetup repository:\n\n```sh\n$ git clone https://github.com/ainoya/stf-bot\n$ cd stf-bot\n$ direnv allow\n$ npm install\n```\n\nThen, you can start this bot server:\n\n```sh\n$ node main.js\n```\n\nAfter bot server is launched, you have to enable integration This Bot App via `https://your-internet-reachable-host/login`. If login is succeeded, you can see the bot is online in your Slack. (You can use [ngrok](https://ngrok.com/) to publicize your local bot application for debug)\n\n## References\n\n- [STF | Smartphone Test Farm](http://openstf.io/)\n- https://github.com/openstf/adbkit\n- https://github.com/howdyai/botkit\n- https://github.com/henteko/slack_message_button_test\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fainoya%2Fstf-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fainoya%2Fstf-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fainoya%2Fstf-bot/lists"}