Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
b732ef5
SWI-11658 Switch to OpenAPI Generator SDK
ckoegel Jul 7, 2026
5956737
update invokerPackage
ckoegel Jul 7, 2026
c74aadc
update package name
ckoegel Jul 7, 2026
9edb2af
fix tests
ckoegel Jul 7, 2026
58ba195
messages smoke test
ckoegel Jul 7, 2026
87cae87
gh info
ckoegel Jul 8, 2026
d2bcd6b
messages cleanup
ckoegel Jul 8, 2026
948eb1e
media smoke tests
ckoegel Jul 8, 2026
5eaf088
use snapshot to fix anyOf
ckoegel Jul 15, 2026
d54c7f5
snapshot model tests
ckoegel Jul 15, 2026
ee20792
multi channel smoke tests
ckoegel Jul 15, 2026
8a2d788
add ignore operation servers
ckoegel Jul 21, 2026
1d7936b
regenerate after splitting oneOf/anyOf
ckoegel Jul 21, 2026
1a428c2
regenerate with generator PR updates
ckoegel Jul 22, 2026
00eac9f
mfa, statistics, and tfv tests
ckoegel Jul 22, 2026
ff2a256
\strlen to make linter happy
ckoegel Jul 22, 2026
2ac7d97
update doc after generator change
ckoegel Jul 23, 2026
e4c5fea
update config for oauth
ckoegel Jul 28, 2026
3373e66
endpoints and tn lookup tests
ckoegel Jul 28, 2026
b31ca31
update other tests to use oauth
ckoegel Jul 28, 2026
17ff3dd
regenerate with generate prs merged to main
ckoegel Jul 30, 2026
2d9d6dc
voice api tests
ckoegel Aug 3, 2026
2961d42
split api tests into smoke and unit
ckoegel Aug 18, 2026
ba50fe0
update pr test wf
ckoegel Aug 18, 2026
c7d209a
add smoke test wf
ckoegel Aug 18, 2026
c5ff524
move model tests
ckoegel Aug 18, 2026
aa910ca
update namespaces
ckoegel Aug 18, 2026
2b63901
api unit tests
ckoegel Aug 19, 2026
fde55e5
enum unit tests
ckoegel Aug 20, 2026
7b1b7fe
non-polymorphic model tests
ckoegel Aug 20, 2026
20e9e24
add sleep to unit tests
ckoegel Aug 20, 2026
bf8f2a8
unit tests for models with discriminators
ckoegel Aug 20, 2026
361f5bc
bash
ckoegel Aug 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
52 changes: 52 additions & 0 deletions .github/workflows/test-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Test PR

on:
pull_request:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true

env:
BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
BW_USERNAME: ${{ secrets.BW_USERNAME }}
BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
BW_CLIENT_ID: ${{ secrets.BW_CLIENT_ID }}
BW_CLIENT_SECRET: ${{ secrets.BW_CLIENT_SECRET }}
BW_USERNAME_FORBIDDEN: ${{ secrets.BW_USERNAME_FORBIDDEN }}
BW_PASSWORD_FORBIDDEN: ${{ secrets.BW_PASSWORD_FORBIDDEN }}
BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
BW_NUMBER: ${{ secrets.BW_NUMBER }}
USER_NUMBER: ${{ secrets.USER_NUMBER }}
BASE_CALLBACK_URL: ${{ secrets.BASE_CALLBACK_URL }}
MANTECA_ACTIVE_NUMBER: ${{ secrets.MANTECA_ACTIVE_NUMBER }}
MANTECA_IDLE_NUMBER: ${{ secrets.MANTECA_IDLE_NUMBER }}
MANTECA_BASE_URL: ${{ secrets.MANTECA_BASE_URL }}
MANTECA_APPLICATION_ID: ${{ secrets.MANTECA_APPLICATION_ID }}

jobs:
test:
name: Test PR
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-2022, windows-2025, ubuntu-22.04, ubuntu-24.04]
php-version: [8.2, 8.3, 8.4, 8.5]
steps:
- name: Checkout
uses: actions/checkout@v7

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}

