• This repository has been archived on 22/Jan/2021
  • Stars
    star
    159
  • Rank 235,916 (Top 5 %)
  • Language
    Ruby
  • Created almost 8 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Posts app update info from iTunes Connect into Slack

itunes-connect-slack

These scripts fetch app info directly from iTunes Connect and posts changes in Slack as a bot. Since iTC doesn't provide event webhooks, these scripts use polling with the help of Fastlane's Spaceship.

Set up

Environment Variables

These scripts read specific values from the bash environment. Be sure to set these to the appropriate values:

export BOT_API_TOKEN="xoxb-asdfasdfasfasdfasdfsd" # The API Token for your bot, provided by Slack
export itc_username="[email protected]" # The email you use to log into iTunes Connect
export itc_team_id=77416800,77416801 # specify itunes team ids if user has an access to multiple ones (comma separated)
export bundle_id="com.best.app" # The bundle ID of the app you want these scripts to check

Install node modules

sudo gem install fastlane
npm install @slack/[email protected] --save
npm install dirty --save
npm install moment --save

Store your iTunes Connect password

You can use Fastlane's CredentialsManager to store your password. Enter this command and it will prompt you for your password:

fastlane fastlane-credentials add --username [email protected]

Channel info

Set the specific channel you'd like the bot to post to in post-update.js. By default, it posts to #ios-app-updates.

Polling interval

In poll-itc.js, set the pollIntervalSeconds value to whatever you like.

Running the scripts

node poll-itc.js

Or you can use the forever tool to keep it up indefinitely:

forever start poll-itc.js

Files

get-app-status.rb

Ruby script that uses Spaceship to connect to iTunes Connect. It then stdouts a JSON blob with your app info. It only looks for apps that aren't yet live.

poll-itc.js

Node script to invoke the ruby script at certain intervals. It uses a key/value store to check for changes, and then invokes post-update.js.

post-update.js

Node script that uses Slack's node.js SDK to send a message as a bot. It also calculates the number of hours since submission.