Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
365 commits
Select commit Hold shift + click to select a range
de94497
Remove redundant 13-suffixes
JoTurk Aug 8, 2026
e39ed7f
Implement outbound keyUpdate
JoTurk Aug 8, 2026
d26388d
Implement inbound keyUpdate
JoTurk Aug 9, 2026
eb478be
Add 1.3 CID state scaffold
JoTurk Aug 10, 2026
b053693
Add public UpdateKeys API
JoTurk Aug 9, 2026
676e2a7
Use one-shot completion for post-handshake result
JoTurk Aug 10, 2026
7e28696
Recognize partial handshake retransmissions
JoTurk Aug 11, 2026
22a0632
Resume and ACK split flights
JoTurk Aug 11, 2026
ae4a3f4
Handle duplicated Flight 4
JoTurk Aug 11, 2026
ca2e79a
Implement static 1.3 CID negotiation
JoTurk Aug 11, 2026
39e16ac
Integrate CID into record-layer and conn
JoTurk Aug 12, 2026
ed2de9b
Simplify flights code, remove nolints
JoTurk Aug 12, 2026
509006f
Test Flights static CID handling
JoTurk Aug 13, 2026
4cf73e6
Fuzz CID in record headers
JoTurk Aug 13, 2026
c22de29
Update README for DTLS 1.3
JoTurk Aug 13, 2026
767d044
Use tools.ietf.org for spec links
JoTurk Aug 13, 2026
c4cce43
Extenstion framing api, split by version
JoTurk Aug 12, 2026
d24c3f5
Switch to the new extensions API
JoTurk Aug 13, 2026
3e402c2
Remove old extensions API
JoTurk Aug 13, 2026
026b615
Serialize DTLS 1.3 application writes
Sean-Der Aug 12, 2026
f26320b
Port fuzz tests from old API
JoTurk Aug 13, 2026
ce64684
Implement Error for Alert
JoTurk Aug 15, 2026
76fe765
Validate extension blocks by context
JoTurk Aug 15, 2026
38db60f
Propagate handshake cache errors
JoTurk Aug 15, 2026
cdf5b6a
Reuse decoded handshake messages
JoTurk Aug 16, 2026
a059c38
Snapshot final clientHello offers
JoTurk Aug 16, 2026
e737235
Reject unsolicited ServerHello extensions
JoTurk Aug 16, 2026
e9c4270
Restore curves after daul-stack fallback
JoTurk Aug 17, 2026
c0941c5
Validate ServerHello against ClientHello
JoTurk Aug 17, 2026
6cfb06f
Make CID negotiations transactional
JoTurk Aug 17, 2026
94be68e
Update module github.com/stretchr/testify to v1.12.0 (#1032)
renovate[bot] Aug 17, 2026
64e2a86
Test CID negotiation
JoTurk Aug 18, 2026
7383b8e
Negotiate 1.2 SRTP / MKI from final offers
JoTurk Aug 19, 2026
1211026
Negotiate SRTP in EncryptedExtensions
JoTurk Aug 19, 2026
f9a8aee
Update module github.com/stretchr/testify to v1.12.1
renovate[bot] Aug 19, 2026
c5a27e6
Require and test SRTP profiles
JoTurk Aug 19, 2026
3fa4afe
Add shared ClientHello retry validation
JoTurk Aug 20, 2026
86435aa
Rename extensionnegotiation to negotiation
JoTurk Aug 20, 2026
80bdc5d
Move errors and helpers into errors.go
JoTurk Aug 20, 2026
c6f948c
Validate ClientHello retries
JoTurk Aug 20, 2026
502eaa4
Test HRR ClientHello loss and reordering
JoTurk Aug 20, 2026
f86d23f
Implement 1.3 CID routing and rebinding
JoTurk Aug 21, 2026
f68da66
Register RCC extension
JoTurk Aug 21, 2026
80416f4
Negotiate RRC
JoTurk Aug 21, 2026
c883628
Add RRC record encoding
JoTurk Aug 21, 2026
355c1ff
RRC path validation state
JoTurk Aug 21, 2026
80c42b1
Integrate and test RRC
JoTurk Aug 21, 2026
66a2879
Add RRC to the README
JoTurk Aug 22, 2026
4c9bac5
Use unique record numbers for fragments
JoTurk Aug 23, 2026
9133ae5
Add path migration policies
JoTurk Aug 21, 2026
aff5a0d
Return zero bytes from write on failure
JoTurk Aug 23, 2026
2ddc5d4
Move to a unified UnpackDatagram API
JoTurk Aug 24, 2026
f1b423a
Drop the 13 suffix from CiphertextRecord13
JoTurk Aug 24, 2026
b65cec8
Update CID state comment to reflect new API
JoTurk Aug 24, 2026
d573b08
Clarify readBufferLease ownership comment
JoTurk Aug 24, 2026
24d7f48
Remove duplicated record-layer tests
JoTurk Aug 24, 2026
c0d05ce
Remove duplicated pkg tests
JoTurk Aug 24, 2026
ee6e744
Remove duplicated flight4 CID test
JoTurk Aug 24, 2026
5500940
Remove duplicated flight tests
JoTurk Aug 24, 2026
7ab189f
Cover all supported groups in test
JoTurk Aug 24, 2026
bc06a67
Make receive buffer size configurable
the-sarge Aug 13, 2026
857bac5
Update docker.io/library/golang Docker tag to v1.27
renovate[bot] Aug 24, 2026
f5cb9af
Add accessor for negotiated DTLS role + version
fippo Aug 24, 2026
716d333
Fix unpack error missmatch
JoTurk Aug 24, 2026
415cdd1
Consolidate cipher fuzz and benchmark
JoTurk Aug 24, 2026
48ac143
Remove redundant handshake tests
JoTurk Aug 24, 2026
150ae6c
Remove redundant Algorithms13
JoTurk Aug 24, 2026
ccb84ac
Fix RSA e2e timeout
JoTurk Aug 25, 2026
8a05270
Consolidate 1.2 and 1.3 SelectSignatureScheme
JoTurk Aug 25, 2026
e8e8798
Remove redundant option tests
JoTurk Aug 25, 2026
c46aa65
Consolidate duplicated tests
JoTurk Aug 25, 2026
fefb0a1
Replace Packet with outbound record intent
JoTurk Aug 25, 2026
b8d0856
Update recordlayer package documentation
JoTurk Aug 25, 2026
dccb7be
Simplify datagram handling
JoTurk Aug 25, 2026
0cbc18d
Add optimizations for connection & handshake (#820)
noboruma Aug 28, 2026
1736faa
Represent protocol versions as uint16
JoTurk Aug 26, 2026
f410566
Fix packet connection leak
noboruma Aug 29, 2026
bff4a0f
Close rejected listeners at Accept
JoTurk Aug 29, 2026
d1b4219
Drop the transient WithOptions suffix
JoTurk Aug 29, 2026
923d6e6
Simplify cipher suite and record protection
JoTurk Aug 29, 2026
f09375f
Rework client and listener constructors
JoTurk Aug 29, 2026
ca9cd61
Consolidate E2E scenarios
JoTurk Aug 29, 2026
3eaa315
Consolidate options / config tests
JoTurk Aug 29, 2026
8891883
Deduplicate handshake test helpers
JoTurk Aug 29, 2026
16fcc84
Set LLL line-length to 320
JoTurk Aug 29, 2026
73d391c
Check for non-approved algos on resume (#1079)
jjinno Aug 31, 2026
fb3caee
Optimize buffer used by PacketConn (#1075)
noboruma Sep 1, 2026
2a3670e
Stabilize test HRR retransmission
JoTurk Sep 1, 2026
e72115d
Implement DetachedConn
JoTurk Sep 2, 2026
59f4c33
Add mDNS example for DetachedConn
JoTurk Sep 2, 2026
474c3e2
Optimize PacketConn (#1076)
noboruma Sep 7, 2026
3d2f13a
Discard oversized and empty datagrams
JoTurk Sep 12, 2026
1a14b35
Remove stream-to-packet transport adapters
JoTurk Sep 13, 2026
d679411
Bound MTU and receive-buffer to 65535
JoTurk Sep 13, 2026
859cc4f
Continue receiving after truncated datagrams
JoTurk Sep 13, 2026
f998c2c
Fix UDP truncation handling on Windows
JoTurk Sep 13, 2026
f22b49b
Enforce CID generator length
JoTurk Sep 13, 2026
84cf9e8
Validate CID lengths during handshakes
JoTurk Sep 14, 2026
f883ed6
Bound DTLS 1.3 read-key selection
JoTurk Sep 14, 2026
02c1445
Update 1.3 seq tracking after auth
JoTurk Sep 14, 2026
6622d4d
Update module github.com/pion/transport/v4 to v4.1.1
renovate[bot] Sep 14, 2026
733a380
Preserve full-width 1.3 record numbers
JoTurk Sep 14, 2026
e731329
Update to transport/v5 and Deadline.Context
JoTurk Sep 16, 2026
9b628e0
Fix racy ACK test
JoTurk Sep 16, 2026
e6a3cae
Enforce RFC 9146 & 9147 CID routing rules
JoTurk Sep 17, 2026
8ca1f05
Fix flaky HRR retransmission test
JoTurk Sep 17, 2026
b11e303
Update MDNs example mod
JoTurk Sep 17, 2026
1682c5a
Update module github.com/pion/transport/v5 to v5.0.1
renovate[bot] Sep 17, 2026
2497cb7
Optimize allocations for handshake and compaction (#1096)
noboruma Sep 17, 2026
a40d470
Enforce CID requirements on queued datagrams
JoTurk Sep 17, 2026
c3260f2
Fix race in CID rebinding tests
JoTurk Sep 17, 2026
1422912
Replace mutable record-layer with parse/marshal
JoTurk Sep 17, 2026
4c8593e
Discard late plaintext control records
JoTurk Sep 18, 2026
5f3ca8f
Use shared interop workflow
JoTurk Sep 18, 2026
ea098b6
Update to /v4
JoTurk Sep 20, 2026
7f6751c
Remove doc file
JoTurk Sep 20, 2026
a4c49b8
Remove unused and duplicated code
JoTurk Sep 20, 2026
cf7ced4
Track record key usage stats
JoTurk Sep 20, 2026
f68eaf4
Support multiple CID aliases per conn
JoTurk Sep 20, 2026
c69d110
Support multiple CIDs in 1.3 state
JoTurk Sep 20, 2026
0f93eae
Schedule 1.3 post-handshake messages by type
JoTurk Sep 20, 2026
c2c2da0
Add post-handshake NewConnectionID handling
JoTurk Sep 20, 2026
7e96c55
Add DTLS 1.3 keying-material exporter (#1133)
enobufs Sep 21, 2026
cfb985d
Update WithMaxVersion's comment
NotAFlightRisk Sep 21, 2026
05e47ce
Update module github.com/pion/transport/v5 to v5.1.0 (#1135)
renovate[bot] Sep 22, 2026
bf4686a
Implement 1.3 CID requests
JoTurk Sep 22, 2026
9310256
Support multiple paths internally
JoTurk Sep 22, 2026
185ef2d
Add local path migration API
JoTurk Sep 22, 2026
05e93d5
Avoid comparing entire x509 structs
JoTurk Sep 22, 2026
49c2162
Update CI configs to v0.12.7
pionbot Sep 22, 2026
17146cd
Update module github.com/pion/transport/v5 to v5.1.1
renovate[bot] Sep 23, 2026
6710047
Honor requested certificate types
JoTurk Sep 26, 2026
8d759cc
Allow PSK handshake if client certs are required
JoTurk Sep 26, 2026
397d245
Update module github.com/pion/dtls/v3 to v3.1.10
renovate[bot] Sep 26, 2026
9bf7af7
Migrate some tests to synctest (#1148)
lanc07 Sep 28, 2026
ea568b5
Support dual-stack handshake retransmission
JoTurk Sep 29, 2026
e907d97
Update module github.com/pion/mdns/v2 to v2.2.2 (#1154)
renovate[bot] Oct 1, 2026
141c5f3
Disable SessionTicket
JoTurk Oct 1, 2026
9977873
Add PSK support to 1.3 key derivation
JoTurk Oct 1, 2026
2b9989a
Accept reordered extensions in ClientHello2 (#1156)
devArnoud Oct 1, 2026
cd755b7
Implement 1.3 PSK binder and ClientHello helpers
JoTurk Oct 1, 2026
762a4ad
Add 1.3 PSK state
JoTurk Oct 2, 2026
7741cd0
Document public PSK APIs after 1.3
JoTurk Oct 2, 2026
4dd4ec3
Implement 1.3 PSK handshake helpers
JoTurk Oct 2, 2026
d045231
Wire 1.3 PSK into flight and FSM
JoTurk Oct 2, 2026
48ff9c6
Rework WithPSK for 1.3, identities and hashes
JoTurk Oct 2, 2026
202f779
Consolidate public configs into options.go
JoTurk Oct 2, 2026
386d443
Add missing CID and 1.3 features to README
JoTurk Oct 2, 2026
e705c45
Add multiple 1.3 PSK identity support
JoTurk Oct 2, 2026
b386d79
Add SHA-384 support for 1.3 PSK
JoTurk Oct 2, 2026
9f2a63c
Add 1.3 psk_ke support as fallback
JoTurk Oct 2, 2026
534c8b4
Document PSK 1.3 supprt in README
JoTurk Oct 2, 2026
1e441ca
Remove public network and E2E tests
JoTurk Oct 2, 2026
e5a0f38
Fix empty 1.2 ECDHE-PSK identity hint
JoTurk Oct 2, 2026
8dfdae6
Update module golang.org/x/net to v0.55.0 [SECURITY] (#881)
renovate[bot] Oct 2, 2026
2b49400
Scope empty identity hint to ECDHE-PSK
JoTurk Oct 3, 2026
9016586
Move mDNS example to v4
JoTurk Oct 3, 2026
e6a8a21
Extract flight4Generate
JoTurk Oct 3, 2026
2b1ffb9
Derive 1.3 resumption secrets
JoTurk Oct 3, 2026
9025dd6
Finish 1.3 NewSessionTicket lifecycle
JoTurk Oct 3, 2026
fb0db03
Cache peer certificates with session tickets
JoTurk Oct 3, 2026
d20a76a
Load and validate cached 1.3 sessionTickets
JoTurk Oct 3, 2026
b8ce6f7
Select 1.3 server resumption tickets
JoTurk Oct 3, 2026
18c50cc
Wire 1.3 resumption into handshake
JoTurk Oct 3, 2026
ba9360e
Add DetachedConn 0rtt early-data API
JoTurk Oct 3, 2026
2426c6d
Set and advertise early-data limit
JoTurk Oct 4, 2026
a722df0
Derive DTLS 1.3 early traffic keys
JoTurk Oct 4, 2026
8c6164e
Support epoch 1 application records
JoTurk Oct 4, 2026
13cd371
Add optional session-store for early-data
JoTurk Oct 4, 2026
8abf39f
Negotiate ALPN in DTLS 1.3
JoTurk Oct 4, 2026
bd3289d
Negotiate early-data
JoTurk Oct 4, 2026
5ec130c
Wire and test early data into detachedConn
JoTurk Oct 4, 2026
e32d7c0
DTLS 1.3 resumption example with optional 0-RTT
JoTurk Oct 4, 2026
bab22bd
Document resumption and 0RTT support
JoTurk Oct 4, 2026
1c813fa
Remove the tag-freeze warning
JoTurk Oct 4, 2026
03598cc
Keep isClient state during state resumption
JoTurk Oct 4, 2026
a4a0aba
Consolidate CID state copying and ciphers
JoTurk Oct 4, 2026
fb2e4f7
Add helpers for 1.3 state export/restoration
JoTurk Oct 4, 2026
c1890c2
Support DTLS 1.3 state resume / export
JoTurk Oct 5, 2026
39010ef
Extend TestResume to test DTLS 1.3
JoTurk Oct 5, 2026
79e1722
Document state export/resumption support for DTLS 1.3
JoTurk Oct 5, 2026
dd739cd
Add ECH extension formats and alert
JoTurk Oct 5, 2026
8c26fc9
Update CI configs to v0.12.8
pionbot Oct 5, 2026
8779a0d
Remove gocyclo, maintidx and gocognit
JoTurk Oct 5, 2026
e2177ba
Move dev CID errors to their final home in connection_id
JoTurk Oct 5, 2026
e468030
Extract CH wire parsing and validation
JoTurk Oct 6, 2026
33601b4
Fix CCM length encoding of long additional data
cB-Abhinav-Gautam Oct 6, 2026
bc08aaa
ECH configuration and cryptographic helpers
JoTurk Oct 6, 2026
d181dcb
Apply read and write deadlines to handshake
JoTurk Oct 6, 2026
07d1a19
Add initial ECH ClientHello construction
JoTurk Oct 7, 2026
c32bfb8
Reject IPv4 literals in ECH public names
JoTurk Oct 7, 2026
2f72ede
Add server ECH decryption and confirmation
JoTurk Oct 8, 2026
a45c9b0
Add server ECH handshake integration
JoTurk Oct 9, 2026
76bfecc
Integrate ECH with HRR
JoTurk Oct 9, 2026
f2d606b
Handle ECH client acceptance
JoTurk Oct 9, 2026
00e10f6
Add client ECH acceptance for HRR
JoTurk Oct 10, 2026
f64c71b
Handle ECH rejection, retry, fallback
JoTurk Oct 10, 2026
c74a1f5
Add ECH support for external PSKs
JoTurk Oct 10, 2026
cf4b0e0
Allow early-data through ECH
JoTurk Oct 10, 2026
39f10b4
Add ECH public options
JoTurk Oct 11, 2026
ee71667
Document ECH support
JoTurk Oct 11, 2026
56f7863
Retransmit server flight on repeated CH
JoTurk Oct 13, 2026
a618ada
Support DTLS 1.3 key logging
JoTurk Oct 14, 2026
0a2ffd5
Support 0rtt key logging with ECH
JoTurk Oct 14, 2026
aa9873c
Fix DTLS 1.3 alert for invalid Finished messages
JoTurk Oct 15, 2026
99766f7
Delay ACKs as suggested in RFC 9147
JoTurk Oct 15, 2026
c8b9a6b
Reject 1.3 CH with no shared group
JoTurk Oct 15, 2026
573e1ff
Return illegal_parameter for invalid compression
JoTurk Oct 15, 2026
fd1f2db
Fix PSK identity-hint length overflow
JoTurk Oct 16, 2026
c08e46d
Reject empty certificate entries
JoTurk Oct 16, 2026
fc93d75
Bound SNI processing during certificate selection
JoTurk Oct 16, 2026
87aff19
Validate handshake signatures against keys
JoTurk Oct 16, 2026
0b615da
Limit peer RSA keys before signature verification
JoTurk Oct 16, 2026
19003de
Distinguish RSA-PSS certificate signature schemes
JoTurk Oct 16, 2026
6157548
Honor local signature policy for CertificateVerify
JoTurk Oct 16, 2026
c4afd84
Match server certificate keys to the cipher suite
JoTurk Oct 16, 2026
68ff298
Preserve IP names for certificate verification
JoTurk Oct 16, 2026
9fe009b
Count UDP connections before exposing them
JoTurk Oct 16, 2026
33b9e4c
Reject unsupported DTLS 1.2 record epochs
JoTurk Oct 16, 2026
3209f9e
Keep early application data from blocking Finished
JoTurk Oct 16, 2026
a0f0f8a
Process the client certificate flight once
JoTurk Oct 16, 2026
dae8186
Verify client Finished in DTLS 1.2 handshakes
JoTurk Oct 16, 2026
37de8de
Reject unrequested client certificates
JoTurk Oct 16, 2026
410ac0e
Save sessions only after client authentication
JoTurk Oct 16, 2026
9368f21
Reject unoffered curves in DTLS client exchange
JoTurk Oct 16, 2026
c1594b6
Negotiate DTLS parameters from the cookie CH
JoTurk Oct 16, 2026
cc655df
Restrict cookie challenges to ClientHello retries
JoTurk Oct 16, 2026
35aad86
Validate DTLS 1.2 ALPN selection
JoTurk Oct 16, 2026
c8b0a45
Select cipher suites using the SNI certificate
JoTurk Oct 16, 2026
b835983
Bind cached sessions to role and cipher suite
JoTurk Oct 16, 2026
674911d
Preserve extended master secret on resumption
JoTurk Oct 16, 2026
b674a57
Recheck PSK credentials before resuming sessions
JoTurk Oct 16, 2026
70954c9
Authenticate peers again on session resumption
JoTurk Oct 16, 2026
19c8d70
Validate cookies before resuming server sessions
JoTurk Oct 16, 2026
8deed2f
Bound DTLS 1.2 handshake cache memory usage
JoTurk Oct 16, 2026
436c15e
Reject resumption of incomplete connection state
JoTurk Oct 16, 2026
9c02a60
Retain the receive replay cutoff across Resume
JoTurk Oct 16, 2026
ab311fd
Authenticate detached application data delivery
JoTurk Oct 16, 2026
9bdb8a4
Keep detached read errors from blocking the driver
JoTurk Oct 16, 2026
79dc6cb
Coalesce required KeyUpdate responses
JoTurk Oct 16, 2026
5482e8e
Update module github.com/pion/dtls/v4 to v4.0.0-rc.5
renovate[bot] Oct 16, 2026
b645af6
Prevent handshake message sequence wraparound
JoTurk Oct 17, 2026
ac0e387
Port ECDHE_PSK ClientKeyExchange validation
JoTurk Oct 17, 2026
8d12840
Validate DTLS 1.3 handshake record epochs
JoTurk Oct 17, 2026
031ba96
Update module github.com/pion/dtls/v4 to v4.0.0-rc.6
renovate[bot] Oct 18, 2026
2892142
Handle messages while awaiting the final ACK
JoTurk Oct 18, 2026
7d9c940
Reset protection when restarting client handshakes
JoTurk Oct 18, 2026
09df7f2
Add TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256
zmerlynn Oct 19, 2026
ba1081a
Add ExportState for state restoration
JoTurk Oct 18, 2026
af014e3
Pace repeated cookie responses with backoff
JoTurk Oct 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
  •  
  •  
  •  
24 changes: 0 additions & 24 deletions .github/workflows/e2e.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/fuzz.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ jobs:
fuzz:
uses: pion/.goassets/.github/workflows/fuzz.reusable.yml@main
with:
go-version: "1.25" # auto-update/latest-go-version
go-version: "1.27" # auto-update/latest-go-version
fuzz-time: "60s"
96 changes: 96 additions & 0 deletions .github/workflows/goassets-automerge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#
# DO NOT EDIT THIS FILE
#
# It is automatically copied from https://github.com/pion/.goassets repository.
# If this repository should have package specific CI config,
# remove the repository name from .goassets/.github/workflows/assets-sync.yml.
#
# If you want to update the shared CI config, send a PR to
# https://github.com/pion/.goassets instead of this repository.
#
# SPDX-FileCopyrightText: 2026 The Pion community <https://pion.ly>
# SPDX-License-Identifier: MIT

name: Auto-merge .goassets updates
on:
pull_request_target:
types: [opened]
workflow_run:
workflows: [API, CodeQL, Fuzz, Go mod tidy, Lint, REUSE Compliance Check, Test]
types: [completed]
branches: [sync-assets-*]

permissions:
checks: read
contents: write
pull-requests: write
statuses: read

concurrency:
group: goassets-automerge-${{ github.event.pull_request.head.ref || github.event.workflow_run.head_branch }}
cancel-in-progress: false

jobs:
auto-merge:
if: >-
github.repository_owner == 'pion' &&
((github.event_name == 'pull_request_target' &&
github.event.pull_request.user.login == 'pionbot' &&
github.event.pull_request.base.ref == 'main' &&
github.event.pull_request.head.repo.full_name == github.repository) ||
(github.event_name == 'workflow_run' &&
github.event.workflow_run.conclusion == 'success' &&
github.event.workflow_run.head_repository.full_name == github.repository))
runs-on: ubuntu-26.04
timeout-minutes: 60
steps:
- name: Validate .goassets PR
id: pr
env:
GH_TOKEN: ${{ github.token }}
REPOSITORY: ${{ github.repository }}
HEAD: ${{ github.event.pull_request.head.ref || github.event.workflow_run.head_branch }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.workflow_run.head_sha }}
run: |
if ! [[ "$HEAD" =~ ^sync-assets-v[0-9]+\.[0-9]+\.[0-9]+$ ]] &&
! [[ "$REPOSITORY" == "pion/ci-sandbox" && "$HEAD" == "sync-assets-main" ]]; then
exit 0
fi

# Fetch current PR data: reruns may refer to a closed PR or an old commit.
gh api --method GET "repos/$REPOSITORY/pulls" \
-f state=open -f base=main -f head="${REPOSITORY%%/*}:$HEAD" |
jq -r --arg repository "$REPOSITORY" --arg head "$HEAD" --arg sha "$HEAD_SHA" '
.[] | select(
.user.login == "pionbot" and
.state == "open" and
.draft == false and
.base.ref == "main" and
.head.repo.full_name == $repository and
.head.ref == $head and
.head.sha == $sha and
.title == ("Update CI configs to " + ($head | ltrimstr("sync-assets-")))
) | "url=\(.html_url)"
' >> "$GITHUB_OUTPUT"

- name: Approve
if: steps.pr.outputs.url != ''
env:
GH_TOKEN: ${{ github.token }}
PR_URL: ${{ steps.pr.outputs.url }}
run: gh pr review "$PR_URL" --approve

- name: Wait for required checks
if: steps.pr.outputs.url != ''
env:
GH_TOKEN: ${{ github.token }}
PR_URL: ${{ steps.pr.outputs.url }}
run: gh pr checks "$PR_URL" --required --watch --fail-fast

- name: Merge
if: steps.pr.outputs.url != ''
env:
GH_TOKEN: ${{ github.token }}
PR_URL: ${{ steps.pr.outputs.url }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.workflow_run.head_sha }}
run: gh pr merge "$PR_URL" --rebase --match-head-commit "$HEAD_SHA"
26 changes: 26 additions & 0 deletions .github/workflows/interop.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# SPDX-FileCopyrightText: 2026 The Pion community <https://pion.ly>
# SPDX-License-Identifier: MIT

name: Interoperability

on:
pull_request:
branches:
- main
push:
branches:
- main

permissions:
contents: read

concurrency:
group: interop-${{ github.ref }}
cancel-in-progress: true

jobs:
interop:
uses: pion/dtls-interop/.github/workflows/interop-tests.yaml@main
with:
dtls-repository: ${{ github.repository }}
dtls-ref: ${{ github.event.pull_request.head.sha || github.sha }}
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
release:
uses: pion/.goassets/.github/workflows/release.reusable.yml@main
with:
go-version: "1.25" # auto-update/latest-go-version
go-version: "1.27" # auto-update/latest-go-version
10 changes: 5 additions & 5 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
uses: pion/.goassets/.github/workflows/test.reusable.yml@main
strategy:
matrix:
go: ["1.25", "1.24"] # auto-update/supported-go-version-list
go: ["1.27", "1.26"] # auto-update/supported-go-version-list
fail-fast: false
with:
go-version: ${{ matrix.go }}
Expand All @@ -33,7 +33,7 @@ jobs:
uses: pion/.goassets/.github/workflows/test-i386.reusable.yml@main
strategy:
matrix:
go: ["1.25", "1.24"] # auto-update/supported-go-version-list
go: ["1.27", "1.26"] # auto-update/supported-go-version-list
fail-fast: false
with:
go-version: ${{ matrix.go }}
Expand All @@ -42,7 +42,7 @@ jobs:
uses: pion/.goassets/.github/workflows/test-windows.reusable.yml@main
strategy:
matrix:
go: ["1.25", "1.24"] # auto-update/supported-go-version-list
go: ["1.27", "1.26"] # auto-update/supported-go-version-list
fail-fast: false
with:
go-version: ${{ matrix.go }}
Expand All @@ -51,13 +51,13 @@ jobs:
uses: pion/.goassets/.github/workflows/test-macos.reusable.yml@main
strategy:
matrix:
go: ["1.25", "1.24"] # auto-update/supported-go-version-list
go: ["1.27", "1.26"] # auto-update/supported-go-version-list
fail-fast: false
with:
go-version: ${{ matrix.go }}

test-wasm:
uses: pion/.goassets/.github/workflows/test-wasm.reusable.yml@main
with:
go-version: "1.25" # auto-update/latest-go-version
go-version: "1.27" # auto-update/latest-go-version
secrets: inherit
2 changes: 1 addition & 1 deletion .github/workflows/tidy-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ jobs:
tidy:
uses: pion/.goassets/.github/workflows/tidy-check.reusable.yml@main
with:
go-version: "1.25" # auto-update/latest-go-version
go-version: "1.27" # auto-update/latest-go-version
18 changes: 10 additions & 8 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,8 @@ linters:
- forbidigo # Forbids identifiers
- forcetypeassert # finds forced type assertions
- gochecknoglobals # Checks that no globals are present in Go code
- gocognit # Computes and checks the cognitive complexity of functions
- goconst # Finds repeated strings that could be replaced by a constant
- gocritic # The most opinionated Go source code linter
- gocyclo # Computes and checks the cyclomatic complexity of functions
- godot # Check if comments end in a period
- godox # Tool for detection of FIXME, TODO and other comment keywords
- goheader # Checks is file header matches to pattern
Expand All @@ -38,7 +36,6 @@ linters:
- importas # Enforces consistent import aliases
- ineffassign # Detects when assignments to existing variables are not used
- lll # Reports long lines
- maintidx # maintidx measures the maintainability index of each function.
- makezero # Finds slice declarations with non-zero initial length
- misspell # Finds commonly misspelled English words in comments
- modernize # Replace and suggests simplifications to code
Expand Down Expand Up @@ -78,6 +75,8 @@ linters:
- wrapcheck # Checks that errors returned from external packages are wrapped
- wsl # Whitespace Linter - Forces you to use empty lines!
settings:
lll:
line-length: 320
staticcheck:
checks:
- all
Expand Down Expand Up @@ -105,12 +104,19 @@ linters:
govet:
enable:
- shadow
gosec:
excludes:
- G117 # noisy secret/password field-name checks.
revive:
rules:
# Prefer 'any' type alias over 'interface{}' for Go 1.18+ compatibility
- name: use-any
severity: warning
disabled: false
# Keep package documentation consistent and avoid duplicate package comments.
- name: package-comments
severity: warning
disabled: false
misspell:
locale: US
varnamelen:
Expand All @@ -130,11 +136,7 @@ linters:
rules:
- linters:
- forbidigo
- gocognit
path: (examples|main\.go)
- linters:
- gocognit
path: _test\.go
- linters:
- forbidigo
path: cmd
Expand All @@ -147,5 +149,5 @@ formatters:
exclusions:
generated: lax
issues:
max-same-issues: 0
max-issues-per-linter: 0
max-same-issues: 0
Loading
Loading