Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
e9b95ce
feat: add 16 user integration tests for chat test parity
mogita Feb 25, 2026
1e450b7
feat: add 27 message integration tests for chat test parity
mogita Feb 25, 2026
604b974
feat: add 2 polls integration tests for chat test parity
mogita Feb 25, 2026
9f72360
feat: add 19 misc chat integration tests for chat test parity
mogita Feb 25, 2026
14f5b98
feat: add 3 moderation integration tests for chat test parity
mogita Feb 25, 2026
b2eed21
feat: add 18 video integration tests for SDK test parity
mogita Feb 25, 2026
c84e34a
Merge branch 'master' into cha-1578_openapi-refactor-codegen
mogita Feb 25, 2026
ce5af33
test: blocklist deletion cleanup
mogita Feb 25, 2026
f50f44d
test: minor tweaks
mogita Feb 25, 2026
0be572d
test: case fixes and performance improvement
mogita Feb 25, 2026
22d9cf0
test: improve loop time
mogita Feb 25, 2026
b9da3ed
style: fix format issues
mogita Feb 25, 2026
3c75941
test: re-get to verify updated channel
mogita Feb 25, 2026
4bbb03e
style: fix code formatting
mogita Feb 25, 2026
8d8e7d3
test: fine tuning for api limits
mogita Feb 25, 2026
ef50f1c
test: fine tuning
mogita Feb 25, 2026
4f030f9
test: fine tuning
mogita Feb 25, 2026
78cbd34
test: fine tuning
mogita Feb 26, 2026
e6b67df
test: fine tuning for rate limiting
mogita Feb 26, 2026
d0110d7
test: fine tuning
mogita Feb 26, 2026
88605ce
test: fine tuning
mogita Feb 26, 2026
49f166f
feat: update by openapi refactor
mogita Feb 26, 2026
5299865
test: add test for user group
mogita Feb 26, 2026
8465a9c
style: fix code formatting
mogita Feb 26, 2026
c8087e0
test: fine tuning
mogita Feb 26, 2026
f2891a2
style: fix code formatting
mogita Feb 26, 2026
669ad55
test: fine tuning
mogita Feb 26, 2026
12172d3
test: fine tuning
mogita Feb 26, 2026
06c757e
style: fix code formatting
mogita Feb 26, 2026
48bf3d7
test: fine tuning
mogita Feb 27, 2026
bed63c9
ci: add pre-release workflow and update changelog
mogita Mar 2, 2026
9ae47b9
feat: update by openapi refactor
mogita Mar 4, 2026
f0b239b
feat: update by openapi refactor
mogita Mar 4, 2026
d56266c
test: unique group ids
mogita Mar 4, 2026
4984ed9
test: unique group ids
mogita Mar 4, 2026
059b9e7
feat: update by openapi refactor
mogita Mar 4, 2026
f98750f
feat: update by openapi refactor
mogita Mar 4, 2026
214e015
test: chat and video clients
mogita Mar 5, 2026
fbd42e0
style: fix code formatting
mogita Mar 5, 2026
537765c
ci: rename non-video step
mogita Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 59 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,37 +6,78 @@ on:
pull_request:
branches: [ master, main ]

env:
STREAM_API_KEY: ${{ vars.STREAM_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_API_SECRET }}

jobs:
test:
name: Test Suite
unit:
name: Unit Tests & Code Quality
runs-on: ubuntu-latest
environment: ci


steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1.0'

- name: Install dependencies
run: bundle install --jobs 4 --retry 3
- name: Run tests

- name: Run unit tests
run: make test

- name: Run integration tests
if: github.event_name == 'push' || github.event_name == 'pull_request'
run: make test-integration


- name: Run code quality checks
run: |
make format-check
make lint
make security
make security

integration-non-video:
name: Non-video Integration Tests
runs-on: ubuntu-latest
environment: ci
if: github.event_name == 'push' || github.event_name == 'pull_request'

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1.0'

- name: Install dependencies
run: bundle install --jobs 4 --retry 3

- name: Run chat integration tests
env:
STREAM_API_KEY: ${{ vars.STREAM_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_API_SECRET }}
STREAM_BASE_URL: ${{ vars.STREAM_BASE_URL }}
run: make test-integration-chat

integration-video:
name: Video Integration Tests
runs-on: ubuntu-latest
environment: ci
if: github.event_name == 'push' || github.event_name == 'pull_request'

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1.0'

- name: Install dependencies
run: bundle install --jobs 4 --retry 3

- name: Run video integration tests
env:
STREAM_API_KEY: ${{ vars.STREAM_VIDEO_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_VIDEO_API_SECRET }}
STREAM_BASE_URL: ${{ vars.STREAM_VIDEO_BASE_URL }}
run: make test-integration-video
37 changes: 37 additions & 0 deletions .github/workflows/prerelease.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Pre-release

on:
release:
types: [prereleased]

jobs:
prerelease:
name: 🚀 Pre-release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Resolve version
run: |
TAG="${{ github.event.release.tag_name }}"
VERSION="${TAG#v}"
echo "VERSION=$VERSION" >> $GITHUB_ENV

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1.0'

