Skip to content

Commit d10b9d2

Browse files
authored
Release v1.14.0
2 parents 7998ca5 + 1d50877 commit d10b9d2

File tree

85 files changed

+1807
-168
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+1807
-168
lines changed

.ci/require-symfony.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,6 @@ else
5151
# Symfony Messenger only exists from 4.1.0 onward
5252
case "$SYMFONY_VERSION" in
5353
4.0*) ;;
54-
^[4-6]*) composer require "symfony/messenger:${SYMFONY_VERSION}" --no-update ;;
54+
^[4-99]*) composer require "symfony/messenger:${SYMFONY_VERSION}" --no-update ;;
5555
esac
5656
fi

.github/workflows/license-audit.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,19 @@ jobs:
77
runs-on: ubuntu-latest
88
strategy:
99
matrix:
10+
php-version: ['8.0']
1011
symfony-version: ['^3.4', '^4.4', '^5.0', '^6.0']
12+
include:
13+
- symfony-version: '^7.0'
14+
php-version: '8.3'
1115

1216
steps:
1317
- uses: actions/checkout@v2
1418

1519
- name: install PHP
1620
uses: shivammathur/setup-php@v2
1721
with:
18-
php-version: '8.0'
22+
php-version: ${{ matrix.php-version }}
1923

2024
- name: Fetch decisions.yml
2125
run: curl https://raw.githubusercontent.com/bugsnag/license-audit/master/config/decision_files/global.yml -o decisions.yml

.github/workflows/maze-runner.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
include:
1818
- php-version: '7.2'
1919
symfony-version: 2
20+
- php-version: '8.3'
21+
symfony-version: 7
2022

2123
steps:
2224
- uses: actions/checkout@v2

.github/workflows/test-package.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,16 @@ jobs:
8787
- php-version: '8.2'
8888
symfony-version: '^6.0'
8989
- php-version: '8.2'
90+
symfony-version: '^7.0'
91+
- php-version: '8.3'
92+
symfony-version: '^4.4'
93+
- php-version: '8.3'
94+
symfony-version: '^5.0'
95+
- php-version: '8.3'
96+
symfony-version: '^6.0'
97+
- php-version: '8.3'
98+
symfony-version: '^7.0'
99+
- php-version: '8.3'
90100
symfony-version: 'latest'
91101

92102
steps:

BugsnagBundle.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ class BugsnagBundle extends Bundle
1111
*
1212
* @return string
1313
*/
14-
const VERSION = '1.13.0';
14+
const VERSION = '1.14.0';
1515
}

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
Changelog
22
=========
33

