##// END OF EJS Templates
fixed #598 API docs methods had wrong members parameter as returned data
marcink -
r2903:9c778306 beta
parent child Browse files
Show More
@@ -1,876 +1,846 b''
1 .. _api:
1 .. _api:
2
2
3 ===
3 ===
4 API
4 API
5 ===
5 ===
6
6
7
7
8 Starting from RhodeCode version 1.2 a simple API was implemented.
8 Starting from RhodeCode version 1.2 a simple API was implemented.
9 There's a single schema for calling all api methods. API is implemented
9 There's a single schema for calling all api methods. API is implemented
10 with JSON protocol both ways. An url to send API request to RhodeCode is
10 with JSON protocol both ways. An url to send API request to RhodeCode is
11 <your_server>/_admin/api
11 <your_server>/_admin/api
12
12
13 API ACCESS FOR WEB VIEWS
13 API ACCESS FOR WEB VIEWS
14 ++++++++++++++++++++++++
14 ++++++++++++++++++++++++
15
15
16 API access can also be turned on for each web view in RhodeCode that is
16 API access can also be turned on for each web view in RhodeCode that is
17 decorated with `@LoginRequired` decorator. To enable API access simple change
17 decorated with `@LoginRequired` decorator. To enable API access simple change
18 the standard login decorator to `@LoginRequired(api_access=True)`.
18 the standard login decorator to `@LoginRequired(api_access=True)`.
19 After this change, a rhodecode view can be accessed without login by adding a
19 After this change, a rhodecode view can be accessed without login by adding a
20 GET parameter `?api_key=<api_key>` to url. By default this is only
20 GET parameter `?api_key=<api_key>` to url. By default this is only
21 enabled on RSS/ATOM feed views.
21 enabled on RSS/ATOM feed views.
22
22
23
23
24 API ACCESS
24 API ACCESS
25 ++++++++++
25 ++++++++++
26
26
27 All clients are required to send JSON-RPC spec JSON data::
27 All clients are required to send JSON-RPC spec JSON data::
28
28
29 {
29 {
30 "id:"<id>",
30 "id:"<id>",
31 "api_key":"<api_key>",
31 "api_key":"<api_key>",
32 "method":"<method_name>",
32 "method":"<method_name>",
33 "args":{"<arg_key>":"<arg_val>"}
33 "args":{"<arg_key>":"<arg_val>"}
34 }
34 }
35
35
36 Example call for autopulling remotes repos using curl::
36 Example call for autopulling remotes repos using curl::
37 curl https://server.com/_admin/api -X POST -H 'content-type:text/plain' --data-binary '{"id":1,"api_key":"xe7cdb2v278e4evbdf5vs04v832v0efvcbcve4a3","method":"pull","args":{"repo":"CPython"}}'
37 curl https://server.com/_admin/api -X POST -H 'content-type:text/plain' --data-binary '{"id":1,"api_key":"xe7cdb2v278e4evbdf5vs04v832v0efvcbcve4a3","method":"pull","args":{"repo":"CPython"}}'
38
38
39 Simply provide
39 Simply provide
40 - *id* A value of any type, which is used to match the response with the request that it is replying to.
40 - *id* A value of any type, which is used to match the response with the request that it is replying to.
41 - *api_key* for access and permission validation.
41 - *api_key* for access and permission validation.
42 - *method* is name of method to call
42 - *method* is name of method to call
43 - *args* is an key:value list of arguments to pass to method
43 - *args* is an key:value list of arguments to pass to method
44
44
45 .. note::
45 .. note::
46
46
47 api_key can be found in your user account page
47 api_key can be found in your user account page
48
48
49
49
50 RhodeCode API will return always a JSON-RPC response::
50 RhodeCode API will return always a JSON-RPC response::
51
51
52 {
52 {
53 "id":<id>, # matching id sent by request
53 "id":<id>, # matching id sent by request
54 "result": "<result>"|null, # JSON formatted result, null if any errors
54 "result": "<result>"|null, # JSON formatted result, null if any errors
55 "error": "null"|<error_message> # JSON formatted error (if any)
55 "error": "null"|<error_message> # JSON formatted error (if any)
56 }
56 }
57
57
58 All responses from API will be `HTTP/1.0 200 OK`, if there's an error while
58 All responses from API will be `HTTP/1.0 200 OK`, if there's an error while
59 calling api *error* key from response will contain failure description
59 calling api *error* key from response will contain failure description
60 and result will be null.
60 and result will be null.
61
61
62
62
63 API CLIENT
63 API CLIENT
64 ++++++++++
64 ++++++++++
65
65
66 From version 1.4 RhodeCode adds a script that allows to easily
66 From version 1.4 RhodeCode adds a script that allows to easily
67 communicate with API. After installing RhodeCode a `rhodecode-api` script
67 communicate with API. After installing RhodeCode a `rhodecode-api` script
68 will be available.
68 will be available.
69
69
70 To get started quickly simply run::
70 To get started quickly simply run::
71
71
72 rhodecode-api _create_config --apikey=<youapikey> --apihost=<rhodecode host>
72 rhodecode-api _create_config --apikey=<youapikey> --apihost=<rhodecode host>
73
73
74 This will create a file named .config in the directory you executed it storing
74 This will create a file named .config in the directory you executed it storing
75 json config file with credentials. You can skip this step and always provide
75 json config file with credentials. You can skip this step and always provide
76 both of the arguments to be able to communicate with server
76 both of the arguments to be able to communicate with server
77
77
78
78
79 after that simply run any api command for example get_repo::
79 after that simply run any api command for example get_repo::
80
80
81 rhodecode-api get_repo
81 rhodecode-api get_repo
82
82
83 calling {"api_key": "<apikey>", "id": 75, "args": {}, "method": "get_repo"} to http://127.0.0.1:5000
83 calling {"api_key": "<apikey>", "id": 75, "args": {}, "method": "get_repo"} to http://127.0.0.1:5000
84 rhodecode said:
84 rhodecode said:
85 {'error': 'Missing non optional `repoid` arg in JSON DATA',
85 {'error': 'Missing non optional `repoid` arg in JSON DATA',
86 'id': 75,
86 'id': 75,
87 'result': None}
87 'result': None}
88
88
89 Ups looks like we forgot to add an argument
89 Ups looks like we forgot to add an argument
90
90
91 Let's try again now giving the repoid as parameters::
91 Let's try again now giving the repoid as parameters::
92
92
93 rhodecode-api get_repo repoid:rhodecode
93 rhodecode-api get_repo repoid:rhodecode
94
94
95 calling {"api_key": "<apikey>", "id": 39, "args": {"repoid": "rhodecode"}, "method": "get_repo"} to http://127.0.0.1:5000
95 calling {"api_key": "<apikey>", "id": 39, "args": {"repoid": "rhodecode"}, "method": "get_repo"} to http://127.0.0.1:5000
96 rhodecode said:
96 rhodecode said:
97 {'error': None,
97 {'error': None,
98 'id': 39,
98 'id': 39,
99 'result': <json data...>}
99 'result': <json data...>}
100
100
101
101
102
102
103 API METHODS
103 API METHODS
104 +++++++++++
104 +++++++++++
105
105
106
106
107 pull
107 pull
108 ----
108 ----
109
109
110 Pulls given repo from remote location. Can be used to automatically keep
110 Pulls given repo from remote location. Can be used to automatically keep
111 remote repos up to date. This command can be executed only using api_key
111 remote repos up to date. This command can be executed only using api_key
112 belonging to user with admin rights
112 belonging to user with admin rights
113
113
114 INPUT::
114 INPUT::
115
115
116 id : <id_for_response>
116 id : <id_for_response>
117 api_key : "<api_key>"
117 api_key : "<api_key>"
118 method : "pull"
118 method : "pull"
119 args : {
119 args : {
120 "repoid" : "<reponame or repo_id>"
120 "repoid" : "<reponame or repo_id>"
121 }
121 }
122
122
123 OUTPUT::
123 OUTPUT::
124
124
125 id : <id_given_in_input>
125 id : <id_given_in_input>
126 result : "Pulled from `<reponame>`"
126 result : "Pulled from `<reponame>`"
127 error : null
127 error : null
128
128
129
129
130 rescan_repos
130 rescan_repos
131 ------------
131 ------------
132
132
133 Dispatch rescan repositories action. If remove_obsolete is set
133 Dispatch rescan repositories action. If remove_obsolete is set
134 RhodeCode will delete repos that are in database but not in the filesystem.
134 RhodeCode will delete repos that are in database but not in the filesystem.
135 This command can be executed only using api_key belonging to user with admin
135 This command can be executed only using api_key belonging to user with admin
136 rights.
136 rights.
137
137
138 INPUT::
138 INPUT::
139
139
140 id : <id_for_response>
140 id : <id_for_response>
141 api_key : "<api_key>"
141 api_key : "<api_key>"
142 method : "rescan_repos"
142 method : "rescan_repos"
143 args : {
143 args : {
144 "remove_obsolete" : "<boolean = Optional(False)>"
144 "remove_obsolete" : "<boolean = Optional(False)>"
145 }
145 }
146
146
147 OUTPUT::
147 OUTPUT::
148
148
149 id : <id_given_in_input>
149 id : <id_given_in_input>
150 result : "{'added': [<list of names of added repos>],
150 result : "{'added': [<list of names of added repos>],
151 'removed': [<list of names of removed repos>]}"
151 'removed': [<list of names of removed repos>]}"
152 error : null
152 error : null
153
153
154
154
155 lock
155 lock
156 ----
156 ----
157
157
158 Set locking state on given repository by given user.
158 Set locking state on given repository by given user.
159 This command can be executed only using api_key belonging to user with admin
159 This command can be executed only using api_key belonging to user with admin
160 rights.
160 rights.
161
161
162 INPUT::
162 INPUT::
163
163
164 id : <id_for_response>
164 id : <id_for_response>
165 api_key : "<api_key>"
165 api_key : "<api_key>"
166 method : "lock"
166 method : "lock"
167 args : {
167 args : {
168 "repoid" : "<reponame or repo_id>"
168 "repoid" : "<reponame or repo_id>"
169 "userid" : "<user_id or username>",
169 "userid" : "<user_id or username>",
170 "locked" : "<bool true|false>"
170 "locked" : "<bool true|false>"
171
171
172 }
172 }
173
173
174 OUTPUT::
174 OUTPUT::
175
175
176 id : <id_given_in_input>
176 id : <id_given_in_input>
177 result : "User `<username>` set lock state for repo `<reponame>` to `true|false`"
177 result : "User `<username>` set lock state for repo `<reponame>` to `true|false`"
178 error : null
178 error : null
179
179
180
180
181 get_user
181 get_user
182 --------
182 --------
183
183
184 Get's an user by username or user_id, Returns empty result if user is not found.
184 Get's an user by username or user_id, Returns empty result if user is not found.
185 This command can be executed only using api_key belonging to user with admin
185 This command can be executed only using api_key belonging to user with admin
186 rights.
186 rights.
187
187
188
188
189 INPUT::
189 INPUT::
190
190
191 id : <id_for_response>
191 id : <id_for_response>
192 api_key : "<api_key>"
192 api_key : "<api_key>"
193 method : "get_user"
193 method : "get_user"
194 args : {
194 args : {
195 "userid" : "<username or user_id>"
195 "userid" : "<username or user_id>"
196 }
196 }
197
197
198 OUTPUT::
198 OUTPUT::
199
199
200 id : <id_given_in_input>
200 id : <id_given_in_input>
201 result: None if user does not exist or
201 result: None if user does not exist or
202 {
202 {
203 "user_id" : "<user_id>",
203 "user_id" : "<user_id>",
204 "username" : "<username>",
204 "username" : "<username>",
205 "firstname": "<firstname>",
205 "firstname": "<firstname>",
206 "lastname" : "<lastname>",
206 "lastname" : "<lastname>",
207 "email" : "<email>",
207 "email" : "<email>",
208 "emails": "<list_of_all_additional_emails>",
208 "emails": "<list_of_all_additional_emails>",
209 "active" : "<bool>",
209 "active" : "<bool>",
210 "admin" :  "<bool>",
210 "admin" :  "<bool>",
211 "ldap_dn" : "<ldap_dn>",
211 "ldap_dn" : "<ldap_dn>",
212 "last_login": "<last_login>",
212 "last_login": "<last_login>",
213 "permissions": {
213 "permissions": {
214 "global": ["hg.create.repository",
214 "global": ["hg.create.repository",
215 "repository.read",
215 "repository.read",
216 "hg.register.manual_activate"],
216 "hg.register.manual_activate"],
217 "repositories": {"repo1": "repository.none"},
217 "repositories": {"repo1": "repository.none"},
218 "repositories_groups": {"Group1": "group.read"}
218 "repositories_groups": {"Group1": "group.read"}
219 },
219 },
220 }
220 }
221
221
222 error: null
222 error: null
223
223
224
224
225 get_users
225 get_users
226 ---------
226 ---------
227
227
228 Lists all existing users. This command can be executed only using api_key
228 Lists all existing users. This command can be executed only using api_key
229 belonging to user with admin rights.
229 belonging to user with admin rights.
230
230
231
231
232 INPUT::
232 INPUT::
233
233
234 id : <id_for_response>
234 id : <id_for_response>
235 api_key : "<api_key>"
235 api_key : "<api_key>"
236 method : "get_users"
236 method : "get_users"
237 args : { }
237 args : { }
238
238
239 OUTPUT::
239 OUTPUT::
240
240
241 id : <id_given_in_input>
241 id : <id_given_in_input>
242 result: [
242 result: [
243 {
243 {
244 "user_id" : "<user_id>",
244 "user_id" : "<user_id>",
245 "username" : "<username>",
245 "username" : "<username>",
246 "firstname": "<firstname>",
246 "firstname": "<firstname>",
247 "lastname" : "<lastname>",
247 "lastname" : "<lastname>",
248 "email" : "<email>",
248 "email" : "<email>",
249 "emails": "<list_of_all_additional_emails>",
249 "emails": "<list_of_all_additional_emails>",
250 "active" : "<bool>",
250 "active" : "<bool>",
251 "admin" :  "<bool>",
251 "admin" :  "<bool>",
252 "ldap_dn" : "<ldap_dn>",
252 "ldap_dn" : "<ldap_dn>",
253 "last_login": "<last_login>",
253 "last_login": "<last_login>",
254 },
254 },
255
255
256 ]
256 ]
257 error: null
257 error: null
258
258
259
259
260 create_user
260 create_user
261 -----------
261 -----------
262
262
263 Creates new user. This command can
263 Creates new user. This command can
264 be executed only using api_key belonging to user with admin rights.
264 be executed only using api_key belonging to user with admin rights.
265
265
266
266
267 INPUT::
267 INPUT::
268
268
269 id : <id_for_response>
269 id : <id_for_response>
270 api_key : "<api_key>"
270 api_key : "<api_key>"
271 method : "create_user"
271 method : "create_user"
272 args : {
272 args : {
273 "username" : "<username>",
273 "username" : "<username>",
274 "email" : "<useremail>",
274 "email" : "<useremail>",
275 "password" : "<password>",
275 "password" : "<password>",
276 "firstname" : "<firstname> = Optional(None)",
276 "firstname" : "<firstname> = Optional(None)",
277 "lastname" : "<lastname> = Optional(None)",
277 "lastname" : "<lastname> = Optional(None)",
278 "active" : "<bool> = Optional(True)",
278 "active" : "<bool> = Optional(True)",
279 "admin" : "<bool> = Optional(False)",
279 "admin" : "<bool> = Optional(False)",
280 "ldap_dn" : "<ldap_dn> = Optional(None)"
280 "ldap_dn" : "<ldap_dn> = Optional(None)"
281 }
281 }
282
282
283 OUTPUT::
283 OUTPUT::
284
284
285 id : <id_given_in_input>
285 id : <id_given_in_input>
286 result: {
286 result: {
287 "msg" : "created new user `<username>`",
287 "msg" : "created new user `<username>`",
288 "user": {
288 "user": {
289 "user_id" : "<user_id>",
289 "user_id" : "<user_id>",
290 "username" : "<username>",
290 "username" : "<username>",
291 "firstname": "<firstname>",
291 "firstname": "<firstname>",
292 "lastname" : "<lastname>",
292 "lastname" : "<lastname>",
293 "email" : "<email>",
293 "email" : "<email>",
294 "emails": "<list_of_all_additional_emails>",
294 "emails": "<list_of_all_additional_emails>",
295 "active" : "<bool>",
295 "active" : "<bool>",
296 "admin" :  "<bool>",
296 "admin" :  "<bool>",
297 "ldap_dn" : "<ldap_dn>",
297 "ldap_dn" : "<ldap_dn>",
298 "last_login": "<last_login>",
298 "last_login": "<last_login>",
299 },
299 },
300 }
300 }
301 error: null
301 error: null
302
302
303
303
304 update_user
304 update_user
305 -----------
305 -----------
306
306
307 updates given user if such user exists. This command can
307 updates given user if such user exists. This command can
308 be executed only using api_key belonging to user with admin rights.
308 be executed only using api_key belonging to user with admin rights.
309
309
310
310
311 INPUT::
311 INPUT::
312
312
313 id : <id_for_response>
313 id : <id_for_response>
314 api_key : "<api_key>"
314 api_key : "<api_key>"
315 method : "update_user"
315 method : "update_user"
316 args : {
316 args : {
317 "userid" : "<user_id or username>",
317 "userid" : "<user_id or username>",
318 "username" : "<username> = Optional",
318 "username" : "<username> = Optional",
319 "email" : "<useremail> = Optional",
319 "email" : "<useremail> = Optional",
320 "password" : "<password> = Optional",
320 "password" : "<password> = Optional",
321 "firstname" : "<firstname> = Optional",
321 "firstname" : "<firstname> = Optional",
322 "lastname" : "<lastname> = Optional",
322 "lastname" : "<lastname> = Optional",
323 "active" : "<bool> = Optional",
323 "active" : "<bool> = Optional",
324 "admin" : "<bool> = Optional",
324 "admin" : "<bool> = Optional",
325 "ldap_dn" : "<ldap_dn> = Optional"
325 "ldap_dn" : "<ldap_dn> = Optional"
326 }
326 }
327
327
328 OUTPUT::
328 OUTPUT::
329
329
330 id : <id_given_in_input>
330 id : <id_given_in_input>
331 result: {
331 result: {
332 "msg" : "updated user ID:<userid> <username>",
332 "msg" : "updated user ID:<userid> <username>",
333 "user": {
333 "user": {
334 "user_id" : "<user_id>",
334 "user_id" : "<user_id>",
335 "username" : "<username>",
335 "username" : "<username>",
336 "firstname": "<firstname>",
336 "firstname": "<firstname>",
337 "lastname" : "<lastname>",
337 "lastname" : "<lastname>",
338 "email" : "<email>",
338 "email" : "<email>",
339 "emails": "<list_of_all_additional_emails>",
339 "emails": "<list_of_all_additional_emails>",
340 "active" : "<bool>",
340 "active" : "<bool>",
341 "admin" :  "<bool>",
341 "admin" :  "<bool>",
342 "ldap_dn" : "<ldap_dn>",
342 "ldap_dn" : "<ldap_dn>",
343 "last_login": "<last_login>",
343 "last_login": "<last_login>",
344 },
344 },
345 }
345 }
346 error: null
346 error: null
347
347
348
348
349 delete_user
349 delete_user
350 -----------
350 -----------
351
351
352
352
353 deletes givenuser if such user exists. This command can
353 deletes givenuser if such user exists. This command can
354 be executed only using api_key belonging to user with admin rights.
354 be executed only using api_key belonging to user with admin rights.
355
355
356
356
357 INPUT::
357 INPUT::
358
358
359 id : <id_for_response>
359 id : <id_for_response>
360 api_key : "<api_key>"
360 api_key : "<api_key>"
361 method : "delete_user"
361 method : "delete_user"
362 args : {
362 args : {
363 "userid" : "<user_id or username>",
363 "userid" : "<user_id or username>",
364 }
364 }
365
365
366 OUTPUT::
366 OUTPUT::
367
367
368 id : <id_given_in_input>
368 id : <id_given_in_input>
369 result: {
369 result: {
370 "msg" : "deleted user ID:<userid> <username>",
370 "msg" : "deleted user ID:<userid> <username>",
371 "user": null
371 "user": null
372 }
372 }
373 error: null
373 error: null
374
374
375
375
376 get_users_group
376 get_users_group
377 ---------------
377 ---------------
378
378
379 Gets an existing users group. This command can be executed only using api_key
379 Gets an existing users group. This command can be executed only using api_key
380 belonging to user with admin rights.
380 belonging to user with admin rights.
381
381
382
382
383 INPUT::
383 INPUT::
384
384
385 id : <id_for_response>
385 id : <id_for_response>
386 api_key : "<api_key>"
386 api_key : "<api_key>"
387 method : "get_users_group"
387 method : "get_users_group"
388 args : {
388 args : {
389 "usersgroupid" : "<users group id or name>"
389 "usersgroupid" : "<users group id or name>"
390 }
390 }
391
391
392 OUTPUT::
392 OUTPUT::
393
393
394 id : <id_given_in_input>
394 id : <id_given_in_input>
395 result : None if group not exist
395 result : None if group not exist
396 {
396 {
397 "users_group_id" : "<id>",
397 "users_group_id" : "<id>",
398 "group_name" : "<groupname>",
398 "group_name" : "<groupname>",
399 "active": "<bool>",
399 "active": "<bool>",
400 "members" : [
400 "members" : [
401 {
401 {
402 "user_id" : "<user_id>",
402 "user_id" : "<user_id>",
403 "username" : "<username>",
403 "username" : "<username>",
404 "firstname": "<firstname>",
404 "firstname": "<firstname>",
405 "lastname" : "<lastname>",
405 "lastname" : "<lastname>",
406 "email" : "<email>",
406 "email" : "<email>",
407 "emails": "<list_of_all_additional_emails>",
407 "emails": "<list_of_all_additional_emails>",
408 "active" : "<bool>",
408 "active" : "<bool>",
409 "admin" :  "<bool>",
409 "admin" :  "<bool>",
410 "ldap_dn" : "<ldap_dn>",
410 "ldap_dn" : "<ldap_dn>",
411 "last_login": "<last_login>",
411 "last_login": "<last_login>",
412 },
412 },
413
413
414 ]
414 ]
415 }
415 }
416 error : null
416 error : null
417
417
418
418
419 get_users_groups
419 get_users_groups
420 ----------------
420 ----------------
421
421
422 Lists all existing users groups. This command can be executed only using
422 Lists all existing users groups. This command can be executed only using
423 api_key belonging to user with admin rights.
423 api_key belonging to user with admin rights.
424
424
425
425
426 INPUT::
426 INPUT::
427
427
428 id : <id_for_response>
428 id : <id_for_response>
429 api_key : "<api_key>"
429 api_key : "<api_key>"
430 method : "get_users_groups"
430 method : "get_users_groups"
431 args : { }
431 args : { }
432
432
433 OUTPUT::
433 OUTPUT::
434
434
435 id : <id_given_in_input>
435 id : <id_given_in_input>
436 result : [
436 result : [
437 {
437 {
438 "users_group_id" : "<id>",
438 "users_group_id" : "<id>",
439 "group_name" : "<groupname>",
439 "group_name" : "<groupname>",
440 "active": "<bool>",
440 "active": "<bool>",
441 "members" : [
442 {
443 "user_id" : "<user_id>",
444 "username" : "<username>",
445 "firstname": "<firstname>",
446 "lastname" : "<lastname>",
447 "email" : "<email>",
448 "emails": "<list_of_all_additional_emails>",
449 "active" : "<bool>",
450 "admin" :  "<bool>",
451 "ldap_dn" : "<ldap_dn>",
452 "last_login": "<last_login>",
453 },
454
455 ]
456 },
441 },
457
442
458 ]
443 ]
459 error : null
444 error : null
460
445
461
446
462 create_users_group
447 create_users_group
463 ------------------
448 ------------------
464
449
465 Creates new users group. This command can be executed only using api_key
450 Creates new users group. This command can be executed only using api_key
466 belonging to user with admin rights
451 belonging to user with admin rights
467
452
468
453
469 INPUT::
454 INPUT::
470
455
471 id : <id_for_response>
456 id : <id_for_response>
472 api_key : "<api_key>"
457 api_key : "<api_key>"
473 method : "create_users_group"
458 method : "create_users_group"
474 args: {
459 args: {
475 "group_name": "<groupname>",
460 "group_name": "<groupname>",
476 "active":"<bool> = Optional(True)"
461 "active":"<bool> = Optional(True)"
477 }
462 }
478
463
479 OUTPUT::
464 OUTPUT::
480
465
481 id : <id_given_in_input>
466 id : <id_given_in_input>
482 result: {
467 result: {
483 "msg": "created new users group `<groupname>`",
468 "msg": "created new users group `<groupname>`",
484 "users_group": {
469 "users_group": {
485 "users_group_id" : "<id>",
470 "users_group_id" : "<id>",
486 "group_name" : "<groupname>",
471 "group_name" : "<groupname>",
487 "active": "<bool>",
472 "active": "<bool>",
488 "members" : [
489 {
490 "user_id" : "<user_id>",
491 "username" : "<username>",
492 "firstname": "<firstname>",
493 "lastname" : "<lastname>",
494 "email" : "<email>",
495 "emails": "<list_of_all_additional_emails>",
496 "active" : "<bool>",
497 "admin" :  "<bool>",
498 "ldap_dn" : "<ldap_dn>",
499 "last_login": "<last_login>",
500 },
501
502 ]
503 },
473 },
504 }
474 }
505 error: null
475 error: null
506
476
507
477
508 add_user_to_users_group
478 add_user_to_users_group
509 -----------------------
479 -----------------------
510
480
511 Adds a user to a users group. If user exists in that group success will be
481 Adds a user to a users group. If user exists in that group success will be
512 `false`. This command can be executed only using api_key
482 `false`. This command can be executed only using api_key
513 belonging to user with admin rights
483 belonging to user with admin rights
514
484
515
485
516 INPUT::
486 INPUT::
517
487
518 id : <id_for_response>
488 id : <id_for_response>
519 api_key : "<api_key>"
489 api_key : "<api_key>"
520 method : "add_user_users_group"
490 method : "add_user_users_group"
521 args: {
491 args: {
522 "usersgroupid" : "<users group id or name>",
492 "usersgroupid" : "<users group id or name>",
523 "userid" : "<user_id or username>",
493 "userid" : "<user_id or username>",
524 }
494 }
525
495
526 OUTPUT::
496 OUTPUT::
527
497
528 id : <id_given_in_input>
498 id : <id_given_in_input>
529 result: {
499 result: {
530 "success": True|False # depends on if member is in group
500 "success": True|False # depends on if member is in group
531 "msg": "added member `<username>` to users group `<groupname>` |
501 "msg": "added member `<username>` to users group `<groupname>` |
532 User is already in that group"
502 User is already in that group"
533 }
503 }
534 error: null
504 error: null
535
505
536
506
537 remove_user_from_users_group
507 remove_user_from_users_group
538 ----------------------------
508 ----------------------------
539
509
540 Removes a user from a users group. If user is not in given group success will
510 Removes a user from a users group. If user is not in given group success will
541 be `false`. This command can be executed only
511 be `false`. This command can be executed only
542 using api_key belonging to user with admin rights
512 using api_key belonging to user with admin rights
543
513
544
514
545 INPUT::
515 INPUT::
546
516
547 id : <id_for_response>
517 id : <id_for_response>
548 api_key : "<api_key>"
518 api_key : "<api_key>"
549 method : "remove_user_from_users_group"
519 method : "remove_user_from_users_group"
550 args: {
520 args: {
551 "usersgroupid" : "<users group id or name>",
521 "usersgroupid" : "<users group id or name>",
552 "userid" : "<user_id or username>",
522 "userid" : "<user_id or username>",
553 }
523 }
554
524
555 OUTPUT::
525 OUTPUT::
556
526
557 id : <id_given_in_input>
527 id : <id_given_in_input>
558 result: {
528 result: {
559 "success": True|False, # depends on if member is in group
529 "success": True|False, # depends on if member is in group
560 "msg": "removed member <username> from users group <groupname> |
530 "msg": "removed member <username> from users group <groupname> |
561 User wasn't in group"
531 User wasn't in group"
562 }
532 }
563 error: null
533 error: null
564
534
565
535
566 get_repo
536 get_repo
567 --------
537 --------
568
538
569 Gets an existing repository by it's name or repository_id. Members will return
539 Gets an existing repository by it's name or repository_id. Members will return
570 either users_group or user associated to that repository. This command can
540 either users_group or user associated to that repository. This command can
571 be executed only using api_key belonging to user with admin rights.
541 be executed only using api_key belonging to user with admin rights.
572
542
573
543
574 INPUT::
544 INPUT::
575
545
576 id : <id_for_response>
546 id : <id_for_response>
577 api_key : "<api_key>"
547 api_key : "<api_key>"
578 method : "get_repo"
548 method : "get_repo"
579 args: {
549 args: {
580 "repoid" : "<reponame or repo_id>"
550 "repoid" : "<reponame or repo_id>"
581 }
551 }
582
552
583 OUTPUT::
553 OUTPUT::
584
554
585 id : <id_given_in_input>
555 id : <id_given_in_input>
586 result: None if repository does not exist or
556 result: None if repository does not exist or
587 {
557 {
588 "repo_id" : "<repo_id>",
558 "repo_id" : "<repo_id>",
589 "repo_name" : "<reponame>"
559 "repo_name" : "<reponame>"
590 "repo_type" : "<repo_type>",
560 "repo_type" : "<repo_type>",
591 "clone_uri" : "<clone_uri>",
561 "clone_uri" : "<clone_uri>",
592 "private": : "<bool>",
562 "private": : "<bool>",
593 "created_on" : "<datetimecreated>",
563 "created_on" : "<datetimecreated>",
594 "description" : "<description>",
564 "description" : "<description>",
595 "landing_rev": "<landing_rev>",
565 "landing_rev": "<landing_rev>",
596 "owner": "<repo_owner>",
566 "owner": "<repo_owner>",
597 "fork_of": "<name_of_fork_parent>",
567 "fork_of": "<name_of_fork_parent>",
598 "members" : [
568 "members" : [
599 {
569 {
600 "type": "user",
570 "type": "user",
601 "user_id" : "<user_id>",
571 "user_id" : "<user_id>",
602 "username" : "<username>",
572 "username" : "<username>",
603 "firstname": "<firstname>",
573 "firstname": "<firstname>",
604 "lastname" : "<lastname>",
574 "lastname" : "<lastname>",
605 "email" : "<email>",
575 "email" : "<email>",
606 "emails": "<list_of_all_additional_emails>",
576 "emails": "<list_of_all_additional_emails>",
607 "active" : "<bool>",
577 "active" : "<bool>",
608 "admin" :  "<bool>",
578 "admin" :  "<bool>",
609 "ldap_dn" : "<ldap_dn>",
579 "ldap_dn" : "<ldap_dn>",
610 "last_login": "<last_login>",
580 "last_login": "<last_login>",
611 "permission" : "repository.(read|write|admin)"
581 "permission" : "repository.(read|write|admin)"
612 },
582 },
613
583
614 {
584 {
615 "type": "users_group",
585 "type": "users_group",
616 "id" : "<usersgroupid>",
586 "id" : "<usersgroupid>",
617 "name" : "<usersgroupname>",
587 "name" : "<usersgroupname>",
618 "active": "<bool>",
588 "active": "<bool>",
619 "permission" : "repository.(read|write|admin)"
589 "permission" : "repository.(read|write|admin)"
620 },
590 },
621
591
622 ]
592 ]
623 }
593 }
624 error: null
594 error: null
625
595
626
596
627 get_repos
597 get_repos
628 ---------
598 ---------
629
599
630 Lists all existing repositories. This command can be executed only using api_key
600 Lists all existing repositories. This command can be executed only using api_key
631 belonging to user with admin rights
601 belonging to user with admin rights
632
602
633
603
634 INPUT::
604 INPUT::
635
605
636 id : <id_for_response>
606 id : <id_for_response>
637 api_key : "<api_key>"
607 api_key : "<api_key>"
638 method : "get_repos"
608 method : "get_repos"
639 args: { }
609 args: { }
640
610
641 OUTPUT::
611 OUTPUT::
642
612
643 id : <id_given_in_input>
613 id : <id_given_in_input>
644 result: [
614 result: [
645 {
615 {
646 "repo_id" : "<repo_id>",
616 "repo_id" : "<repo_id>",
647 "repo_name" : "<reponame>"
617 "repo_name" : "<reponame>"
648 "repo_type" : "<repo_type>",
618 "repo_type" : "<repo_type>",
649 "clone_uri" : "<clone_uri>",
619 "clone_uri" : "<clone_uri>",
650 "private": : "<bool>",
620 "private": : "<bool>",
651 "created_on" : "<datetimecreated>",
621 "created_on" : "<datetimecreated>",
652 "description" : "<description>",
622 "description" : "<description>",
653 "landing_rev": "<landing_rev>",
623 "landing_rev": "<landing_rev>",
654 "owner": "<repo_owner>",
624 "owner": "<repo_owner>",
655 "fork_of": "<name_of_fork_parent>",
625 "fork_of": "<name_of_fork_parent>",
656 },
626 },
657
627
658 ]
628 ]
659 error: null
629 error: null
660
630
661
631
662 get_repo_nodes
632 get_repo_nodes
663 --------------
633 --------------
664
634
665 returns a list of nodes and it's children in a flat list for a given path
635 returns a list of nodes and it's children in a flat list for a given path
666 at given revision. It's possible to specify ret_type to show only `files` or
636 at given revision. It's possible to specify ret_type to show only `files` or
667 `dirs`. This command can be executed only using api_key belonging to user
637 `dirs`. This command can be executed only using api_key belonging to user
668 with admin rights
638 with admin rights
669
639
670
640
671 INPUT::
641 INPUT::
672
642
673 id : <id_for_response>
643 id : <id_for_response>
674 api_key : "<api_key>"
644 api_key : "<api_key>"
675 method : "get_repo_nodes"
645 method : "get_repo_nodes"
676 args: {
646 args: {
677 "repoid" : "<reponame or repo_id>"
647 "repoid" : "<reponame or repo_id>"
678 "revision" : "<revision>",
648 "revision" : "<revision>",
679 "root_path" : "<root_path>",
649 "root_path" : "<root_path>",
680 "ret_type" : "<ret_type> = Optional('all')"
650 "ret_type" : "<ret_type> = Optional('all')"
681 }
651 }
682
652
683 OUTPUT::
653 OUTPUT::
684
654
685 id : <id_given_in_input>
655 id : <id_given_in_input>
686 result: [
656 result: [
687 {
657 {
688 "name" : "<name>"
658 "name" : "<name>"
689 "type" : "<type>",
659 "type" : "<type>",
690 },
660 },
691
661
692 ]
662 ]
693 error: null
663 error: null
694
664
695
665
696 create_repo
666 create_repo
697 -----------
667 -----------
698
668
699 Creates a repository. This command can be executed only using api_key
669 Creates a repository. This command can be executed only using api_key
700 belonging to user with admin rights.
670 belonging to user with admin rights.
701 If repository name contains "/", all needed repository groups will be created.
671 If repository name contains "/", all needed repository groups will be created.
702 For example "foo/bar/baz" will create groups "foo", "bar" (with "foo" as parent),
672 For example "foo/bar/baz" will create groups "foo", "bar" (with "foo" as parent),
703 and create "baz" repository with "bar" as group.
673 and create "baz" repository with "bar" as group.
704
674
705
675
706 INPUT::
676 INPUT::
707
677
708 id : <id_for_response>
678 id : <id_for_response>
709 api_key : "<api_key>"
679 api_key : "<api_key>"
710 method : "create_repo"
680 method : "create_repo"
711 args: {
681 args: {
712 "repo_name" : "<reponame>",
682 "repo_name" : "<reponame>",
713 "owner" : "<onwer_name_or_id>",
683 "owner" : "<onwer_name_or_id>",
714 "repo_type" : "<repo_type>",
684 "repo_type" : "<repo_type>",
715 "description" : "<description> = Optional('')",
685 "description" : "<description> = Optional('')",
716 "private" : "<bool> = Optional(False)",
686 "private" : "<bool> = Optional(False)",
717 "clone_uri" : "<clone_uri> = Optional(None)",
687 "clone_uri" : "<clone_uri> = Optional(None)",
718 "landing_rev" : "<landing_rev> = Optional('tip')",
688 "landing_rev" : "<landing_rev> = Optional('tip')",
719 }
689 }
720
690
721 OUTPUT::
691 OUTPUT::
722
692
723 id : <id_given_in_input>
693 id : <id_given_in_input>
724 result: {
694 result: {
725 "msg": "Created new repository `<reponame>`",
695 "msg": "Created new repository `<reponame>`",
726 "repo": {
696 "repo": {
727 "repo_id" : "<repo_id>",
697 "repo_id" : "<repo_id>",
728 "repo_name" : "<reponame>"
698 "repo_name" : "<reponame>"
729 "repo_type" : "<repo_type>",
699 "repo_type" : "<repo_type>",
730 "clone_uri" : "<clone_uri>",
700 "clone_uri" : "<clone_uri>",
731 "private": : "<bool>",
701 "private": : "<bool>",
732 "created_on" : "<datetimecreated>",
702 "created_on" : "<datetimecreated>",
733 "description" : "<description>",
703 "description" : "<description>",
734 "landing_rev": "<landing_rev>",
704 "landing_rev": "<landing_rev>",
735 "owner": "<repo_owner>",
705 "owner": "<repo_owner>",
736 "fork_of": "<name_of_fork_parent>",
706 "fork_of": "<name_of_fork_parent>",
737 },
707 },
738 }
708 }
739 error: null
709 error: null
740
710
741
711
742 delete_repo
712 delete_repo
743 -----------
713 -----------
744
714
745 Deletes a repository. This command can be executed only using api_key
715 Deletes a repository. This command can be executed only using api_key
746 belonging to user with admin rights.
716 belonging to user with admin rights.
747
717
748
718
749 INPUT::
719 INPUT::
750
720
751 id : <id_for_response>
721 id : <id_for_response>
752 api_key : "<api_key>"
722 api_key : "<api_key>"
753 method : "delete_repo"
723 method : "delete_repo"
754 args: {
724 args: {
755 "repoid" : "<reponame or repo_id>"
725 "repoid" : "<reponame or repo_id>"
756 }
726 }
757
727
758 OUTPUT::
728 OUTPUT::
759
729
760 id : <id_given_in_input>
730 id : <id_given_in_input>
761 result: {
731 result: {
762 "msg": "Deleted repository `<reponame>`",
732 "msg": "Deleted repository `<reponame>`",
763 "success": true
733 "success": true
764 }
734 }
765 error: null
735 error: null
766
736
767
737
768 grant_user_permission
738 grant_user_permission
769 ---------------------
739 ---------------------
770
740
771 Grant permission for user on given repository, or update existing one
741 Grant permission for user on given repository, or update existing one
772 if found. This command can be executed only using api_key belonging to user
742 if found. This command can be executed only using api_key belonging to user
773 with admin rights.
743 with admin rights.
774
744
775
745
776 INPUT::
746 INPUT::
777
747
778 id : <id_for_response>
748 id : <id_for_response>
779 api_key : "<api_key>"
749 api_key : "<api_key>"
780 method : "grant_user_permission"
750 method : "grant_user_permission"
781 args: {
751 args: {
782 "repoid" : "<reponame or repo_id>"
752 "repoid" : "<reponame or repo_id>"
783 "userid" : "<username or user_id>"
753 "userid" : "<username or user_id>"
784 "perm" : "(repository.(none|read|write|admin))",
754 "perm" : "(repository.(none|read|write|admin))",
785 }
755 }
786
756
787 OUTPUT::
757 OUTPUT::
788
758
789 id : <id_given_in_input>
759 id : <id_given_in_input>
790 result: {
760 result: {
791 "msg" : "Granted perm: `<perm>` for user: `<username>` in repo: `<reponame>`",
761 "msg" : "Granted perm: `<perm>` for user: `<username>` in repo: `<reponame>`",
792 "success": true
762 "success": true
793 }
763 }
794 error: null
764 error: null
795
765
796
766
797 revoke_user_permission
767 revoke_user_permission
798 ----------------------
768 ----------------------
799
769
800 Revoke permission for user on given repository. This command can be executed
770 Revoke permission for user on given repository. This command can be executed
801 only using api_key belonging to user with admin rights.
771 only using api_key belonging to user with admin rights.
802
772
803
773
804 INPUT::
774 INPUT::
805
775
806 id : <id_for_response>
776 id : <id_for_response>
807 api_key : "<api_key>"
777 api_key : "<api_key>"
808 method : "revoke_user_permission"
778 method : "revoke_user_permission"
809 args: {
779 args: {
810 "repoid" : "<reponame or repo_id>"
780 "repoid" : "<reponame or repo_id>"
811 "userid" : "<username or user_id>"
781 "userid" : "<username or user_id>"
812 }
782 }
813
783
814 OUTPUT::
784 OUTPUT::
815
785
816 id : <id_given_in_input>
786 id : <id_given_in_input>
817 result: {
787 result: {
818 "msg" : "Revoked perm for user: `<username>` in repo: `<reponame>`",
788 "msg" : "Revoked perm for user: `<username>` in repo: `<reponame>`",
819 "success": true
789 "success": true
820 }
790 }
821 error: null
791 error: null
822
792
823
793
824 grant_users_group_permission
794 grant_users_group_permission
825 ----------------------------
795 ----------------------------
826
796
827 Grant permission for users group on given repository, or update
797 Grant permission for users group on given repository, or update
828 existing one if found. This command can be executed only using
798 existing one if found. This command can be executed only using
829 api_key belonging to user with admin rights.
799 api_key belonging to user with admin rights.
830
800
831
801
832 INPUT::
802 INPUT::
833
803
834 id : <id_for_response>
804 id : <id_for_response>
835 api_key : "<api_key>"
805 api_key : "<api_key>"
836 method : "grant_users_group_permission"
806 method : "grant_users_group_permission"
837 args: {
807 args: {
838 "repoid" : "<reponame or repo_id>"
808 "repoid" : "<reponame or repo_id>"
839 "usersgroupid" : "<users group id or name>"
809 "usersgroupid" : "<users group id or name>"
840 "perm" : "(repository.(none|read|write|admin))",
810 "perm" : "(repository.(none|read|write|admin))",
841 }
811 }
842
812
843 OUTPUT::
813 OUTPUT::
844
814
845 id : <id_given_in_input>
815 id : <id_given_in_input>
846 result: {
816 result: {
847 "msg" : "Granted perm: `<perm>` for group: `<usersgroupname>` in repo: `<reponame>`",
817 "msg" : "Granted perm: `<perm>` for group: `<usersgroupname>` in repo: `<reponame>`",
848 "success": true
818 "success": true
849 }
819 }
850 error: null
820 error: null
851
821
852
822
853 revoke_users_group_permission
823 revoke_users_group_permission
854 -----------------------------
824 -----------------------------
855
825
856 Revoke permission for users group on given repository.This command can be
826 Revoke permission for users group on given repository.This command can be
857 executed only using api_key belonging to user with admin rights.
827 executed only using api_key belonging to user with admin rights.
858
828
859 INPUT::
829 INPUT::
860
830
861 id : <id_for_response>
831 id : <id_for_response>
862 api_key : "<api_key>"
832 api_key : "<api_key>"
863 method : "revoke_users_group_permission"
833 method : "revoke_users_group_permission"
864 args: {
834 args: {
865 "repoid" : "<reponame or repo_id>"
835 "repoid" : "<reponame or repo_id>"
866 "usersgroupid" : "<users group id or name>"
836 "usersgroupid" : "<users group id or name>"
867 }
837 }
868
838
869 OUTPUT::
839 OUTPUT::
870
840
871 id : <id_given_in_input>
841 id : <id_given_in_input>
872 result: {
842 result: {
873 "msg" : "Revoked perm for group: `<usersgroupname>` in repo: `<reponame>`",
843 "msg" : "Revoked perm for group: `<usersgroupname>` in repo: `<reponame>`",
874 "success": true
844 "success": true
875 }
845 }
876 error: null No newline at end of file
846 error: null
@@ -1,821 +1,822 b''
1 .. _changelog:
1 .. _changelog:
2
2
3 =========
3 =========
4 Changelog
4 Changelog
5 =========
5 =========
6
6
7 1.4.4 (**2012-XX-XX**)
7 1.4.4 (**2012-XX-XX**)
8 ----------------------
8 ----------------------
9
9
10 :status: in-progress
10 :status: in-progress
11 :branch: beta
11 :branch: beta
12
12
13 news
13 news
14 ++++
14 ++++
15
15
16 - obfuscate db password in logs for engine connection string
16 - obfuscate db password in logs for engine connection string
17 - #574 Show pull request status also in shortlog (if any)
17 - #574 Show pull request status also in shortlog (if any)
18 - remember selected tab in my account page
18 - remember selected tab in my account page
19 - Bumped mercurial version to 2.3.2
19 - Bumped mercurial version to 2.3.2
20
20
21 fixes
21 fixes
22 +++++
22 +++++
23
23
24 - Add git version detection to warn users that Git used in system is to
24 - Add git version detection to warn users that Git used in system is to
25 old. Ref #588 - also show git version in system details in settings page
25 old. Ref #588 - also show git version in system details in settings page
26 - fixed files quick filter links
26 - fixed files quick filter links
27 - #590 Add GET flag that controls the way the diff are generated, for pull
27 - #590 Add GET flag that controls the way the diff are generated, for pull
28 requests we want to use non-bundle based diffs, That are far better for
28 requests we want to use non-bundle based diffs, That are far better for
29 doing code reviews. The /compare url still uses bundle compare for full
29 doing code reviews. The /compare url still uses bundle compare for full
30 comparison including the incoming changesets
30 comparison including the incoming changesets
31 - Fixed #585, checks for status of revision where to strict, and made
31 - Fixed #585, checks for status of revision where to strict, and made
32 opening pull request with those revision impossible due to previously set
32 opening pull request with those revision impossible due to previously set
33 status. Checks now are made also for the repository.
33 status. Checks now are made also for the repository.
34 - fixes #591 git backend was causing encoding errors when handling binary
34 - fixes #591 git backend was causing encoding errors when handling binary
35 files - added a test case for VCS lib tests
35 files - added a test case for VCS lib tests
36 - fixed #597 commits in future get negative age.
36 - fixed #597 commits in future get negative age.
37 - fixed #598 API docs methods had wrong members parameter as returned data
37
38
38 1.4.3 (**2012-09-28**)
39 1.4.3 (**2012-09-28**)
39 ----------------------
40 ----------------------
40
41
41 news
42 news
42 ++++
43 ++++
43
44
44 - #558 Added config file to hooks extra data
45 - #558 Added config file to hooks extra data
45 - bumped mercurial version to 2.3.1
46 - bumped mercurial version to 2.3.1
46 - #518 added possibility of specifying multiple patterns for issues
47 - #518 added possibility of specifying multiple patterns for issues
47 - update codemirror to latest version
48 - update codemirror to latest version
48
49
49 fixes
50 fixes
50 +++++
51 +++++
51
52
52 - fixed #570 explicit users group permissions can overwrite owner permissions
53 - fixed #570 explicit users group permissions can overwrite owner permissions
53 - fixed #578 set proper PATH with current Python for Git
54 - fixed #578 set proper PATH with current Python for Git
54 hooks to execute within same Python as RhodeCode
55 hooks to execute within same Python as RhodeCode
55 - fixed issue with Git bare repos that ends with .git in name
56 - fixed issue with Git bare repos that ends with .git in name
56
57
57 1.4.2 (**2012-09-12**)
58 1.4.2 (**2012-09-12**)
58 ----------------------
59 ----------------------
59
60
60 news
61 news
61 ++++
62 ++++
62
63
63 - added option to menu to quick lock/unlock repository for users that have
64 - added option to menu to quick lock/unlock repository for users that have
64 write access to
65 write access to
65 - Implemented permissions for writing to repo
66 - Implemented permissions for writing to repo
66 groups. Now only write access to group allows to create a repostiory
67 groups. Now only write access to group allows to create a repostiory
67 within that group
68 within that group
68 - #565 Add support for {netloc} and {scheme} to alternative_gravatar_url
69 - #565 Add support for {netloc} and {scheme} to alternative_gravatar_url
69 - updated translation for zh_CN
70 - updated translation for zh_CN
70
71
71 fixes
72 fixes
72 +++++
73 +++++
73
74
74 - fixed visual permissions check on repos groups inside groups
75 - fixed visual permissions check on repos groups inside groups
75 - fixed issues with non-ascii search terms in search, and indexers
76 - fixed issues with non-ascii search terms in search, and indexers
76 - fixed parsing of page number in GET parameters
77 - fixed parsing of page number in GET parameters
77 - fixed issues with generating pull-request overview for repos with
78 - fixed issues with generating pull-request overview for repos with
78 bookmarks and tags, also preview doesn't loose chosen revision from
79 bookmarks and tags, also preview doesn't loose chosen revision from
79 select dropdown
80 select dropdown
80
81
81 1.4.1 (**2012-09-07**)
82 1.4.1 (**2012-09-07**)
82 ----------------------
83 ----------------------
83
84
84 news
85 news
85 ++++
86 ++++
86
87
87 - always put a comment about code-review status change even if user send
88 - always put a comment about code-review status change even if user send
88 empty data
89 empty data
89 - modified_on column saves repository update and it's going to be used
90 - modified_on column saves repository update and it's going to be used
90 later for light version of main page ref #500
91 later for light version of main page ref #500
91 - pull request notifications send much nicer emails with details about pull
92 - pull request notifications send much nicer emails with details about pull
92 request
93 request
93 - #551 show breadcrumbs in summary view for repositories inside a group
94 - #551 show breadcrumbs in summary view for repositories inside a group
94
95
95 fixes
96 fixes
96 +++++
97 +++++
97
98
98 - fixed migrations of permissions that can lead to inconsistency.
99 - fixed migrations of permissions that can lead to inconsistency.
99 Some users sent feedback that after upgrading from older versions issues
100 Some users sent feedback that after upgrading from older versions issues
100 with updating default permissions occurred. RhodeCode detects that now and
101 with updating default permissions occurred. RhodeCode detects that now and
101 resets default user permission to initial state if there is a need for that.
102 resets default user permission to initial state if there is a need for that.
102 Also forces users to set the default value for new forking permission.
103 Also forces users to set the default value for new forking permission.
103 - #535 improved apache wsgi example configuration in docs
104 - #535 improved apache wsgi example configuration in docs
104 - fixes #550 mercurial repositories comparision failed when origin repo had
105 - fixes #550 mercurial repositories comparision failed when origin repo had
105 additional not-common changesets
106 additional not-common changesets
106 - fixed status of code-review in preview windows of pull request
107 - fixed status of code-review in preview windows of pull request
107 - git forks were not initialized at bare repos
108 - git forks were not initialized at bare repos
108 - fixes #555 fixes issues with comparing non-related repositories
109 - fixes #555 fixes issues with comparing non-related repositories
109 - fixes #557 follower counter always counts up
110 - fixes #557 follower counter always counts up
110 - fixed issue #560 require push ssl checkbox wasn't shown when option was
111 - fixed issue #560 require push ssl checkbox wasn't shown when option was
111 enabled
112 enabled
112 - fixed #559
113 - fixed #559
113 - fixed issue #559 fixed bug in routing that mapped repo names with <name>_<num> in name as
114 - fixed issue #559 fixed bug in routing that mapped repo names with <name>_<num> in name as
114 if it was a request to url by repository ID
115 if it was a request to url by repository ID
115
116
116 1.4.0 (**2012-09-03**)
117 1.4.0 (**2012-09-03**)
117 ----------------------
118 ----------------------
118
119
119 news
120 news
120 ++++
121 ++++
121
122
122 - new codereview system
123 - new codereview system
123 - email map, allowing users to have multiple email addresses mapped into
124 - email map, allowing users to have multiple email addresses mapped into
124 their accounts
125 their accounts
125 - improved git-hook system. Now all actions for git are logged into journal
126 - improved git-hook system. Now all actions for git are logged into journal
126 including pushed revisions, user and IP address
127 including pushed revisions, user and IP address
127 - changed setup-app into setup-rhodecode and added default options to it.
128 - changed setup-app into setup-rhodecode and added default options to it.
128 - new git repos are created as bare now by default
129 - new git repos are created as bare now by default
129 - #464 added links to groups in permission box
130 - #464 added links to groups in permission box
130 - #465 mentions autocomplete inside comments boxes
131 - #465 mentions autocomplete inside comments boxes
131 - #469 added --update-only option to whoosh to re-index only given list
132 - #469 added --update-only option to whoosh to re-index only given list
132 of repos in index
133 of repos in index
133 - rhodecode-api CLI client
134 - rhodecode-api CLI client
134 - new git http protocol replaced buggy dulwich implementation.
135 - new git http protocol replaced buggy dulwich implementation.
135 Now based on pygrack & gitweb
136 Now based on pygrack & gitweb
136 - Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
137 - Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
137 reformated based on user suggestions. Additional rss/atom feeds for user
138 reformated based on user suggestions. Additional rss/atom feeds for user
138 journal
139 journal
139 - various i18n improvements
140 - various i18n improvements
140 - #478 permissions overview for admin in user edit view
141 - #478 permissions overview for admin in user edit view
141 - File view now displays small gravatars off all authors of given file
142 - File view now displays small gravatars off all authors of given file
142 - Implemented landing revisions. Each repository will get landing_rev attribute
143 - Implemented landing revisions. Each repository will get landing_rev attribute
143 that defines 'default' revision/branch for generating readme files
144 that defines 'default' revision/branch for generating readme files
144 - Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
145 - Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
145 earliest possible call.
146 earliest possible call.
146 - Import remote svn repositories to mercurial using hgsubversion.
147 - Import remote svn repositories to mercurial using hgsubversion.
147 - Fixed #508 RhodeCode now has a option to explicitly set forking permissions
148 - Fixed #508 RhodeCode now has a option to explicitly set forking permissions
148 - RhodeCode can use alternative server for generating avatar icons
149 - RhodeCode can use alternative server for generating avatar icons
149 - implemented repositories locking. Pull locks, push unlocks. Also can be done
150 - implemented repositories locking. Pull locks, push unlocks. Also can be done
150 via API calls
151 via API calls
151 - #538 form for permissions can handle multiple users at once
152 - #538 form for permissions can handle multiple users at once
152
153
153 fixes
154 fixes
154 +++++
155 +++++
155
156
156 - improved translations
157 - improved translations
157 - fixes issue #455 Creating an archive generates an exception on Windows
158 - fixes issue #455 Creating an archive generates an exception on Windows
158 - fixes #448 Download ZIP archive keeps file in /tmp open and results
159 - fixes #448 Download ZIP archive keeps file in /tmp open and results
159 in out of disk space
160 in out of disk space
160 - fixes issue #454 Search results under Windows include proceeding
161 - fixes issue #454 Search results under Windows include proceeding
161 backslash
162 backslash
162 - fixed issue #450. Rhodecode no longer will crash when bad revision is
163 - fixed issue #450. Rhodecode no longer will crash when bad revision is
163 present in journal data.
164 present in journal data.
164 - fix for issue #417, git execution was broken on windows for certain
165 - fix for issue #417, git execution was broken on windows for certain
165 commands.
166 commands.
166 - fixed #413. Don't disable .git directory for bare repos on deleting
167 - fixed #413. Don't disable .git directory for bare repos on deleting
167 - fixed issue #459. Changed the way of obtaining logger in reindex task.
168 - fixed issue #459. Changed the way of obtaining logger in reindex task.
168 - fixed #453 added ID field in whoosh SCHEMA that solves the issue of
169 - fixed #453 added ID field in whoosh SCHEMA that solves the issue of
169 reindexing modified files
170 reindexing modified files
170 - fixed #481 rhodecode emails are sent without Date header
171 - fixed #481 rhodecode emails are sent without Date header
171 - fixed #458 wrong count when no repos are present
172 - fixed #458 wrong count when no repos are present
172 - fixed issue #492 missing `\ No newline at end of file` test at the end of
173 - fixed issue #492 missing `\ No newline at end of file` test at the end of
173 new chunk in html diff
174 new chunk in html diff
174 - full text search now works also for commit messages
175 - full text search now works also for commit messages
175
176
176 1.3.6 (**2012-05-17**)
177 1.3.6 (**2012-05-17**)
177 ----------------------
178 ----------------------
178
179
179 news
180 news
180 ++++
181 ++++
181
182
182 - chinese traditional translation
183 - chinese traditional translation
183 - changed setup-app into setup-rhodecode and added arguments for auto-setup
184 - changed setup-app into setup-rhodecode and added arguments for auto-setup
184 mode that doesn't need user interaction
185 mode that doesn't need user interaction
185
186
186 fixes
187 fixes
187 +++++
188 +++++
188
189
189 - fixed no scm found warning
190 - fixed no scm found warning
190 - fixed __future__ import error on rcextensions
191 - fixed __future__ import error on rcextensions
191 - made simplejson required lib for speedup on JSON encoding
192 - made simplejson required lib for speedup on JSON encoding
192 - fixes #449 bad regex could get more than revisions from parsing history
193 - fixes #449 bad regex could get more than revisions from parsing history
193 - don't clear DB session when CELERY_EAGER is turned ON
194 - don't clear DB session when CELERY_EAGER is turned ON
194
195
195 1.3.5 (**2012-05-10**)
196 1.3.5 (**2012-05-10**)
196 ----------------------
197 ----------------------
197
198
198 news
199 news
199 ++++
200 ++++
200
201
201 - use ext_json for json module
202 - use ext_json for json module
202 - unified annotation view with file source view
203 - unified annotation view with file source view
203 - notification improvements, better inbox + css
204 - notification improvements, better inbox + css
204 - #419 don't strip passwords for login forms, make rhodecode
205 - #419 don't strip passwords for login forms, make rhodecode
205 more compatible with LDAP servers
206 more compatible with LDAP servers
206 - Added HTTP_X_FORWARDED_FOR as another method of extracting
207 - Added HTTP_X_FORWARDED_FOR as another method of extracting
207 IP for pull/push logs. - moved all to base controller
208 IP for pull/push logs. - moved all to base controller
208 - #415: Adding comment to changeset causes reload.
209 - #415: Adding comment to changeset causes reload.
209 Comments are now added via ajax and doesn't reload the page
210 Comments are now added via ajax and doesn't reload the page
210 - #374 LDAP config is discarded when LDAP can't be activated
211 - #374 LDAP config is discarded when LDAP can't be activated
211 - limited push/pull operations are now logged for git in the journal
212 - limited push/pull operations are now logged for git in the journal
212 - bumped mercurial to 2.2.X series
213 - bumped mercurial to 2.2.X series
213 - added support for displaying submodules in file-browser
214 - added support for displaying submodules in file-browser
214 - #421 added bookmarks in changelog view
215 - #421 added bookmarks in changelog view
215
216
216 fixes
217 fixes
217 +++++
218 +++++
218
219
219 - fixed dev-version marker for stable when served from source codes
220 - fixed dev-version marker for stable when served from source codes
220 - fixed missing permission checks on show forks page
221 - fixed missing permission checks on show forks page
221 - #418 cast to unicode fixes in notification objects
222 - #418 cast to unicode fixes in notification objects
222 - #426 fixed mention extracting regex
223 - #426 fixed mention extracting regex
223 - fixed remote-pulling for git remotes remopositories
224 - fixed remote-pulling for git remotes remopositories
224 - fixed #434: Error when accessing files or changesets of a git repository
225 - fixed #434: Error when accessing files or changesets of a git repository
225 with submodules
226 with submodules
226 - fixed issue with empty APIKEYS for users after registration ref. #438
227 - fixed issue with empty APIKEYS for users after registration ref. #438
227 - fixed issue with getting README files from git repositories
228 - fixed issue with getting README files from git repositories
228
229
229 1.3.4 (**2012-03-28**)
230 1.3.4 (**2012-03-28**)
230 ----------------------
231 ----------------------
231
232
232 news
233 news
233 ++++
234 ++++
234
235
235 - Whoosh logging is now controlled by the .ini files logging setup
236 - Whoosh logging is now controlled by the .ini files logging setup
236 - added clone-url into edit form on /settings page
237 - added clone-url into edit form on /settings page
237 - added help text into repo add/edit forms
238 - added help text into repo add/edit forms
238 - created rcextensions module with additional mappings (ref #322) and
239 - created rcextensions module with additional mappings (ref #322) and
239 post push/pull/create repo hooks callbacks
240 post push/pull/create repo hooks callbacks
240 - implemented #377 Users view for his own permissions on account page
241 - implemented #377 Users view for his own permissions on account page
241 - #399 added inheritance of permissions for users group on repos groups
242 - #399 added inheritance of permissions for users group on repos groups
242 - #401 repository group is automatically pre-selected when adding repos
243 - #401 repository group is automatically pre-selected when adding repos
243 inside a repository group
244 inside a repository group
244 - added alternative HTTP 403 response when client failed to authenticate. Helps
245 - added alternative HTTP 403 response when client failed to authenticate. Helps
245 solving issues with Mercurial and LDAP
246 solving issues with Mercurial and LDAP
246 - #402 removed group prefix from repository name when listing repositories
247 - #402 removed group prefix from repository name when listing repositories
247 inside a group
248 inside a group
248 - added gravatars into permission view and permissions autocomplete
249 - added gravatars into permission view and permissions autocomplete
249 - #347 when running multiple RhodeCode instances, properly invalidates cache
250 - #347 when running multiple RhodeCode instances, properly invalidates cache
250 for all registered servers
251 for all registered servers
251
252
252 fixes
253 fixes
253 +++++
254 +++++
254
255
255 - fixed #390 cache invalidation problems on repos inside group
256 - fixed #390 cache invalidation problems on repos inside group
256 - fixed #385 clone by ID url was loosing proxy prefix in URL
257 - fixed #385 clone by ID url was loosing proxy prefix in URL
257 - fixed some unicode problems with waitress
258 - fixed some unicode problems with waitress
258 - fixed issue with escaping < and > in changeset commits
259 - fixed issue with escaping < and > in changeset commits
259 - fixed error occurring during recursive group creation in API
260 - fixed error occurring during recursive group creation in API
260 create_repo function
261 create_repo function
261 - fixed #393 py2.5 fixes for routes url generator
262 - fixed #393 py2.5 fixes for routes url generator
262 - fixed #397 Private repository groups shows up before login
263 - fixed #397 Private repository groups shows up before login
263 - fixed #396 fixed problems with revoking users in nested groups
264 - fixed #396 fixed problems with revoking users in nested groups
264 - fixed mysql unicode issues + specified InnoDB as default engine with
265 - fixed mysql unicode issues + specified InnoDB as default engine with
265 utf8 charset
266 utf8 charset
266 - #406 trim long branch/tag names in changelog to not break UI
267 - #406 trim long branch/tag names in changelog to not break UI
267
268
268 1.3.3 (**2012-03-02**)
269 1.3.3 (**2012-03-02**)
269 ----------------------
270 ----------------------
270
271
271 news
272 news
272 ++++
273 ++++
273
274
274
275
275 fixes
276 fixes
276 +++++
277 +++++
277
278
278 - fixed some python2.5 compatibility issues
279 - fixed some python2.5 compatibility issues
279 - fixed issues with removed repos was accidentally added as groups, after
280 - fixed issues with removed repos was accidentally added as groups, after
280 full rescan of paths
281 full rescan of paths
281 - fixes #376 Cannot edit user (using container auth)
282 - fixes #376 Cannot edit user (using container auth)
282 - fixes #378 Invalid image urls on changeset screen with proxy-prefix
283 - fixes #378 Invalid image urls on changeset screen with proxy-prefix
283 configuration
284 configuration
284 - fixed initial sorting of repos inside repo group
285 - fixed initial sorting of repos inside repo group
285 - fixes issue when user tried to resubmit same permission into user/user_groups
286 - fixes issue when user tried to resubmit same permission into user/user_groups
286 - bumped beaker version that fixes #375 leap error bug
287 - bumped beaker version that fixes #375 leap error bug
287 - fixed raw_changeset for git. It was generated with hg patch headers
288 - fixed raw_changeset for git. It was generated with hg patch headers
288 - fixed vcs issue with last_changeset for filenodes
289 - fixed vcs issue with last_changeset for filenodes
289 - fixed missing commit after hook delete
290 - fixed missing commit after hook delete
290 - fixed #372 issues with git operation detection that caused a security issue
291 - fixed #372 issues with git operation detection that caused a security issue
291 for git repos
292 for git repos
292
293
293 1.3.2 (**2012-02-28**)
294 1.3.2 (**2012-02-28**)
294 ----------------------
295 ----------------------
295
296
296 news
297 news
297 ++++
298 ++++
298
299
299
300
300 fixes
301 fixes
301 +++++
302 +++++
302
303
303 - fixed git protocol issues with repos-groups
304 - fixed git protocol issues with repos-groups
304 - fixed git remote repos validator that prevented from cloning remote git repos
305 - fixed git remote repos validator that prevented from cloning remote git repos
305 - fixes #370 ending slashes fixes for repo and groups
306 - fixes #370 ending slashes fixes for repo and groups
306 - fixes #368 improved git-protocol detection to handle other clients
307 - fixes #368 improved git-protocol detection to handle other clients
307 - fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
308 - fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
308 Moved To Root
309 Moved To Root
309 - fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
310 - fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
310 - fixed #373 missing cascade drop on user_group_to_perm table
311 - fixed #373 missing cascade drop on user_group_to_perm table
311
312
312 1.3.1 (**2012-02-27**)
313 1.3.1 (**2012-02-27**)
313 ----------------------
314 ----------------------
314
315
315 news
316 news
316 ++++
317 ++++
317
318
318
319
319 fixes
320 fixes
320 +++++
321 +++++
321
322
322 - redirection loop occurs when remember-me wasn't checked during login
323 - redirection loop occurs when remember-me wasn't checked during login
323 - fixes issues with git blob history generation
324 - fixes issues with git blob history generation
324 - don't fetch branch for git in file history dropdown. Causes unneeded slowness
325 - don't fetch branch for git in file history dropdown. Causes unneeded slowness
325
326
326 1.3.0 (**2012-02-26**)
327 1.3.0 (**2012-02-26**)
327 ----------------------
328 ----------------------
328
329
329 news
330 news
330 ++++
331 ++++
331
332
332 - code review, inspired by github code-comments
333 - code review, inspired by github code-comments
333 - #215 rst and markdown README files support
334 - #215 rst and markdown README files support
334 - #252 Container-based and proxy pass-through authentication support
335 - #252 Container-based and proxy pass-through authentication support
335 - #44 branch browser. Filtering of changelog by branches
336 - #44 branch browser. Filtering of changelog by branches
336 - mercurial bookmarks support
337 - mercurial bookmarks support
337 - new hover top menu, optimized to add maximum size for important views
338 - new hover top menu, optimized to add maximum size for important views
338 - configurable clone url template with possibility to specify protocol like
339 - configurable clone url template with possibility to specify protocol like
339 ssh:// or http:// and also manually alter other parts of clone_url.
340 ssh:// or http:// and also manually alter other parts of clone_url.
340 - enabled largefiles extension by default
341 - enabled largefiles extension by default
341 - optimized summary file pages and saved a lot of unused space in them
342 - optimized summary file pages and saved a lot of unused space in them
342 - #239 option to manually mark repository as fork
343 - #239 option to manually mark repository as fork
343 - #320 mapping of commit authors to RhodeCode users
344 - #320 mapping of commit authors to RhodeCode users
344 - #304 hashes are displayed using monospace font
345 - #304 hashes are displayed using monospace font
345 - diff configuration, toggle white lines and context lines
346 - diff configuration, toggle white lines and context lines
346 - #307 configurable diffs, whitespace toggle, increasing context lines
347 - #307 configurable diffs, whitespace toggle, increasing context lines
347 - sorting on branches, tags and bookmarks using YUI datatable
348 - sorting on branches, tags and bookmarks using YUI datatable
348 - improved file filter on files page
349 - improved file filter on files page
349 - implements #330 api method for listing nodes ar particular revision
350 - implements #330 api method for listing nodes ar particular revision
350 - #73 added linking issues in commit messages to chosen issue tracker url
351 - #73 added linking issues in commit messages to chosen issue tracker url
351 based on user defined regular expression
352 based on user defined regular expression
352 - added linking of changesets in commit messages
353 - added linking of changesets in commit messages
353 - new compact changelog with expandable commit messages
354 - new compact changelog with expandable commit messages
354 - firstname and lastname are optional in user creation
355 - firstname and lastname are optional in user creation
355 - #348 added post-create repository hook
356 - #348 added post-create repository hook
356 - #212 global encoding settings is now configurable from .ini files
357 - #212 global encoding settings is now configurable from .ini files
357 - #227 added repository groups permissions
358 - #227 added repository groups permissions
358 - markdown gets codehilite extensions
359 - markdown gets codehilite extensions
359 - new API methods, delete_repositories, grante/revoke permissions for groups
360 - new API methods, delete_repositories, grante/revoke permissions for groups
360 and repos
361 and repos
361
362
362
363
363 fixes
364 fixes
364 +++++
365 +++++
365
366
366 - rewrote dbsession management for atomic operations, and better error handling
367 - rewrote dbsession management for atomic operations, and better error handling
367 - fixed sorting of repo tables
368 - fixed sorting of repo tables
368 - #326 escape of special html entities in diffs
369 - #326 escape of special html entities in diffs
369 - normalized user_name => username in api attributes
370 - normalized user_name => username in api attributes
370 - fixes #298 ldap created users with mixed case emails created conflicts
371 - fixes #298 ldap created users with mixed case emails created conflicts
371 on saving a form
372 on saving a form
372 - fixes issue when owner of a repo couldn't revoke permissions for users
373 - fixes issue when owner of a repo couldn't revoke permissions for users
373 and groups
374 and groups
374 - fixes #271 rare JSON serialization problem with statistics
375 - fixes #271 rare JSON serialization problem with statistics
375 - fixes #337 missing validation check for conflicting names of a group with a
376 - fixes #337 missing validation check for conflicting names of a group with a
376 repositories group
377 repositories group
377 - #340 fixed session problem for mysql and celery tasks
378 - #340 fixed session problem for mysql and celery tasks
378 - fixed #331 RhodeCode mangles repository names if the a repository group
379 - fixed #331 RhodeCode mangles repository names if the a repository group
379 contains the "full path" to the repositories
380 contains the "full path" to the repositories
380 - #355 RhodeCode doesn't store encrypted LDAP passwords
381 - #355 RhodeCode doesn't store encrypted LDAP passwords
381
382
382 1.2.5 (**2012-01-28**)
383 1.2.5 (**2012-01-28**)
383 ----------------------
384 ----------------------
384
385
385 news
386 news
386 ++++
387 ++++
387
388
388 fixes
389 fixes
389 +++++
390 +++++
390
391
391 - #340 Celery complains about MySQL server gone away, added session cleanup
392 - #340 Celery complains about MySQL server gone away, added session cleanup
392 for celery tasks
393 for celery tasks
393 - #341 "scanning for repositories in None" log message during Rescan was missing
394 - #341 "scanning for repositories in None" log message during Rescan was missing
394 a parameter
395 a parameter
395 - fixed creating archives with subrepos. Some hooks were triggered during that
396 - fixed creating archives with subrepos. Some hooks were triggered during that
396 operation leading to crash.
397 operation leading to crash.
397 - fixed missing email in account page.
398 - fixed missing email in account page.
398 - Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
399 - Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
399 forking on windows impossible
400 forking on windows impossible
400
401
401 1.2.4 (**2012-01-19**)
402 1.2.4 (**2012-01-19**)
402 ----------------------
403 ----------------------
403
404
404 news
405 news
405 ++++
406 ++++
406
407
407 - RhodeCode is bundled with mercurial series 2.0.X by default, with
408 - RhodeCode is bundled with mercurial series 2.0.X by default, with
408 full support to largefiles extension. Enabled by default in new installations
409 full support to largefiles extension. Enabled by default in new installations
409 - #329 Ability to Add/Remove Groups to/from a Repository via AP
410 - #329 Ability to Add/Remove Groups to/from a Repository via AP
410 - added requires.txt file with requirements
411 - added requires.txt file with requirements
411
412
412 fixes
413 fixes
413 +++++
414 +++++
414
415
415 - fixes db session issues with celery when emailing admins
416 - fixes db session issues with celery when emailing admins
416 - #331 RhodeCode mangles repository names if the a repository group
417 - #331 RhodeCode mangles repository names if the a repository group
417 contains the "full path" to the repositories
418 contains the "full path" to the repositories
418 - #298 Conflicting e-mail addresses for LDAP and RhodeCode users
419 - #298 Conflicting e-mail addresses for LDAP and RhodeCode users
419 - DB session cleanup after hg protocol operations, fixes issues with
420 - DB session cleanup after hg protocol operations, fixes issues with
420 `mysql has gone away` errors
421 `mysql has gone away` errors
421 - #333 doc fixes for get_repo api function
422 - #333 doc fixes for get_repo api function
422 - #271 rare JSON serialization problem with statistics enabled
423 - #271 rare JSON serialization problem with statistics enabled
423 - #337 Fixes issues with validation of repository name conflicting with
424 - #337 Fixes issues with validation of repository name conflicting with
424 a group name. A proper message is now displayed.
425 a group name. A proper message is now displayed.
425 - #292 made ldap_dn in user edit readonly, to get rid of confusion that field
426 - #292 made ldap_dn in user edit readonly, to get rid of confusion that field
426 doesn't work
427 doesn't work
427 - #316 fixes issues with web description in hgrc files
428 - #316 fixes issues with web description in hgrc files
428
429
429 1.2.3 (**2011-11-02**)
430 1.2.3 (**2011-11-02**)
430 ----------------------
431 ----------------------
431
432
432 news
433 news
433 ++++
434 ++++
434
435
435 - added option to manage repos group for non admin users
436 - added option to manage repos group for non admin users
436 - added following API methods for get_users, create_user, get_users_groups,
437 - added following API methods for get_users, create_user, get_users_groups,
437 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
438 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
438 get_repo, create_repo, add_user_to_repo
439 get_repo, create_repo, add_user_to_repo
439 - implements #237 added password confirmation for my account
440 - implements #237 added password confirmation for my account
440 and admin edit user.
441 and admin edit user.
441 - implements #291 email notification for global events are now sent to all
442 - implements #291 email notification for global events are now sent to all
442 administrator users, and global config email.
443 administrator users, and global config email.
443
444
444 fixes
445 fixes
445 +++++
446 +++++
446
447
447 - added option for passing auth method for smtp mailer
448 - added option for passing auth method for smtp mailer
448 - #276 issue with adding a single user with id>10 to usergroups
449 - #276 issue with adding a single user with id>10 to usergroups
449 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
450 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
450 - #288 fixes managing of repos in a group for non admin user
451 - #288 fixes managing of repos in a group for non admin user
451
452
452 1.2.2 (**2011-10-17**)
453 1.2.2 (**2011-10-17**)
453 ----------------------
454 ----------------------
454
455
455 news
456 news
456 ++++
457 ++++
457
458
458 - #226 repo groups are available by path instead of numerical id
459 - #226 repo groups are available by path instead of numerical id
459
460
460 fixes
461 fixes
461 +++++
462 +++++
462
463
463 - #259 Groups with the same name but with different parent group
464 - #259 Groups with the same name but with different parent group
464 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
465 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
465 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
466 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
466 - #265 ldap save fails sometimes on converting attributes to booleans,
467 - #265 ldap save fails sometimes on converting attributes to booleans,
467 added getter and setter into model that will prevent from this on db model level
468 added getter and setter into model that will prevent from this on db model level
468 - fixed problems with timestamps issues #251 and #213
469 - fixed problems with timestamps issues #251 and #213
469 - fixes #266 RhodeCode allows to create repo with the same name and in
470 - fixes #266 RhodeCode allows to create repo with the same name and in
470 the same parent as group
471 the same parent as group
471 - fixes #245 Rescan of the repositories on Windows
472 - fixes #245 Rescan of the repositories on Windows
472 - fixes #248 cannot edit repos inside a group on windows
473 - fixes #248 cannot edit repos inside a group on windows
473 - fixes #219 forking problems on windows
474 - fixes #219 forking problems on windows
474
475
475 1.2.1 (**2011-10-08**)
476 1.2.1 (**2011-10-08**)
476 ----------------------
477 ----------------------
477
478
478 news
479 news
479 ++++
480 ++++
480
481
481
482
482 fixes
483 fixes
483 +++++
484 +++++
484
485
485 - fixed problems with basic auth and push problems
486 - fixed problems with basic auth and push problems
486 - gui fixes
487 - gui fixes
487 - fixed logger
488 - fixed logger
488
489
489 1.2.0 (**2011-10-07**)
490 1.2.0 (**2011-10-07**)
490 ----------------------
491 ----------------------
491
492
492 news
493 news
493 ++++
494 ++++
494
495
495 - implemented #47 repository groups
496 - implemented #47 repository groups
496 - implemented #89 Can setup google analytics code from settings menu
497 - implemented #89 Can setup google analytics code from settings menu
497 - implemented #91 added nicer looking archive urls with more download options
498 - implemented #91 added nicer looking archive urls with more download options
498 like tags, branches
499 like tags, branches
499 - implemented #44 into file browsing, and added follow branch option
500 - implemented #44 into file browsing, and added follow branch option
500 - implemented #84 downloads can be enabled/disabled for each repository
501 - implemented #84 downloads can be enabled/disabled for each repository
501 - anonymous repository can be cloned without having to pass default:default
502 - anonymous repository can be cloned without having to pass default:default
502 into clone url
503 into clone url
503 - fixed #90 whoosh indexer can index chooses repositories passed in command
504 - fixed #90 whoosh indexer can index chooses repositories passed in command
504 line
505 line
505 - extended journal with day aggregates and paging
506 - extended journal with day aggregates and paging
506 - implemented #107 source code lines highlight ranges
507 - implemented #107 source code lines highlight ranges
507 - implemented #93 customizable changelog on combined revision ranges -
508 - implemented #93 customizable changelog on combined revision ranges -
508 equivalent of githubs compare view
509 equivalent of githubs compare view
509 - implemented #108 extended and more powerful LDAP configuration
510 - implemented #108 extended and more powerful LDAP configuration
510 - implemented #56 users groups
511 - implemented #56 users groups
511 - major code rewrites optimized codes for speed and memory usage
512 - major code rewrites optimized codes for speed and memory usage
512 - raw and diff downloads are now in git format
513 - raw and diff downloads are now in git format
513 - setup command checks for write access to given path
514 - setup command checks for write access to given path
514 - fixed many issues with international characters and unicode. It uses utf8
515 - fixed many issues with international characters and unicode. It uses utf8
515 decode with replace to provide less errors even with non utf8 encoded strings
516 decode with replace to provide less errors even with non utf8 encoded strings
516 - #125 added API KEY access to feeds
517 - #125 added API KEY access to feeds
517 - #109 Repository can be created from external Mercurial link (aka. remote
518 - #109 Repository can be created from external Mercurial link (aka. remote
518 repository, and manually updated (via pull) from admin panel
519 repository, and manually updated (via pull) from admin panel
519 - beta git support - push/pull server + basic view for git repos
520 - beta git support - push/pull server + basic view for git repos
520 - added followers page and forks page
521 - added followers page and forks page
521 - server side file creation (with binary file upload interface)
522 - server side file creation (with binary file upload interface)
522 and edition with commits powered by codemirror
523 and edition with commits powered by codemirror
523 - #111 file browser file finder, quick lookup files on whole file tree
524 - #111 file browser file finder, quick lookup files on whole file tree
524 - added quick login sliding menu into main page
525 - added quick login sliding menu into main page
525 - changelog uses lazy loading of affected files details, in some scenarios
526 - changelog uses lazy loading of affected files details, in some scenarios
526 this can improve speed of changelog page dramatically especially for
527 this can improve speed of changelog page dramatically especially for
527 larger repositories.
528 larger repositories.
528 - implements #214 added support for downloading subrepos in download menu.
529 - implements #214 added support for downloading subrepos in download menu.
529 - Added basic API for direct operations on rhodecode via JSON
530 - Added basic API for direct operations on rhodecode via JSON
530 - Implemented advanced hook management
531 - Implemented advanced hook management
531
532
532 fixes
533 fixes
533 +++++
534 +++++
534
535
535 - fixed file browser bug, when switching into given form revision the url was
536 - fixed file browser bug, when switching into given form revision the url was
536 not changing
537 not changing
537 - fixed propagation to error controller on simplehg and simplegit middlewares
538 - fixed propagation to error controller on simplehg and simplegit middlewares
538 - fixed error when trying to make a download on empty repository
539 - fixed error when trying to make a download on empty repository
539 - fixed problem with '[' chars in commit messages in journal
540 - fixed problem with '[' chars in commit messages in journal
540 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
541 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
541 - journal fork fixes
542 - journal fork fixes
542 - removed issue with space inside renamed repository after deletion
543 - removed issue with space inside renamed repository after deletion
543 - fixed strange issue on formencode imports
544 - fixed strange issue on formencode imports
544 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
545 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
545 - #150 fixes for errors on repositories mapped in db but corrupted in
546 - #150 fixes for errors on repositories mapped in db but corrupted in
546 filesystem
547 filesystem
547 - fixed problem with ascendant characters in realm #181
548 - fixed problem with ascendant characters in realm #181
548 - fixed problem with sqlite file based database connection pool
549 - fixed problem with sqlite file based database connection pool
549 - whoosh indexer and code stats share the same dynamic extensions map
550 - whoosh indexer and code stats share the same dynamic extensions map
550 - fixes #188 - relationship delete of repo_to_perm entry on user removal
551 - fixes #188 - relationship delete of repo_to_perm entry on user removal
551 - fixes issue #189 Trending source files shows "show more" when no more exist
552 - fixes issue #189 Trending source files shows "show more" when no more exist
552 - fixes issue #197 Relative paths for pidlocks
553 - fixes issue #197 Relative paths for pidlocks
553 - fixes issue #198 password will require only 3 chars now for login form
554 - fixes issue #198 password will require only 3 chars now for login form
554 - fixes issue #199 wrong redirection for non admin users after creating a repository
555 - fixes issue #199 wrong redirection for non admin users after creating a repository
555 - fixes issues #202, bad db constraint made impossible to attach same group
556 - fixes issues #202, bad db constraint made impossible to attach same group
556 more than one time. Affects only mysql/postgres
557 more than one time. Affects only mysql/postgres
557 - fixes #218 os.kill patch for windows was missing sig param
558 - fixes #218 os.kill patch for windows was missing sig param
558 - improved rendering of dag (they are not trimmed anymore when number of
559 - improved rendering of dag (they are not trimmed anymore when number of
559 heads exceeds 5)
560 heads exceeds 5)
560
561
561 1.1.8 (**2011-04-12**)
562 1.1.8 (**2011-04-12**)
562 ----------------------
563 ----------------------
563
564
564 news
565 news
565 ++++
566 ++++
566
567
567 - improved windows support
568 - improved windows support
568
569
569 fixes
570 fixes
570 +++++
571 +++++
571
572
572 - fixed #140 freeze of python dateutil library, since new version is python2.x
573 - fixed #140 freeze of python dateutil library, since new version is python2.x
573 incompatible
574 incompatible
574 - setup-app will check for write permission in given path
575 - setup-app will check for write permission in given path
575 - cleaned up license info issue #149
576 - cleaned up license info issue #149
576 - fixes for issues #137,#116 and problems with unicode and accented characters.
577 - fixes for issues #137,#116 and problems with unicode and accented characters.
577 - fixes crashes on gravatar, when passed in email as unicode
578 - fixes crashes on gravatar, when passed in email as unicode
578 - fixed tooltip flickering problems
579 - fixed tooltip flickering problems
579 - fixed came_from redirection on windows
580 - fixed came_from redirection on windows
580 - fixed logging modules, and sql formatters
581 - fixed logging modules, and sql formatters
581 - windows fixes for os.kill issue #133
582 - windows fixes for os.kill issue #133
582 - fixes path splitting for windows issues #148
583 - fixes path splitting for windows issues #148
583 - fixed issue #143 wrong import on migration to 1.1.X
584 - fixed issue #143 wrong import on migration to 1.1.X
584 - fixed problems with displaying binary files, thanks to Thomas Waldmann
585 - fixed problems with displaying binary files, thanks to Thomas Waldmann
585 - removed name from archive files since it's breaking ui for long repo names
586 - removed name from archive files since it's breaking ui for long repo names
586 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
587 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
587 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
588 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
588 Thomas Waldmann
589 Thomas Waldmann
589 - fixed issue #166 summary pager was skipping 10 revisions on second page
590 - fixed issue #166 summary pager was skipping 10 revisions on second page
590
591
591
592
592 1.1.7 (**2011-03-23**)
593 1.1.7 (**2011-03-23**)
593 ----------------------
594 ----------------------
594
595
595 news
596 news
596 ++++
597 ++++
597
598
598 fixes
599 fixes
599 +++++
600 +++++
600
601
601 - fixed (again) #136 installation support for FreeBSD
602 - fixed (again) #136 installation support for FreeBSD
602
603
603
604
604 1.1.6 (**2011-03-21**)
605 1.1.6 (**2011-03-21**)
605 ----------------------
606 ----------------------
606
607
607 news
608 news
608 ++++
609 ++++
609
610
610 fixes
611 fixes
611 +++++
612 +++++
612
613
613 - fixed #136 installation support for FreeBSD
614 - fixed #136 installation support for FreeBSD
614 - RhodeCode will check for python version during installation
615 - RhodeCode will check for python version during installation
615
616
616 1.1.5 (**2011-03-17**)
617 1.1.5 (**2011-03-17**)
617 ----------------------
618 ----------------------
618
619
619 news
620 news
620 ++++
621 ++++
621
622
622 - basic windows support, by exchanging pybcrypt into sha256 for windows only
623 - basic windows support, by exchanging pybcrypt into sha256 for windows only
623 highly inspired by idea of mantis406
624 highly inspired by idea of mantis406
624
625
625 fixes
626 fixes
626 +++++
627 +++++
627
628
628 - fixed sorting by author in main page
629 - fixed sorting by author in main page
629 - fixed crashes with diffs on binary files
630 - fixed crashes with diffs on binary files
630 - fixed #131 problem with boolean values for LDAP
631 - fixed #131 problem with boolean values for LDAP
631 - fixed #122 mysql problems thanks to striker69
632 - fixed #122 mysql problems thanks to striker69
632 - fixed problem with errors on calling raw/raw_files/annotate functions
633 - fixed problem with errors on calling raw/raw_files/annotate functions
633 with unknown revisions
634 with unknown revisions
634 - fixed returned rawfiles attachment names with international character
635 - fixed returned rawfiles attachment names with international character
635 - cleaned out docs, big thanks to Jason Harris
636 - cleaned out docs, big thanks to Jason Harris
636
637
637 1.1.4 (**2011-02-19**)
638 1.1.4 (**2011-02-19**)
638 ----------------------
639 ----------------------
639
640
640 news
641 news
641 ++++
642 ++++
642
643
643 fixes
644 fixes
644 +++++
645 +++++
645
646
646 - fixed formencode import problem on settings page, that caused server crash
647 - fixed formencode import problem on settings page, that caused server crash
647 when that page was accessed as first after server start
648 when that page was accessed as first after server start
648 - journal fixes
649 - journal fixes
649 - fixed option to access repository just by entering http://server/<repo_name>
650 - fixed option to access repository just by entering http://server/<repo_name>
650
651
651 1.1.3 (**2011-02-16**)
652 1.1.3 (**2011-02-16**)
652 ----------------------
653 ----------------------
653
654
654 news
655 news
655 ++++
656 ++++
656
657
657 - implemented #102 allowing the '.' character in username
658 - implemented #102 allowing the '.' character in username
658 - added option to access repository just by entering http://server/<repo_name>
659 - added option to access repository just by entering http://server/<repo_name>
659 - celery task ignores result for better performance
660 - celery task ignores result for better performance
660
661
661 fixes
662 fixes
662 +++++
663 +++++
663
664
664 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
665 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
665 apollo13 and Johan Walles
666 apollo13 and Johan Walles
666 - small fixes in journal
667 - small fixes in journal
667 - fixed problems with getting setting for celery from .ini files
668 - fixed problems with getting setting for celery from .ini files
668 - registration, password reset and login boxes share the same title as main
669 - registration, password reset and login boxes share the same title as main
669 application now
670 application now
670 - fixed #113: to high permissions to fork repository
671 - fixed #113: to high permissions to fork repository
671 - fixed problem with '[' chars in commit messages in journal
672 - fixed problem with '[' chars in commit messages in journal
672 - removed issue with space inside renamed repository after deletion
673 - removed issue with space inside renamed repository after deletion
673 - db transaction fixes when filesystem repository creation failed
674 - db transaction fixes when filesystem repository creation failed
674 - fixed #106 relation issues on databases different than sqlite
675 - fixed #106 relation issues on databases different than sqlite
675 - fixed static files paths links to use of url() method
676 - fixed static files paths links to use of url() method
676
677
677 1.1.2 (**2011-01-12**)
678 1.1.2 (**2011-01-12**)
678 ----------------------
679 ----------------------
679
680
680 news
681 news
681 ++++
682 ++++
682
683
683
684
684 fixes
685 fixes
685 +++++
686 +++++
686
687
687 - fixes #98 protection against float division of percentage stats
688 - fixes #98 protection against float division of percentage stats
688 - fixed graph bug
689 - fixed graph bug
689 - forced webhelpers version since it was making troubles during installation
690 - forced webhelpers version since it was making troubles during installation
690
691
691 1.1.1 (**2011-01-06**)
692 1.1.1 (**2011-01-06**)
692 ----------------------
693 ----------------------
693
694
694 news
695 news
695 ++++
696 ++++
696
697
697 - added force https option into ini files for easier https usage (no need to
698 - added force https option into ini files for easier https usage (no need to
698 set server headers with this options)
699 set server headers with this options)
699 - small css updates
700 - small css updates
700
701
701 fixes
702 fixes
702 +++++
703 +++++
703
704
704 - fixed #96 redirect loop on files view on repositories without changesets
705 - fixed #96 redirect loop on files view on repositories without changesets
705 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
706 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
706 and server crashed with errors
707 and server crashed with errors
707 - fixed large tooltips problems on main page
708 - fixed large tooltips problems on main page
708 - fixed #92 whoosh indexer is more error proof
709 - fixed #92 whoosh indexer is more error proof
709
710
710 1.1.0 (**2010-12-18**)
711 1.1.0 (**2010-12-18**)
711 ----------------------
712 ----------------------
712
713
713 news
714 news
714 ++++
715 ++++
715
716
716 - rewrite of internals for vcs >=0.1.10
717 - rewrite of internals for vcs >=0.1.10
717 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
718 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
718 with older clients
719 with older clients
719 - anonymous access, authentication via ldap
720 - anonymous access, authentication via ldap
720 - performance upgrade for cached repos list - each repository has its own
721 - performance upgrade for cached repos list - each repository has its own
721 cache that's invalidated when needed.
722 cache that's invalidated when needed.
722 - performance upgrades on repositories with large amount of commits (20K+)
723 - performance upgrades on repositories with large amount of commits (20K+)
723 - main page quick filter for filtering repositories
724 - main page quick filter for filtering repositories
724 - user dashboards with ability to follow chosen repositories actions
725 - user dashboards with ability to follow chosen repositories actions
725 - sends email to admin on new user registration
726 - sends email to admin on new user registration
726 - added cache/statistics reset options into repository settings
727 - added cache/statistics reset options into repository settings
727 - more detailed action logger (based on hooks) with pushed changesets lists
728 - more detailed action logger (based on hooks) with pushed changesets lists
728 and options to disable those hooks from admin panel
729 and options to disable those hooks from admin panel
729 - introduced new enhanced changelog for merges that shows more accurate results
730 - introduced new enhanced changelog for merges that shows more accurate results
730 - new improved and faster code stats (based on pygments lexers mapping tables,
731 - new improved and faster code stats (based on pygments lexers mapping tables,
731 showing up to 10 trending sources for each repository. Additionally stats
732 showing up to 10 trending sources for each repository. Additionally stats
732 can be disabled in repository settings.
733 can be disabled in repository settings.
733 - gui optimizations, fixed application width to 1024px
734 - gui optimizations, fixed application width to 1024px
734 - added cut off (for large files/changesets) limit into config files
735 - added cut off (for large files/changesets) limit into config files
735 - whoosh, celeryd, upgrade moved to paster command
736 - whoosh, celeryd, upgrade moved to paster command
736 - other than sqlite database backends can be used
737 - other than sqlite database backends can be used
737
738
738 fixes
739 fixes
739 +++++
740 +++++
740
741
741 - fixes #61 forked repo was showing only after cache expired
742 - fixes #61 forked repo was showing only after cache expired
742 - fixes #76 no confirmation on user deletes
743 - fixes #76 no confirmation on user deletes
743 - fixes #66 Name field misspelled
744 - fixes #66 Name field misspelled
744 - fixes #72 block user removal when he owns repositories
745 - fixes #72 block user removal when he owns repositories
745 - fixes #69 added password confirmation fields
746 - fixes #69 added password confirmation fields
746 - fixes #87 RhodeCode crashes occasionally on updating repository owner
747 - fixes #87 RhodeCode crashes occasionally on updating repository owner
747 - fixes #82 broken annotations on files with more than 1 blank line at the end
748 - fixes #82 broken annotations on files with more than 1 blank line at the end
748 - a lot of fixes and tweaks for file browser
749 - a lot of fixes and tweaks for file browser
749 - fixed detached session issues
750 - fixed detached session issues
750 - fixed when user had no repos he would see all repos listed in my account
751 - fixed when user had no repos he would see all repos listed in my account
751 - fixed ui() instance bug when global hgrc settings was loaded for server
752 - fixed ui() instance bug when global hgrc settings was loaded for server
752 instance and all hgrc options were merged with our db ui() object
753 instance and all hgrc options were merged with our db ui() object
753 - numerous small bugfixes
754 - numerous small bugfixes
754
755
755 (special thanks for TkSoh for detailed feedback)
756 (special thanks for TkSoh for detailed feedback)
756
757
757
758
758 1.0.2 (**2010-11-12**)
759 1.0.2 (**2010-11-12**)
759 ----------------------
760 ----------------------
760
761
761 news
762 news
762 ++++
763 ++++
763
764
764 - tested under python2.7
765 - tested under python2.7
765 - bumped sqlalchemy and celery versions
766 - bumped sqlalchemy and celery versions
766
767
767 fixes
768 fixes
768 +++++
769 +++++
769
770
770 - fixed #59 missing graph.js
771 - fixed #59 missing graph.js
771 - fixed repo_size crash when repository had broken symlinks
772 - fixed repo_size crash when repository had broken symlinks
772 - fixed python2.5 crashes.
773 - fixed python2.5 crashes.
773
774
774
775
775 1.0.1 (**2010-11-10**)
776 1.0.1 (**2010-11-10**)
776 ----------------------
777 ----------------------
777
778
778 news
779 news
779 ++++
780 ++++
780
781
781 - small css updated
782 - small css updated
782
783
783 fixes
784 fixes
784 +++++
785 +++++
785
786
786 - fixed #53 python2.5 incompatible enumerate calls
787 - fixed #53 python2.5 incompatible enumerate calls
787 - fixed #52 disable mercurial extension for web
788 - fixed #52 disable mercurial extension for web
788 - fixed #51 deleting repositories don't delete it's dependent objects
789 - fixed #51 deleting repositories don't delete it's dependent objects
789
790
790
791
791 1.0.0 (**2010-11-02**)
792 1.0.0 (**2010-11-02**)
792 ----------------------
793 ----------------------
793
794
794 - security bugfix simplehg wasn't checking for permissions on commands
795 - security bugfix simplehg wasn't checking for permissions on commands
795 other than pull or push.
796 other than pull or push.
796 - fixed doubled messages after push or pull in admin journal
797 - fixed doubled messages after push or pull in admin journal
797 - templating and css corrections, fixed repo switcher on chrome, updated titles
798 - templating and css corrections, fixed repo switcher on chrome, updated titles
798 - admin menu accessible from options menu on repository view
799 - admin menu accessible from options menu on repository view
799 - permissions cached queries
800 - permissions cached queries
800
801
801 1.0.0rc4 (**2010-10-12**)
802 1.0.0rc4 (**2010-10-12**)
802 --------------------------
803 --------------------------
803
804
804 - fixed python2.5 missing simplejson imports (thanks to Jens Bäckman)
805 - fixed python2.5 missing simplejson imports (thanks to Jens Bäckman)
805 - removed cache_manager settings from sqlalchemy meta
806 - removed cache_manager settings from sqlalchemy meta
806 - added sqlalchemy cache settings to ini files
807 - added sqlalchemy cache settings to ini files
807 - validated password length and added second try of failure on paster setup-app
808 - validated password length and added second try of failure on paster setup-app
808 - fixed setup database destroy prompt even when there was no db
809 - fixed setup database destroy prompt even when there was no db
809
810
810
811
811 1.0.0rc3 (**2010-10-11**)
812 1.0.0rc3 (**2010-10-11**)
812 -------------------------
813 -------------------------
813
814
814 - fixed i18n during installation.
815 - fixed i18n during installation.
815
816
816 1.0.0rc2 (**2010-10-11**)
817 1.0.0rc2 (**2010-10-11**)
817 -------------------------
818 -------------------------
818
819
819 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
820 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
820 occure. After vcs is fixed it'll be put back again.
821 occure. After vcs is fixed it'll be put back again.
821 - templating/css rewrites, optimized css. No newline at end of file
822 - templating/css rewrites, optimized css.
General Comments 0
You need to be logged in to leave comments. Login now