- name: Install Packages and Test
run: |
npm install -g @stoplight/prism-cli
composer install
prism mock ./bandwidth.yml & (sleep 4; ./vendor/bin/phpunit tests/Unit)
shell: bash
88 changes: 88 additions & 0 deletions .github/workflows/test-smoke.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Smoke Tests

on:
schedule:
- cron: "0 4 * * *"
pull_request:
paths:
- "spec/smoke/*"
- ".github/workflows/test-smoke.yml"

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true

env:
BW_USERNAME: ${{ secrets.BW_USERNAME }}
BW_PASSWORD: ${{ secrets.BW_PASSWORD }}
BW_CLIENT_ID: ${{ secrets.BW_CLIENT_ID }}
BW_CLIENT_SECRET: ${{ secrets.BW_CLIENT_SECRET }}
BW_USERNAME_FORBIDDEN: ${{ secrets.BW_USERNAME_FORBIDDEN }}
BW_PASSWORD_FORBIDDEN: ${{ secrets.BW_PASSWORD_FORBIDDEN }}
USER_NUMBER: ${{ secrets.USER_NUMBER }}
BASE_CALLBACK_URL: ${{ secrets.BASE_CALLBACK_URL }}
MANTECA_BASE_URL: ${{ secrets.MANTECA_BASE_URL }}

jobs:
test:
name: Smoke Test
runs-on: ubuntu-latest
env:
BW_NUMBER: ${{ secrets.BW_NUMBER }}
BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }}
BW_VOICE_APPLICATION_ID: ${{ secrets.BW_VOICE_APPLICATION_ID }}
BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_MESSAGING_APPLICATION_ID }}
MANTECA_ACTIVE_NUMBER: ${{ secrets.MANTECA_ACTIVE_NUMBER }}
MANTECA_IDLE_NUMBER: ${{ secrets.MANTECA_IDLE_NUMBER }}
MANTECA_APPLICATION_ID: ${{ secrets.MANTECA_APPLICATION_ID }}
steps:
- name: Checkout
uses: actions/checkout@v7

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.5

- name: Install Packages and Test
run: |
composer install
./vendor/bin/phpunit tests/Smoke

test_up:
name: Smoke Test UP Account
runs-on: ubuntu-latest
env:
BW_NUMBER: ${{ secrets.BW_UP_NUMBER }}
BW_ACCOUNT_ID: ${{ secrets.BW_UP_ACCOUNT_ID }}
BW_VOICE_APPLICATION_ID: ${{ secrets.BW_UP_VOICE_APPLICATION_ID }}
BW_MESSAGING_APPLICATION_ID: ${{ secrets.BW_UP_MESSAGING_APPLICATION_ID }}
MANTECA_ACTIVE_NUMBER: ${{ secrets.MANTECA_UP_ACTIVE_NUMBER }}
MANTECA_IDLE_NUMBER: ${{ secrets.MANTECA_UP_IDLE_NUMBER }}
MANTECA_APPLICATION_ID: ${{ secrets.MANTECA_UP_APPLICATION_ID }}
steps:
- name: Checkout
uses: actions/checkout@v7

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.5

- name: Install Packages and Test
run: |
composer install
./vendor/bin/phpunit tests/Smoke

notify_for_failures:
name: Notify for Failures
needs: [test, test_up]
if: failure()
runs-on: ubuntu-latest
steps:
- name: Notify Slack of Failures
uses: Bandwidth/build-notify-slack-action@v2
with:
job-status: failure
slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
slack-channel: ${{ secrets.SLACK_CHANNEL }}
43 changes: 0 additions & 43 deletions .github/workflows/test.yml

This file was deleted.

21 changes: 17 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
# PHP Dev Resources
vendor
# ref: https://github.com/github/gitignore/blob/master/Composer.gitignore

composer.phar
/vendor/

# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
# makes sense since it's a library(client SDK) and not a project
composer.lock

# php-cs-fixer cache
.php_cs.cache
.php-cs-fixer.cache

# PHPUnit cache
.phpunit.result.cache
composer.phar
.idea

# PHPLint cache
build/phplint.cache
4 changes: 0 additions & 4 deletions .gitkeep

This file was deleted.

23 changes: 23 additions & 0 deletions .openapi-generator-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator

# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.

# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs

# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux

# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux

# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md
Loading
Loading