1 |
c0e44337
|
Jiri Trefil
|
use [authspade];
|
2 |
|
|
begin transaction create_enviroment
|
3 |
|
|
if not exists (select * from sysobjects where name='configurations' and xtype='U')
|
4 |
|
|
create table configurations (
|
5 |
|
|
id int identity(1, 1),
|
6 |
|
|
configHash nvarchar(255),
|
7 |
|
|
config nvarchar(max) not null,
|
8 |
68124998
|
Jiří Trefil
|
isDefault char(1) not null,
|
9 |
c9d1085d
|
Petr Urban
|
defaultConfigName nvarchar(255),
|
10 |
c0e44337
|
Jiri Trefil
|
PRIMARY KEY(id)
|
11 |
|
|
);
|
12 |
|
|
|
13 |
|
|
--rozkladova tabulka mapujici uzivatele a k nemu asociovane konfigurace
|
14 |
|
|
if not exists (select * from sysobjects where name='user_configurations' and xtype='U')
|
15 |
|
|
create table user_configurations (
|
16 |
|
|
userId int not null,
|
17 |
|
|
configId int not null,
|
18 |
ba18288a
|
Jiri Trefil
|
configurationName nvarchar(255) not null,
|
19 |
c0e44337
|
Jiri Trefil
|
foreign key(userId) references users(id),
|
20 |
|
|
foreign key(configId) references configurations(id),
|
21 |
|
|
primary key(userId,configId)
|
22 |
|
|
)
|
23 |
|
|
|
24 |
7d5de443
|
Jiří Trefil
|
insert into configurations (config, isDefault, defaultConfigName) values (
|
25 |
c0e44337
|
Jiri Trefil
|
'{
|
26 |
|
|
"configuration": [
|
27 |
|
|
{
|
28 |
|
|
"antiPattern": "TooLongSprint",
|
29 |
|
|
"thresholds": [
|
30 |
|
|
{
|
31 |
|
|
"thresholdName": "maxIterationLength",
|
32 |
|
|
"value": "21"
|
33 |
|
|
},
|
34 |
|
|
{
|
35 |
|
|
"thresholdName": "maxNumberOfTooLongIterations",
|
36 |
|
|
"value": "0"
|
37 |
|
|
}
|
38 |
|
|
]
|
39 |
|
|
},
|
40 |
|
|
{
|
41 |
|
|
"antiPattern": "VaryingSprintLength",
|
42 |
|
|
"thresholds": [
|
43 |
|
|
{
|
44 |
|
|
"thresholdName": "maxDaysDifference",
|
45 |
|
|
"value": "7"
|
46 |
|
|
},
|
47 |
|
|
{
|
48 |
|
|
"thresholdName": "maxIterationChanged",
|
49 |
|
|
"value": "1"
|
50 |
|
|
}
|
51 |
|
|
]
|
52 |
|
|
},
|
53 |
|
|
{
|
54 |
|
|
"antiPattern": "BusinessAsUsual",
|
55 |
|
|
"thresholds": [
|
56 |
|
|
{
|
57 |
|
|
"thresholdName": "divisionOfIterationsWithRetrospective",
|
58 |
|
|
"value": "66.66f"
|
59 |
|
|
},
|
60 |
|
|
{
|
61 |
|
|
"thresholdName": "searchSubstringsWithRetrospective",
|
62 |
|
|
"value": "%retr%||%revi%||%week%scrum%"
|
63 |
|
|
}
|
64 |
|
|
]
|
65 |
|
|
},
|
66 |
|
|
{
|
67 |
|
|
"antiPattern": "SpecifyNothing",
|
68 |
|
|
"thresholds": [
|
69 |
|
|
{
|
70 |
|
|
"thresholdName": "minNumberOfWikiPagesWithSpecification",
|
71 |
|
|
"value": "1"
|
72 |
|
|
},
|
73 |
|
|
{
|
74 |
|
|
"thresholdName": "minNumberOfActivitiesWithSpecification",
|
75 |
|
|
"value": "1"
|
76 |
|
|
},
|
77 |
|
|
{
|
78 |
|
|
"thresholdName": "minAvgLengthOfActivityDescription",
|
79 |
|
|
"value": "150"
|
80 |
|
|
},
|
81 |
|
|
{
|
82 |
|
|
"thresholdName": "searchSubstringsWithProjectSpecification",
|
83 |
|
|
"value": "%dsp%||%specifikace%||%specification%||%vize%proj%||%vize%produ%"
|
84 |
|
|
}
|
85 |
|
|
]
|
86 |
|
|
},
|
87 |
|
|
{
|
88 |
|
|
"antiPattern": "RoadToNowhere",
|
89 |
|
|
"thresholds": [
|
90 |
|
|
{
|
91 |
|
|
"thresholdName": "minNumberOfWikiPagesWithProjectPlan",
|
92 |
|
|
"value": "1"
|
93 |
|
|
},
|
94 |
|
|
{
|
95 |
|
|
"thresholdName": "minNumberOfActivitiesWithProjectPlan",
|
96 |
|
|
"value": "1"
|
97 |
|
|
},
|
98 |
|
|
{
|
99 |
|
|
"thresholdName": "searchSubstringsWithProjectPlan",
|
100 |
ba18288a
|
Jiri Trefil
|
"value": "%pl�n projektu%||%project plan%||%plan project%||%projektov� pl�n%"
|
101 |
c0e44337
|
Jiri Trefil
|
}
|
102 |
|
|
]
|
103 |
|
|
},
|
104 |
|
|
{
|
105 |
|
|
"antiPattern": "LongOrNonExistentFeedbackLoops",
|
106 |
|
|
"thresholds": [
|
107 |
|
|
{
|
108 |
|
|
"thresholdName": "divisionOfIterationsWithFeedbackLoop",
|
109 |
|
|
"value": "50.00f"
|
110 |
|
|
},
|
111 |
|
|
{
|
112 |
|
|
"thresholdName": "maxGapBetweenFeedbackLoopRate",
|
113 |
|
|
"value": "2f"
|
114 |
|
|
},
|
115 |
|
|
{
|
116 |
|
|
"thresholdName": "searchSubstringsWithFeedbackLoop",
|
117 |
ba18288a
|
Jiri Trefil
|
"value": "%sch�z%z�kazn�k%||%p�edveden�%z�kazn�k%||%z�kazn%demo%||%sch�z%zadavat%||%inform%sch�z%||%z�kazn%||%zadavatel%"
|
118 |
c0e44337
|
Jiri Trefil
|
}
|
119 |
|
|
]
|
120 |
|
|
},
|
121 |
|
|
{
|
122 |
|
|
"antiPattern": "NinetyNinetyRule",
|
123 |
|
|
"thresholds": [
|
124 |
|
|
{
|
125 |
|
|
"thresholdName": "maxDivisionRange",
|
126 |
|
|
"value": "1.25f"
|
127 |
|
|
},
|
128 |
|
|
{
|
129 |
|
|
"thresholdName": "maxBadDivisionLimit",
|
130 |
|
|
"value": "2"
|
131 |
|
|
}
|
132 |
|
|
]
|
133 |
|
|
},
|
134 |
|
|
{
|
135 |
|
|
"antiPattern": "UnknownPoster",
|
136 |
|
|
"thresholds": [
|
137 |
|
|
{
|
138 |
|
|
"thresholdName": "searchSubstringsInvalidNames",
|
139 |
|
|
"value": "%unknown%||%anonym%"
|
140 |
|
|
}
|
141 |
|
|
]
|
142 |
|
|
},
|
143 |
|
|
{
|
144 |
|
|
"antiPattern": "BystanderApathy",
|
145 |
|
|
"thresholds": [
|
146 |
|
|
{
|
147 |
|
|
"thresholdName": "searchSubstringsInvalidContributors",
|
148 |
|
|
"value": "%dependabot%"
|
149 |
|
|
},
|
150 |
|
|
{
|
151 |
|
|
"thresholdName": "maximumPercentageOfTasksWithoutTeamwork",
|
152 |
|
|
"value": "30f"
|
153 |
|
|
}
|
154 |
|
|
]
|
155 |
|
|
},
|
156 |
|
|
{
|
157 |
|
|
"antiPattern": "YetAnotherProgrammer",
|
158 |
|
|
"thresholds": [
|
159 |
|
|
{
|
160 |
|
|
"thresholdName": "maxNumberOfNewContributors",
|
161 |
|
|
"value": "5"
|
162 |
|
|
},
|
163 |
|
|
{
|
164 |
|
|
"thresholdName": "numberOfFirstMonthsWithoutDetection",
|
165 |
|
|
"value": "2"
|
166 |
|
|
}
|
167 |
|
|
]
|
168 |
|
|
}
|
169 |
|
|
]
|
170 |
|
|
}',
|
171 |
7d5de443
|
Jiří Trefil
|
'Y', 'default configuration'
|
172 |
c0e44337
|
Jiri Trefil
|
|
173 |
|
|
|
174 |
|
|
)
|
175 |
|
|
|
176 |
68124998
|
Jiří Trefil
|
commit
|