GitHub Actions Workflows
This page provides an overview of the GitHub Actions workflows used in this repository. These workflows automate various parts of our CI/CD process, from code quality checks to automated testing and deployments.
Admin
Team processes, repo admin, and maintenance tasks
- Add pull request to project board
- Auto-Link Milestone to PR
- Check for linked issues in PRs
- Check if PR is from an experience team
- Flagship Mobile Alerts Weekly On-Call Assignment
- Issue Created Notifications
- Notify Slack of DevOps issues
- Notify Slack of new Onboarding requests
- Onboarding Issue Handler
- Prune Stale Branches
- QA Required Approvals
- Team Membership Alert
- Weekly Flagship Mobile PR Reviewer Assignment
Build
iOS and Android builds for QA and Release
Code Quality
Linting, formatting, and static analysis
Release
App release process automation
TestRail
Test case and result syncing with TestRail
Utils
Shared building blocks used by other workflows
[Admin] Add pull request to project board
(add-pr-to-project.yml)
Automatically adds non-draft PRs targeting the develop branch to the GitHub project board. Triggers when PRs are opened, reopened, synchronized, or marked as ready for review.
- Pull Request
- When:
Opened, Reopened, Synchronize, Ready For Review
- When:
[Admin] Auto-Link Milestone to PR
(apply-milestone.yml)
Automatically links the nearest upcoming milestone to a PR's linked issue (or the PR itself) when a PR touching app source code is merged. Ensures all merged work is tracked under the correct release milestone.
- Pull Request
- When:
Closed - File Paths:
VAMobile/src/**
- When:
[Admin] Check for linked issues in PRs
(check-linked-issues.yml)
Checks that every PR has a linked issue. If no linked issue is found, it posts a comment asking the author to link one. PRs targeting release, dependabot, and main branches are excluded from this requirement.
- Pull Request
- When:
Opened, Edited, Reopened, Synchronize, Labeled, Unlabeled
- When:
[Admin] Check if PR is from an experience team
(team-check-alert.yml)
Checks whether a PR author is a member of the flagship-mobile-team. If the author is not a team member (i.e., from an experience team), sends a Slack notification to va-mobile-app alerting designated contacts.
- Pull Request
- Branches:
develop - When:
Opened
- Branches:
[Admin] Flagship Mobile Alerts Weekly On-Call Assignment
(rotate-flagship-oncall.yml)
Posts the weekly on-call assignment to the va-mobile-app-alerts Slack channel every Monday. Fetches the current on-call person from PagerDuty, sends a Slack notification, and updates the channel topic.
- Manual Trigger (workflow_dispatch)
- Schedule
- Cron:
30 13 * * 1(At 01:30 PM, only on Monday UTC)
- Cron:
[Admin] Issue Created Notifications
(issue_created.yml)
This workflow triggers when a new issue is opened and routes notifications to Slack based on issue labels (e.g., user-onboarding, devops, go-live, project-kickoff).
- Issue
- When:
Opened
- When:
[Admin] Notify Slack of DevOps issues
(automation-issue-notification.yml)
When a new issue with the 'devops' label is opened, adds it to the DevOps project board with "Ready to Work" status and sends a Slack notification to the va-mobile-devops channel.
- Used by other workflows (workflow_call):
[Admin] Notify Slack of new Onboarding requests
(user-onboarding-issue-notification.yml)
Sends a Slack notification when a new issue with the 'user-onboarding' label is opened. Looks up Slack IDs for the designated onboarding contacts and posts a message with a link to the issue.
- Used by other workflows (workflow_call):
[Admin] Onboarding Issue Handler
(onboarding.yml)
Placeholder onboarding workflow that triggers when an issue is labeled with 'onboarding'. Currently logs the issue event; Slack notification logic is commented out pending future implementation.
- Issue
- When:
Labeled
- When:
[Admin] Prune Stale Branches
(prune-stale-branches.yml)
Deletes remote branches whose last commit is older than 365 days and that have no open PRs. Runs weekly on a schedule (dry-run by default) or manually, creates a CSV artifact of affected branches to the pipeline run that can be retrieved, and notifies Slack with a summary.
- Schedule
- Cron:
0 2 * * 0(At 02:00 AM, only on Sunday UTC)
- Cron:
- Manual Trigger (workflow_dispatch)
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
dry_run | Dry run (list branches without deleting) | boolean | true | No |
[Admin] QA Required Approvals
(qa_required_approvals.yml)
Enforces that PRs modifying app source code have at least one engineer approval and one QA team approval before merging. Checks changed files against inclusion/exclusion patterns and validates review approvals.
- Pull Request
[Admin] Team Membership Alert
(team-membership-alert.yml)
Monitors the flagship-mobile-team GitHub team for new members. Runs daily, compares current members against a stored list, and notifies Slack when new members are detected. Updates the stored member list accordingly.
- Schedule
- Cron:
0 14 * * *(At 02:00 PM UTC)
- Cron:
- Manual Trigger (workflow_dispatch)
[Admin] Weekly Flagship Mobile PR Reviewer Assignment
(rotate-flagship-pr-reviewer.yml)
Rotates the primary PR reviewer assignment biweekly on Mondays. Updates Slack channel topics for va-mobile-app and va-mobile-app-engineering with the current reviewer and backup, and posts a notification message.
- Schedule
- Cron:
33 13 * * 1(At 01:33 PM, only on Monday UTC)
- Cron:
[Build] Daily QA Build
(qa_build.yml)
Runs daily QA builds for iOS and Android on weekday mornings. Queues the build, notifies Slack, and triggers the reusable build_ios and build_android workflows with default QA settings.
- Schedule
- Cron:
0 4 * * 1,2,3,4,5(At 04:00 AM, only on Monday, Tuesday, Wednesday, Thursday, and Friday UTC)
- Cron:
[Build] On Demand Build
(on_demand_build.yml)
Manually triggered on-demand builds for iOS and Android. Accepts environment (staging/production) and notes as inputs, queues the build, notifies Slack, and runs both platform builds from the triggering branch.
- Manual Trigger (workflow_dispatch)
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
environment | Environment | choice | staging | Yes |
notes | Notes | string | - | Yes |
[Build] Queue Build
(queue_builds.yml)
Reusable workflow that queues builds by waiting for any older in-progress build workflows (QA, On Demand, Release, RC) to finish before allowing the current build to proceed. Prevents concurrent build conflicts.
- Used by other workflows (workflow_call):
[Build] Release Build
(release_build.yml)
Builds production release builds for iOS and Android, triggered by a v*.*.* tag (created by run_approval.yml when a release is approved). Queues the build, notifies Slack, runs both platform builds, and alerts on failure.
- Push
- Tags:
v[0-9]+.[0-9]+.[0-9]+
- Tags:
[Build] Release Candidate Build
(release_candidate_build.yml)
Builds release candidate (RC) staging builds for iOS and Android, triggered by an RC-v*.*.* tag pushed from new_release_branch.yml at the end of each sprint. Queues the build, notifies Slack, and runs iOS and Android RC builds in parallel for QA validation and regression testing.
- Push
- Tags:
RC-v[0-9]+.[0-9]+.[0-9]+-[0-9]+[0-9]+[0-9]+-[0-9]+[0-9]+
- Tags:
[Build] Reusable Android Build Workflow
(build_android.yml)
Reusable Android build workflow. Sets up the Linux environment, installs dependencies, decodes signing keys, bundles the app, and runs the specified Fastlane lane (qa, rc, review, release, on_demand) to build and distribute.
- Used by other workflows (workflow_call):
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
environment | App environment variables to use (test, staging, production) | string | staging | No |
lane | Fastlane lane to run (qa, rc, review, release, on_demand) | string | qa | No |
notes | Release notes for Firebase (defaults to "New QA version for {{DATE_TIME}}") | string | "" | No |
ps_track | Google Play Console track to distribute to (defaults to "Development Team") | string | "" | No |
ref | Branch or tag to build from (defaults to triggering ref) | string | "" | No |
slack_thread_ts | Slack thread timestamp for build status messages | string | "" | No |
version | Version for production release (QA/on-demand builds auto-increment) | string | qa | No |
[Build] Reusable iOS Build Workflow
(build_ios.yml)
Reusable iOS build workflow. Sets up the macOS environment, installs dependencies, decodes signing keys, bundles the app, and runs the specified Fastlane lane (qa, rc, review, release, on_demand) to build and distribute.
- Used by other workflows (workflow_call):
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
environment | App environment variables to use (test, staging, production) | string | staging | No |
lane | Fastlane lane to run (qa, rc, review, release, on_demand) | string | qa | No |
notes | Release notes for TestFlight (defaults to "New QA version for {{DATE_TIME}}") | string | "" | No |
ref | Branch or tag to build from (defaults to triggering ref) | string | "" | No |
slack_thread_ts | Slack thread timestamp for build status messages | string | "" | No |
tf_group | TestFlight group to distribute to (defaults to "Development Team") | string | "" | No |
version | Version for production release (QA/on-demand builds auto-increment) | string | qa | No |
[Code Quality] Check Native Android Builds
(native_build_check_android.yml)
Verifies that changes to native Android files do not break the Android build process. Triggers on PRs that modify files under VAMobile/android/ and runs a test-only Android build via the reusable build_android workflow.
- Pull Request
- File Paths:
VAMobile/android/**
- File Paths:
[Code Quality] Check Native iOS Builds
(native_build_check_ios.yml)
Verifies that changes to native iOS files do not break the iOS build process. Triggers on PRs that modify files under VAMobile/ios/ and runs a test-only iOS build via the reusable build_ios workflow.
- Pull Request
- File Paths:
VAMobile/ios/**
- File Paths:
[Code Quality] Code Checks
(code_checks.yml)
Runs code quality checks on every PR and push to main/develop/release branches. Includes ESLint, Super-Linter, Jest unit tests (split across 5 matrix chunks), and Android/iOS bundle verification.
- Pull Request
- Push
- Branches:
main, develop, release/v**
- Branches:
[Code Quality] CodeQL (JavaScript)
(codeql.yml)
Runs GitHub CodeQL security analysis on JavaScript code. Triggers on pushes and PRs to develop and weekly on a schedule. Initializes CodeQL, autobuilds the project, and performs the analysis.
- Push
- Branches:
develop
- Branches:
- Pull Request
- Branches:
develop
- Branches:
- Schedule
- Cron:
27 2 * * 1(At 02:27 AM, only on Monday UTC)
- Cron:
[Code Quality] CodeQL (Multi-Language)
(codeql-analysis.yml)
Runs GitHub CodeQL static analysis on Ruby, JavaScript, and Python code. Triggers on pushes and PRs to develop, weekly on a schedule, and manually. Uses the VA's shared codeql-tools action for scanning.
- Push
- Branches:
develop
- Branches:
- Pull Request
- Branches:
develop
- Branches:
- Schedule
- Cron:
47 14 * * 1(At 02:47 PM, only on Monday UTC)
- Cron:
- Manual Trigger (workflow_dispatch)
[Code Quality] Update Bundler
(bundler_updates.yml)
Updates Ruby bundler dependencies and Fastlane plugins for both Android and iOS every Wednesday. If any lock files change, commits and pushes them automatically.
- Schedule
- Cron:
0 7 * * 3(At 07:00 AM, only on Wednesday UTC)
- Cron:
- Manual Trigger (workflow_dispatch)
[Documentation] Accessibility Check
(documentation_accessibility_checks.yml)
Runs axe-core accessibility scans against every page of the documentation site on weekday mornings. Builds the Docusaurus site, crawls the sitemap, checks each URL for accessibility issues, and notifies Slack with the count of pages and errors found.
- Manual Trigger (workflow_dispatch)
- Schedule
- Cron:
0 9 * * 1,2,3,4,5(At 09:00 AM, only on Monday, Tuesday, Wednesday, Thursday, and Friday UTC)
- Cron:
[Documentation] Deploy Site
(documentation_deploy.yml)
Deploys the Docusaurus documentation site to GitHub Pages. Triggers on pushes to develop that touch documentation files, daily on a schedule, or manually. Builds the site and publishes to the gh-pages branch.
- Push
- Branches:
develop - File Paths:
VAMobile/documentation/**
- Branches:
- Manual Trigger (workflow_dispatch)
- Schedule
- Cron:
0 3 * * *(At 03:00 AM UTC)
- Cron:
[Documentation] Test Build
(documentation_test_build.yml)
Runs a test build of the Docusaurus documentation site on PRs targeting develop that touch components, documentation, or hooks. Verifies the documentation builds successfully without deploying.
- Pull Request
- Branches:
develop - File Paths:
VAMobile/src/components/**VAMobile/documentation/**VAMobile/src/utils/hooks.tsx
- Branches:
[E2E] Android Detox Test Run
(e2e_android.yml)
Runs Detox e2e tests on Android emulator in CI. It bundles the Android app, determines which tests to run, executes them across a matrix, and reports failures to Slack and TestRail.
- Push
- Branches:
dependabot/**
- Branches:
- Pull Request
- When:
Synchronize, Opened - File Paths:
VAMobile/src/**VAMobile/e2e/**VAMobile/package.json.github/workflows/e2e_android.yml.github/workflows/e2e_ios.yml.github/workflows/e2e_detox_mapping.yml
- When:
- Manual Trigger (workflow_dispatch)
- Schedule
- Cron:
0 4 * * 1,2,3,4,5(At 04:00 AM, only on Monday, Tuesday, Wednesday, Thursday, and Friday UTC)
- Cron:
- Triggered by other workflows (workflow_run)
- Workflows: [Release] New Release Issue
- When:
In Progress
- Used by other workflows (workflow_call):
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
run_full_test | Run all tests | boolean | - | No |
skip_cache | Skip build and dependency caches | boolean | - | No |
tests_to_run | Tests to run in ["test name", "test name"] format. Leave blank if running full e2e test. | string | - | No |
testRail_name | Name for TestRail run (will default to date if blank) | string | - | No |
run_testRail | Add results to TestRail? | boolean | - | No |
[E2E] Detox Mapping
(e2e_detox_mapping.yml)
Reusable workflow that determines which Detox e2e tests to run based on changed files in the PR. Reads the detoxMapping.js config to map source file and directory changes to their associated e2e test suites.
- Used by other workflows (workflow_call):
[E2E] iOS Detox Test Run
(e2e_ios.yml)
Runs Detox e2e tests on an iOS simulator in CI. It bundles the iOS app, determines which tests to run, executes them across a matrix, and reports failures to Slack and TestRail.
- Push
- Branches:
dependabot/**
- Branches:
- Pull Request
- When:
Synchronize, Opened - File Paths:
VAMobile/src/**VAMobile/e2e/**VAMobile/package.json.github/workflows/e2e_android.yml.github/workflows/e2e_ios.yml.github/workflows/e2e_detox_mapping.yml
- When:
- Manual Trigger (workflow_dispatch)
- Schedule
- Cron:
0 4 * * 1,2,3,4,5(At 04:00 AM, only on Monday, Tuesday, Wednesday, Thursday, and Friday UTC)
- Cron:
- Triggered by other workflows (workflow_run)
- Workflows: [Release] New Release Issue
- When:
In Progress
- Used by other workflows (workflow_call):
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
run_full_test | Run all tests | boolean | - | No |
skip_cache | Skip build and dependency caches | boolean | - | No |
tests_to_run | Tests to run in ["test name", "test name"] format. Leave blank if running full e2e test. | string | - | No |
testRail_name | Name for TestRail run (will default to date if blank) | string | - | No |
run_testRail | Add results to TestRail? | boolean | - | No |
[Release] Apple App Store Requirement Checks
(app_store_checks_apple.yml)
Validates that PRs do not exceed Apple App Store limits for screenshot counts (iPhone, iPad), description length, release notes, keywords, and title. Runs on PRs targeting main/develop/release that touch iOS metadata.
- Pull Request
- Branches:
main, develop, release/v** - File Paths:
VAMobile/ios/fastlane/metadata/en-US/**VAMobile/ios/fastlane/screenshots/**
- Branches:
[Release] Approve Slash Command
(approve_command.yml)
Handles the /approve slash command dispatched from issue comments. Triggers the release PR creation process, comments on the release issue with PR links, closes the issue, and notifies Slack on failure. Note: this workflow is being phased out as the release process now uses run_approval.yml instead.
- Called by other repos or external events (repository_dispatch)
- When:
Approve Command
- When:
[Release] Check Max File/Character Size
(check_max_size.yml)
Reusable workflow that checks whether a file count or character count exceeds an app store limit. Called by app_store_checks_apple and app_store_checks_google to validate screenshots and metadata sizes.
- Used by other workflows (workflow_call):
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
working_dir | Directory to run the counting function in | string | - | Yes |
max_size | Maximum allowed count (files or characters) | string | - | Yes |
counting_function | Shell command that outputs the count to check against max_size | string | - | Yes |
[Release] Gather iOS and Android screenshots
(screenshot_e2e.yml)
Generates App Store screenshots for iOS (iPhone and iPad) and Android using Detox e2e tests in CI. It builds and runs screenshot tests on each platform, combines and frames the images, and uploads them as a workflow artifact. Must be triggered manually.
- Manual Trigger (workflow_dispatch)
[Release] Go Live
(go_live.yml)
Promotes release builds to production in the App Store and Google Play Store. Runs weekly on Tuesdays or manually. Checks environment protections, then triggers the iOS and Android Fastlane release lanes from the main branch.
- Manual Trigger (workflow_dispatch)
- Schedule
- Cron:
0 12 * * 2(At 12:00 PM, only on Tuesday UTC)
- Cron:
[Release] Google Play Store Requirement Checks
(app_store_checks_google.yml)
Validates that PRs do not exceed Google Play Store limits for screenshot counts (phone, 7-inch tablet), description length, short description, changelog, and title. Runs on PRs targeting main/develop/release that touch Android metadata.
- Pull Request
- Branches:
main, develop, release/v** - File Paths:
VAMobile/android/fastlane/metadata/android/en-US/**
- Branches:
[Release] Merge to Main and Open Develop PR
(release_pull_request.yml)
Reusable release workflow that merges the release branch to main (squash merge), tags the release version, and creates a PR to merge release changes back into develop. Outputs the develop PR URL and release commit hash.
- Used by other workflows (workflow_call):
- Manual Trigger (workflow_dispatch)
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
version | Release version number (eg. v1.1.0) | string | - | Yes |
[Release] New Release Branch
(new_release_branch.yml)
Cuts a new release branch from develop at the end of each sprint. Runs on a weekly schedule (Wednesdays) or manually. Executes the release_branch.sh script which creates the branch and tags it to trigger the RC build. On non-release weeks the scheduled run is a no-op (the script exits early based on date check).
- Manual Trigger (workflow_dispatch)
- Schedule
- Cron:
00 6 * * 3(At 06:00 AM, only on Wednesday UTC)
- Cron:
[Release] New Release Issue
(release_branch_issue.yml)
Creates a release tracking issue when a new release branch is created. Generates the release ticket with due dates, assigns release approvers, creates a TestRail milestone and RC test run, closes the previous milestone, posts release coordination details to Slack, and waits for manual approval to trigger the release.
- Branch or Tag Created
[Release] Optimize App Store Screenshots
(optimize-images.yml)
Optimizes App Store screenshots for iOS and Android on pushes to release branches. Uses imagemin to compress images in-place, then commits the optimized files back to the release branch.
- Push
- Branches:
release/v[0-9]+.[0-9]+.[0-9]+
- Branches:
[Release] Run Release Approval
(run_approval.yml)
Reusable release approval workflow. Triggers the release PR creation process, adds a rocket reaction to the approval comment, and comments on the release issue with the created PR links upon completion.
- Used by other workflows (workflow_call):
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
version | Version number for the release (eg. v1.1.0) | string | - | Yes |
issue_number | Release issue number to comment on with PR links | string | - | No |
comment_id | Comment ID to add reaction to (for approval feedback) | string | - | No |
[Security] Package Dependency Security Check
(security-scan.yml)
Scans PRs for package.json dependency changes. Detects added, changed, or removed packages, runs GuardDog security analysis, generates a detailed review summary, and requires manual approval for dependency changes via the bypass-package-lock environment protection.
- Pull Request
[TestRail] Create TestRail Milestone
(create_testrail_milestone.yml)
Reusable workflow that creates a new sprint milestone in TestRail. Sets the milestone name to the current two-week sprint date range, marks it as started, and outputs the milestone ID for use by downstream workflows.
- Used by other workflows (workflow_call):
[TestRail] Start RC Run
(start_test_rail_run.yml)
Reusable workflow that creates a new regression test run in TestRail for a release candidate. Fetches RC test cases, creates the run under the specified milestone, and outputs the TestRail run URL.
- Used by other workflows (workflow_call):
- Manual Trigger (workflow_dispatch)
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
version | Version Number (eg. v1.1.0) | string | - | Yes |
releaseDate | Go-live date for release (eg. 06/21/2022) | string | - | Yes |
ticketNumber | Issue number for release ticket (eg. 3333) | string | - | Yes |
milestoneId | Milestone id for the run to be associated with | string | - | Yes |
[TestRail] Update E2E Results
(update_testrail_results.yml)
Reusable workflow that uploads e2e Detox test results (JUnit XML) to TestRail. Finds or creates the appropriate test run, then uses the trcli tool to parse and upload results for each test suite.
- Used by other workflows (workflow_call):
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
testRail_name | Name for the TestRail run (defaults to current date if blank) | string | "" | No |
test_OS_name | OS name for the test run (e.g. iOS or Android) | string | "" | No |
[TestRail] Update Run
(update_testrail_run.yml)
Receives a repository_dispatch webhook from TestRail and updates the associated release issue's body with a pie chart showing test run results (passed, blocked, retest, failed, untested).
- Called by other repos or external events (repository_dispatch)
- When:
Update Testrail Run
- When:
[Utils] Check Maintenance Windows
(check_maintenance_windows.yml)
Checks PagerDuty maintenance windows daily and updates them via a Python script. Notifies Slack on success or failure. Can also be triggered manually.
- Manual Trigger (workflow_dispatch)
- Schedule
- Cron:
00 4 * * *(At 04:00 AM UTC)
- Cron:
[Utils] FE PR Needs Review Reminder
(pr_needs_review_reminder.yml)
Manually triggered workflow that counts open PRs labeled 'FE-Needs Review' and posts the count to a Slack channel as a reminder for the team to review pending frontend PRs.
- Manual Trigger (workflow_dispatch)
[Utils] Lookup Slack User ID
(get-slack-user-id.yml)
Reusable workflow that looks up a Slack user ID from a VA email address or GitHub handle. Maps git handles to emails via a repository variable, validates the @va.gov domain, and queries the Slack API to find the user ID.
- Manual Trigger (workflow_dispatch)
- Used by other workflows (workflow_call):
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
va_email | VA Email address to lookup Slack ID for | string | - | No |
git_handle | Git handle to lookup email and then Slack ID for | string | - | No |
[Utils] Slash Command Dispatch
(slash_commands.yml)
Listens for issue comments and dispatches recognized slash commands (currently /approve) to their corresponding workflow handlers. Uses the peter-evans/slash-command-dispatch action for parsing and dispatching.
- Issue Comment
- When:
Created
- When:
[Utils] Start Slack Thread
(start_slack_thread.yml)
Reusable workflow that posts a message to a Slack channel to start a thread. Looks up the channel ID by name, posts the message, and outputs the thread timestamp and channel ID for downstream workflows to reply to.
- Used by other workflows (workflow_call):
- [Release] Approve Slash Command
- [Admin] Notify Slack of DevOps issues
- [Utils] Check Maintenance Windows
- [Documentation] Accessibility Check
- [E2E] Android Detox Test Run
- [E2E] iOS Detox Test Run
- [Admin] Issue Created Notifications
- [Build] On Demand Build
- [Admin] Onboarding Issue Handler
- [Admin] Prune Stale Branches
- [Build] Daily QA Build
- [Release] New Release Issue
- [Build] Release Build
- [Build] Release Candidate Build
- [Release] Gather iOS and Android screenshots
- [Security] Package Dependency Security Check
- [Admin] Check if PR is from an experience team
- [Admin] Team Membership Alert
- [Admin] Notify Slack of new Onboarding requests
| Input | Description | Type | Default | Required |
|---|---|---|---|---|
channel_name | Name of the Slack channel where the thread should be started. | string | va-mobile-build-alerts | No |
message | Text to display for the message starting the thread. | string | - | Yes |