4+
## 1.14.0 (2024-01-16)
5+
6+
* Add support for Symfony 7
7+
[elliotbruneel](https://github.com/elliotbruneel)
8+
[jdecool](https://github.com/jdecool)
9+
[#170](https://github.com/bugsnag/bugsnag-symfony/pull/170)
10+
411
## 1.13.0 (2022-10-24)
512

613
### Enhancements
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
<?php
2+
3+
namespace Bugsnag\BugsnagBundle\DependencyInjection;
4+
5+
use Bugsnag\BugsnagBundle\EventListener\BugsnagListener;
6+
use Bugsnag\BugsnagBundle\EventListener\BugsnagShutdown;
7+
use Bugsnag\BugsnagBundle\Request\SymfonyResolver;
8+
use Bugsnag\Client;
9+
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
10+
use Symfony\Component\Config\Definition\ConfigurationInterface;
11+
12+
abstract class BaseConfiguration
13+
{
14+
/**
15+
* The name of the root of the configuration.
16+
*
17+
* @var string
18+
*/
19+
const ROOT_NAME = 'bugsnag';
20+
21+
/**
22+
* Get the configuration tree builder.
23+
*
24+
* @return TreeBuilder
25+
*/
26+
public function getConfigTreeBuilder()
27+
{
28+
$treeBuilder = new TreeBuilder(self::ROOT_NAME);
29+
$rootNode = $this->getRootNode($treeBuilder);
30+
31+
$rootNode
32+
->children()
33+
->scalarNode('api_key')
34+
->defaultValue(getenv('BUGSNAG_API_KEY') ?: null)
35+
->end()
36+
->scalarNode('endpoint')
37+
->defaultValue(getenv('BUGSNAG_ENDPOINT') ?: null)
38+
->end()
39+
->booleanNode('callbacks')
40+
->defaultValue(true)
41+
->end()
42+
->booleanNode('user')
43+
->defaultValue(true)
44+
->end()
45+
->scalarNode('app_type')
46+
->defaultNull()
47+
->end()
48+
->scalarNode('app_version')
49+
->defaultNull()
50+
->end()
51+
->booleanNode('batch_sending')
52+
->defaultValue(true)
53+
->end()
54+
->scalarNode('hostname')
55+
->defaultNull()
56+
->end()
57+
->booleanNode('send_code')
58+
->defaultValue(true)
59+
->end()
60+
->scalarNode('release_stage')
61+
->defaultNull()
62+
->end()
63+
->scalarNode('strip_path')
64+
->defaultNull()
65+
->end()
66+
->scalarNode('project_root')
67+
->defaultNull()
68+
->end()
69+
->booleanNode('auto_notify')
70+
->defaultValue(true)
71+
->end()
72+
->scalarNode('resolver')
73+
->defaultValue(SymfonyResolver::class)
74+
->end()
75+
->scalarNode('factory')
76+
->defaultValue(ClientFactory::class)
77+
->end()
78+
->scalarNode('client')
79+
->defaultValue(Client::class)
80+
->end()
81+
->scalarNode('listener')
82+
->defaultValue(BugsnagListener::class)
83+
->end()
84+
->arrayNode('notify_release_stages')
85+
->prototype('scalar')->end()
86+
->treatNullLike([])
87+
->defaultValue([])
88+
->end()
89+
->arrayNode('filters')
90+
->prototype('scalar')->end()
91+
->treatNullLike([])
92+
->defaultValue([])
93+
->end()
94+
->scalarNode('shutdown')
95+
->defaultValue(BugsnagShutdown::class)
96+
->end()
97+
->scalarNode('strip_path_regex')
98+
->defaultNull()
99+
->end()
100+
->scalarNode('project_root_regex')
101+
->defaultNull()
102+
->end()
103+
->scalarNode('guzzle')
104+
->defaultNull()
105+
->end()
106+
->scalarNode('memory_limit_increase')
107+
->defaultFalse()
108+
->end()
109+
->arrayNode('discard_classes')
110+
->prototype('scalar')->end()
111+
->treatNullLike([])
112+
->defaultValue([])
113+
->end()
114+
->arrayNode('redacted_keys')
115+
->prototype('scalar')->end()
116+
->treatNullLike([])
117+
->defaultValue([])
118+
->end()
119+
->arrayNode('feature_flags')
120+
->prototype('array')
121+
->children()
122+
->scalarNode('name')
123+
->isRequired()
124+
->validate()
125+
->ifTrue(function ($value) {
126+
return !is_string($value);
127+
})
128+
->thenInvalid('Feature flag name should be a string, got %s')
129+
->end()
130+
->end()
131+
->scalarNode('variant')->end()
132+
->end()
133+
->end()
134+
->treatNullLike([])
135+
->defaultValue([])
136+
->end()
137+
->scalarNode('max_breadcrumbs')
138+
->defaultNull()
139+
->end();
140+
141+
return $treeBuilder;
142+
}
143+
144+
/**
145+
* Returns the root node of TreeBuilder with backwards compatibility
146+
* for pre-Symfony 4.1.
147+
*
148+
* @param TreeBuilder $treeBuilder a TreeBuilder to extract/create the root node
149+
* from
150+
*
151+
* @return NodeDefinition the root node of the config
152+
*/
153+
protected function getRootNode(TreeBuilder $treeBuilder)
154+
{
155+
if (\method_exists($treeBuilder, 'getRootNode')) {
156+
return $treeBuilder->getRootNode();
157+
}
158+
159+
return $treeBuilder->root(self::ROOT_NAME);
160+
}
161+
}

0 commit comments

Comments
 (0)