chore: format release please changelogs

This commit is contained in:
Abhishek Kumar 2026-06-02 13:42:55 +05:30
parent 51ab9303ec
commit 8b9059fbe2
6 changed files with 86 additions and 18 deletions

25
.github/release.yml vendored Normal file
View file

@ -0,0 +1,25 @@
changelog:
exclude:
labels:
- chore
- "autorelease: pending"
- "autorelease: tagged"
categories:
- title: Features
labels:
- feat
- title: Bug Fixes
labels:
- fix
- title: Documentation
labels:
- docs
- title: Performance Improvements
labels:
- perf
- title: Code Refactoring
labels:
- refactor
- title: Other Changes
labels:
- "*"

View file

@ -0,0 +1,54 @@
name: PR Conventional Labeler
# Labels each PR with its conventional-commit type (feat, fix, docs, perf,
# refactor, chore) derived from the PR title. These labels drive the changelog
# categories in .github/release.yml when release-please generates notes.
# chore is labeled but excluded from the changelog (see .github/release.yml),
# preserving the previous "chore hidden" behavior.
on:
pull_request_target:
types: [opened, edited, reopened, ready_for_review]
permissions:
contents: read
pull-requests: write
jobs:
label:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
with:
script: |
// Conventional-commit types we manage as labels.
const managedLabels = ['feat', 'fix', 'docs', 'perf', 'refactor', 'chore'];
const pr = context.payload.pull_request;
const title = pr.title || '';
// Matches: feat:, fix(scope):, perf!:, refactor(api)!: ...
const match = title.match(/^([a-zA-Z]+)(\([^)]*\))?!?:/);
const type = match ? match[1].toLowerCase() : null;
const target = managedLabels.includes(type) ? type : null;
const { owner, repo } = context.repo;
const issue_number = pr.number;
const current = pr.labels.map(l => l.name);
// Remove any managed label that no longer matches the title
// (e.g. PR retitled from feat: to fix:).
for (const label of current) {
if (managedLabels.includes(label) && label !== target) {
await github.rest.issues
.removeLabel({ owner, repo, issue_number, name: label })
.catch(() => {});
}
}
// Apply the matching label if not already present.
if (target && !current.includes(target)) {
await github.rest.issues.addLabels({
owner, repo, issue_number, labels: [target],
});
}

View file

@ -121,9 +121,7 @@ class TelnyxConferenceStrategy(TransferStrategy):
)
manager = await get_call_transfer_manager()
return await manager.find_transfer_context_for_call(
caller_call_control_id
)
return await manager.find_transfer_context_for_call(caller_call_control_id)
except Exception as e:
logger.error(f"[Telnyx Transfer] Error finding transfer context: {e}")

View file

@ -65,9 +65,7 @@ class TestFindTransferContextByCallSid:
fake = _FakeRedis()
manager = CallTransferManager(redis_client=fake)
await manager.store_transfer_context(
_build_context("tx-1", "caller-abc")
)
await manager.store_transfer_context(_build_context("tx-1", "caller-abc"))
found = await manager.find_transfer_context_for_call("caller-abc")
@ -84,9 +82,7 @@ class TestFindTransferContextByCallSid:
fake = _FakeRedis()
manager = CallTransferManager(redis_client=fake)
await manager.store_transfer_context(
_build_context("tx-1", "caller-abc")
)
await manager.store_transfer_context(_build_context("tx-1", "caller-abc"))
found = await manager.find_transfer_context_for_call("not-a-caller")
@ -100,9 +96,7 @@ class TestFindTransferContextByCallSid:
fake = _FakeRedis()
manager = CallTransferManager(redis_client=fake)
await manager.store_transfer_context(
_build_context("tx-1", "caller-abc")
)
await manager.store_transfer_context(_build_context("tx-1", "caller-abc"))
await manager.remove_transfer_context("tx-1")
found = await manager.find_transfer_context_for_call("caller-abc")

View file

@ -26,9 +26,7 @@ def _embed_session():
def _embed_token(allowed_domains):
return SimpleNamespace(
allowed_domains=allowed_domains, created_by=7, workflow_id=3
)
return SimpleNamespace(allowed_domains=allowed_domains, created_by=7, workflow_id=3)
def _patch_deps():
@ -36,9 +34,7 @@ def _patch_deps():
db = patch("api.routes.webrtc_signaling.db_client").start()
mgr = patch("api.routes.webrtc_signaling.signaling_manager").start()
db.get_embed_session_by_token = AsyncMock(return_value=_embed_session())
db.get_embed_token_by_id = AsyncMock(
return_value=_embed_token(["example.com"])
)
db.get_embed_token_by_id = AsyncMock(return_value=_embed_token(["example.com"]))
db.get_user_by_id = AsyncMock(return_value=SimpleNamespace(id=7))
mgr.handle_websocket = AsyncMock()
return db, mgr

View file

@ -3,6 +3,7 @@
".": {
"release-type": "simple",
"package-name": "dograh",
"changelog-type": "github",
"changelog-sections": [
{
"type": "feat",