- name: Install dependencies
run: bundle install --jobs 4 --retry 3

- name: Update version file
run: |
sed -i "s/VERSION = '[^']*'/VERSION = '$VERSION'/" lib/getstream_ruby/version.rb

- name: Build and publish gem
env:
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
run: |
gem build getstream-ruby.gemspec
gem push getstream-ruby-$VERSION.gem --key $GEM_HOST_API_KEY
20 changes: 15 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:
inputs:
version_type:
description: 'Version type'
description: 'Version type (used by create-release-pr only)'
required: true
default: 'patch'
type: choice
Expand All @@ -13,17 +13,27 @@ on:
- minor
- major
release_notes:
description: 'Release notes (optional)'
description: 'Release notes (used by create-release-pr only)'
required: false
type: string
publish_directly:
description: 'Skip PR creation and publish the version already in version.rb directly'
required: false
default: false
type: boolean
prerelease:
description: 'Mark the GitHub Release as a pre-release (used when publish_directly is true)'
required: false
default: false
type: boolean
push:
branches: [ main, master ]

jobs:
create-release-pr:
name: Create Release PR
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch'
if: github.event_name == 'workflow_dispatch' && github.event.inputs.publish_directly != 'true'

steps:
- name: Checkout code
Expand Down Expand Up @@ -162,7 +172,7 @@ jobs:
release:
name: Release
runs-on: ubuntu-latest
if: github.event_name == 'push'
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.publish_directly == 'true')

steps:
- name: Checkout code
Expand Down Expand Up @@ -200,7 +210,7 @@ jobs:

See CHANGELOG.md for details.
draft: false
prerelease: false
prerelease: ${{ github.event.inputs.prerelease == 'true' }}


- name: Build and publish gem
Expand Down
91 changes: 26 additions & 65 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,102 +1,63 @@
## [2.1.0] - 2026-02-18
# Changelog

### minor^2 changes
-
All notable changes to this project will be documented in this file.

## [2.0.0] - 2026-02-02
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

### major^2 changes
-
## [3.0.0.beta.1] - 2026-02-27

## [1.1.1] - 2026-01-29
### Breaking Changes

### patch^2 changes
-
- Type names across all products now follow the OpenAPI spec naming convention: response types are suffixed with `Response`, input types with `Request`. See [MIGRATION_v2_to_v3.md](./MIGRATION_v2_to_v3.md) for the complete rename mapping.
- `Event` (WebSocket envelope type) renamed to `WSEvent`. Base event type renamed from `BaseEvent` to `Event` (with field `type` instead of `T`).
- Event composition changed from monolithic `*Preset` embeds to modular `Has*` types.
- `Pager` renamed to `PagerResponse` and migrated from offset-based to cursor-based pagination (`next`/`prev` tokens).

## [1.1.0] - 2026-01-26
### Added

### minor^2 changes
-
- Full product coverage: Chat, Video, Moderation, and Feeds APIs are all supported in a single SDK.
- **Feeds**: activities, feeds, feed groups, follows, comments, reactions, collections, bookmarks, membership levels, feed views, and more.
- **Video**: calls, recordings, transcription, closed captions, SFU, call statistics, user feedback analytics, and more.
- **Moderation**: flags, review queue, moderation rules, config, appeals, moderation logs, and more.
- Push notification types, preferences, and templates.
- Webhook support: `WHEvent` envelope class for receiving webhook payloads, utility methods for decoding and verifying webhook signatures, and a full set of individual typed event classes for every event across all products (Chat, Video, Moderation, Feeds) usable as discriminated event types.
- Cursor-based pagination across all list endpoints.

## [1.0.1] - 2025-12-11
## [2.1.0] - 2026-02-18

### patch^2 changes
-
## [2.0.0] - 2026-02-02

## [1.0.0] - 2025-12-11
## [1.1.1] - 2026-01-29

### major^2 changes
-
## [1.1.0] - 2026-01-26

## [0.1.12] - 2025-10-13
## [1.0.1] - 2025-12-11

### patch^2 changes
-
## [1.0.0] - 2025-12-11

## [0.1.11] - 2025-10-13
## [0.1.12] - 2025-10-13

### patch^2 changes
-
## [0.1.11] - 2025-10-13

## [0.1.10] - 2025-10-13

### patch^2 changes
-

## [0.1.9] - 2025-10-13

### patch^2 changes
-

## [0.1.8] - 2025-10-13

### patch^2 changes
-

## [0.1.7] - 2025-10-13

### patch^2 changes
-

## [0.1.6] - 2025-10-13

### patch^2 changes
-

## [0.1.5] - 2025-10-10

### patch^2 changes
-

## [0.1.4] - 2025-10-10

### patch^2 changes
-

## [0.1.3] - 2025-10-10

### patch^2 changes
-

## [0.1.2] - 2025-10-08

### patch^2 changes
-

## [0.1.1] - 2025-10-08

### patch^2 changes
-

## [0.1.0] - 2025-10-07

### minor^2 changes
-

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

Loading