[api] add extendkey command to api documentation
[opensuse:build-service.git] / docs / api / api / api.txt
1 = openSUSE API
2
3 Version: 2.0
4
5   Only authenticated users are allowed to access the API. Authentication is done
6   by sending a Basic HTTP Authorisation header. 
7   
8   The /public routes are also accessible as anonymous user. 
9
10 <project>: Project name
11 <package>: Package name
12 <platform>: Platform name
13
14   All names aren't allowed to contain spaces, slashes or colons.
15
16 == Table of Contents
17
18 Contents:
19
20 == About
21
22 Host: api.opensuse.org
23
24 GET /about
25
26   Get information about API.
27
28 XmlResult: about
29
30 == Distribution List
31
32 Host: api.opensuse.org
33
34 GET /distributions
35
36   Get the list of base distributions
37
38 XmlResult: distributions
39
40 == User data
41
42 Host: api.opensuse.org
43
44 <userid>: Id of user
45
46
47 GET /person/<userid>
48
49   Read user data.
50   
51 XmlResult: user
52   
53
54 PUT /person/<userid>
55
56   Write user data.
57   
58 XmlBody: user
59   
60 XmlResult: status
61
62
63 == Sources
64
65 Host: api.opensuse.org
66
67 === Projects
68
69
70 GET /source/
71
72   Read list of projects.
73   
74 XmlResult: projects directory.xsd
75
76 Parameters:
77
78   deleted: show deleted projects instead of existing
79
80
81 GET /source/<project>/_meta
82
83   Read project meta file.
84
85 Parameters:
86
87   rev: revision, mandatory
88
89 XmlResult: project
90
91
92 PUT /source/<project>/_meta
93
94   Write project meta file.
95
96 Parameters:
97
98   comment: comment, optional
99   user: user, optional
100
101 XmlBody: project
102
103 XmlResult: status
104
105
106 DELETE /source/<project>
107
108   Deletes specified project. All packages of this project are deleted as if a
109   DELETE request were issued for each package.
110
111 Parameters:
112   force: If force = 1, the project is deleted even if repositories of other
113          projects include a path to a repository from this project. The path
114          in the other repository is replaced by one pointing to 'deleted/standard',
115          preventing the build and publishing of the other repository.
116   comment: comment, optional
117   user: user, optional
118
119
120 XmlResult: status
121
122
123 GET /source/<project>/_config
124
125   Read project configuration
126
127 Parameters:
128
129   rev: revision, mandatory
130
131 Result: configuration as text/plain
132
133
134 PUT /source/<project>/_config
135
136   Change project configuration
137
138 Parameters:
139
140   comment: comment, optional
141   user: user, optional
142
143 XmlResult: status
144
145
146 GET /source/<project>/_pattern
147
148   Get list of all patterns set up for this project
149
150 XmlResult: directory
151
152
153 GET /source/<project>/_pattern/<patternfile>
154
155   Get pattern
156
157 XmlResult: pattern
158
159
160 PUT /source/<project>/_pattern/<patternfile>
161
162   Write pattern
163
164 XmlBody: pattern
165
166 XmlResult: status
167
168 DELETE /source/<project>/_pattern/<patternfile>
169
170   Remove pattern
171
172 XmlResult: status
173
174
175 GET /source/<project>/_pubkey
176
177   Get project GPG key. If the project has no own key (default), it uses
178   the first available one in the namespace hierarchy, ending at the global
179   buildservice key.
180
181 Result: gpgkey
182
183
184 DELETE /source/<project>/_pubkey
185
186   Removes the current gpg key. Has no effect if no key is set.
187
188 XmlResult: status
189
190
191 POST /source/<project>
192
193   Multiple commands on processing sources in package. Possible commands are
194   createkey: Generate a new gpg key. If the project already has an own gpg key, the old key is discarded.
195   extendkey: Extend the expiration date of gpg keys.
196   undelete: undelete the project and all packages existing when the project got removed.
197   
198
199 === Packages
200
201
202 GET /source/<project>
203
204   Read list of packages.
205   
206 XmlResult: package directory.xsd
207
208 Parameters:
209
210   deleted: show deleted package instead of existing
211
212
213 GET /source/<project>/<package>/_meta
214
215   Read project meta data.
216
217 Parameters:
218
219   rev: revision of new package, optional
220
221 XmlResult: package
222
223
224 PUT /source/<project>/<package>/_meta
225
226   Write project meta data. Writing of the project meta data commits the packages
227   contained in the project to the build backend.
228
229 Parameters:
230
231   comment: comment, optional
232   user: user, optional
233
234 XmlBody: package
235
236 XmlResult: status
237
238
239 DELETE /source/<project>/<package>
240
241   Deletes specified package including all source files
242
243 Parameters:
244
245   comment: comment, optional
246   user: user, optional
247
248 XmlResult: status
249
250
251 GET /source/<project>/<package>/_history
252
253   Get package commit history
254
255 XmlResult: revisionlist
256
257
258 POST /source/<project>/<package>?cmd=diff
259
260   Create a source diff
261
262 Parameters:
263
264   rev: revision of new package, optional
265   oproject: old project, optional
266   opackage: old package, optional
267   orev: old revision, optional
268
269 Result: diff as text/plain
270
271
272 POST /source/<project>/<package>?cmd=branch
273
274   Create a source link from a package of an existing project to a 
275   new subproject of the requesters home project. 
276   The default target is home:<user>:branches:<project>/<package>
277   A possible defined devel project in the package meta data gets ignored.
278
279 Parameters:
280   ignoredevel: bool, optional
281   target_project: target project name, optional
282   target_package: target package name, optional
283
284 XmlResult: status
285
286
287 POST /source/<project>/<package>?cmd=createSpecFileTemplate
288
289   Create template for RPM SPEC file. Returns an error, if the SPEC file already
290   exists.
291
292 XmlResult: status
293
294
295 POST /source/<project>/<package>?cmd=commit
296
297   Commits package changes to buildservice
298
299 Parameters:
300
301   rev: revision, mandatory
302   comment: comment, optional
303   user: user, optional
304
305 XmlResult: status
306
307
308 POST /source/<project>/<package>?deleteuploadrev
309
310   Removes all changes made to the upload revision and reverts to last revision
311
312 Parameters:
313
314   none
315
316 XmlResult: status
317
318 === Source files
319
320 <filename>: File name
321
322
323 GET /source/<project>/<package>
324
325   Get directory listing of all source files in the package
326   
327   
328 Parameters: 
329   
330   rev: package source revision, optional
331   linkrev: linked revision, optional
332   expand: expand links, optional
333   meta: switch to meta files
334   lastworking: auto detect last working link revision, optional
335   view: The "cpio" view will stream all files as cpio, optional
336   extension: filter for file extension, optional
337
338
339 GET /source/<project>/<package>/<filename>
340
341   Read source file.
342
343 Result: Content of file
344
345 Parameters: 
346
347   meta: switch to meta files
348
349
350 PUT /source/<project>/<package>/<filename>
351
352   Write source file.
353
354 Parameters:
355
356   rev: if set to 'upload', multiple files can be uploaded one by one in one commit, before 
357        finishing the commit with cmd=commit (see below), optional
358   comment: comment, optional
359   keeplink: bool, optional
360   meta: switch to meta files
361
362 Body: Content of file
363
364 XmlResult: status
365
366
367
368 DELETE /source/<project>/<package>/<filename>
369
370   Delete source file.
371
372 XmlResult: status
373
374 Parameters: 
375
376   meta: switch to meta files
377
378
379 POST /source/<project>/<package>
380
381   Multiple commands on processing sources in package. Possible commands are
382   diff: for server side diff
383   linkdiff: for server side diff of a linked or branched package
384   commit: commit files in upload revision
385   commitfilelist: commit defined files in upload revision
386   copy: copy package sources from another package
387   branch: branch a package into another one
388   linktobranch: convert a plain source link into a full branch
389   deleteuploadrev: delete all uploaded, but not yet commited files.
390   undelete: undelete the package
391   
392   
393 Parameters: 
394   
395   rev: package source revision, optional
396   linkrev: linked revision, optional
397   orev: origin package source revision as defined in opackage/project, optional
398   olinkrev: origin linked revision, optional
399   oproject: origin project, used as base project
400   opackage: origin package, used as base package
401   requestid: log the requestid in source history, optional (copy and commitfilelist only)
402   expand: expand links, optional
403   keeplink: keep link on source commit, optional
404   repairlink: repair link on source commit, optional
405   dontupdatesource: Do not update origin package, optional (copy only)
406   comment: comment for history, optional
407   meta: switch to meta files
408
409
410 == Requests
411
412
413 GET /request/<id>
414   
415   Get a request
416
417 XmlResult: request
418
419
420 POST /request
421   
422   Create a new request
423
424 XmlResult: request
425
426   Commands on processing requests
427   create: to crfeate a new request
428
429
430 PUT /request/<id>
431   
432   Modify a request. NOTE: Only admins can change all parts of a request.
433
434 XmlResult: request
435
436
437 POST /request/<id>
438   
439   Modify a request state
440
441 XmlResult: request
442
443   Commands on processing requests
444   changestate: Modifies the state of a request
445
446 Parameters: 
447   newstate: to define the new state of a request
448
449
450 DELETE /request/<id>
451   
452   Delete a request
453
454
455
456 == Attribute definition api
457
458
459 GET /attribute/
460   
461   List all attribute namespaces
462
463 XmlResult: directory
464
465
466 GET /attribute/<namespace>/
467   
468   List all attributes under given namespace
469
470 XmlResult: directory
471
472
473 GET /attribute/<namespace>/_meta
474   
475   shows namespace setup
476
477 XmlResult: attribute_namespace_meta
478
479
480 DELETE /attribute/<namespace>/_meta
481   
482   Delete a attribute namespace and all attributes below
483
484 XmlResult: status
485
486
487 PUT /attribute/<namespace>/_meta
488   
489   change attribute namespace meta
490
491 XmlBody: attribute namespace meta data
492
493 XmlResult: status
494
495
496 GET /attribute/<namespace>/<name>/_meta
497   
498   shows attribute setup
499
500 XmlResult: attribute_meta
501
502
503 DELETE /attribute/<namespace>/<name>/_meta
504   
505   Delete a attribute and all its values in projects or packages
506
507 XmlResult: status
508
509
510 PUT /attribute/<namespace>/<name>/_meta
511   
512   change attribute meta
513
514 XmlBody: attribute meta data
515
516 XmlResult: status
517
518
519 == Build Results
520
521 <build>: Build repository
522
523 Host: api.opensuse.org
524
525 GET /build/
526
527   List all repositories
528
529 XmlResult: directory
530
531
532 GET /build/_workerstatus
533
534   Lists all running jobs, waiting jobs, status of the backend services and general statistics.
535
536 XmlResult: worker status and statistics
537
538
539 GET /build/<project>
540
541   List all repositories of the specified project
542
543 XmlResult: directory
544
545
546 GET /build/<project>/<repository>
547
548   List all architectures of the specified project repository
549
550 XmlResult: directory
551
552
553 GET /build/<project>/<repository/<arch>
554
555   List all packages used in this project repository for given architecture.
556
557 XmlResult: directory
558
559 === Binaries
560
561 GET /build/<project>/<repository>/<arch>/<package>
562
563   Get list of binaries built by the sources of the given package
564
565 Result: binarylist
566
567
568 GET /build/<project>/<repository>/<arch>/<package>/<binaryname>
569
570   Get single binary from build results of given package
571
572 Result: binary file
573
574 GET /build/<project>/<repository>/<arch>/<package>/<binaryname>?view=fileinfo
575 GET /build/<project>/<repository>/<arch>/<package>/<binaryname>?view=fileinfo_ext
576
577   Get information about the binary from build results of given package
578
579 Result: fileinfo
580
581
582 GET /build/<project>/<repository>/<arch>/_builddepinfo?package=<package>
583
584   Shows all build dependencies of one or more packages, a change in any of them will
585   trigger a build.
586   
587 Parameters:
588
589   view=pkgnames     show package names instead of binary names
590   view=revpkgnames  show which packages will be triggered if the package is changed
591
592 Result: build dependencies
593
594
595 GET /build/<project>/<repository>/<arch>/_jobhistory?package=<package>&code=succeeded&limit=10
596
597   Get the build log of all finished builds in this repository, including
598   time and trigger reason. Optional filtering for one ore more packages/codes is
599   possible.
600
601 Result: jobhistory
602
603
604 GET /build/<project>/<repository>/<arch>/_repository
605
606   Get list of binaries in given repository (binaries produced by all packages
607   of the project)
608
609 Result: binarylist
610
611
612 POST /build/<project>/<repository>/<arch>/_repository?match=
613
614   Get list of binaries in given repository (binaries produced by all packages
615   of the project), filtered by given match
616
617 Result: binarylist
618
619
620 GET /build/<project>/<repository>/<arch>/_repository/<binaryname>
621
622   Get single binary from the given repository
623
624 Result: binary file
625
626
627 === Status
628
629 GET /build/<project>/_result
630
631   Return build results for the packages, architectures and repositories
632   specified by the parameters. If no parameters are given, all results for the
633   project are returned.
634   
635   The view parameter specifies which sections are included in the results.
636   view=summary includes the summary of the status values. view=status includes
637   detailed status information. view=binarylist includes the list of generated
638   binary files. If no view parameter is given, view=status is assumed. To
639   combine views the parameter can be given multiple times.
640
641 Parameters:
642   
643   package: package name, optional, multiple
644   arch: architecture, optional, multiple
645   repository: name of repository, optional, multiple
646   view: summary | status | binarylist
647   lastbuild: bool, optional
648
649 XmlResult: buildresult
650
651
652 GET /build/<project>/<repository>/<arch>/<package>/_history
653
654   Get build history
655
656 XmlResult: buildhistory
657
658
659 GET /build/<project>/<repository>/<arch>/<package>/_reason
660
661   Detailed reason, why the last build got triggered. This may be
662   caused by a source change, meta change (binary package below changed) or
663   release number sync.
664    A user triggered build will show up as source change.
665
666 XmlResult: build reason
667
668
669 GET /build/<project>/<repository>/<arch>/<package>/_status
670
671   Get build status of the specified project/package/repo/arch combination
672
673 XmlResult: buildstatus
674
675
676 GET /build/<project>/<repository>/<arch>/<package>/_log
677
678   Get build log.
679   
680 Result: Build log as text file.
681
682
683 === Control
684
685 POST /build/<project>?cmd=rebuild
686
687   Triggers package rebuild for the repositories/architectures of the package
688   specified by the parameters. If no parameters are given, all packages of the
689   project are completely rebuilt.
690
691   Possible values for the code parameter are:
692
693   succeeded        - build succeeded
694   failed           - build failed
695   disabled         - build is disabled in package config
696   excluded         - build is excluded in spec file
697   scheduled        - package is ready to be built
698   building         - package is building on a worker
699   broken           - package source is bad (i.e. no specfile)
700   unresolvable     - build needs unavailable binary packages
701
702 Parameters:
703   
704   package: package name, optional, multiple
705   arch: architecture, optional, multiple
706   repository: name of repository, optional, multiple
707   code: build status code, optional, multiple
708
709 XmlResult: status
710
711
712 POST /build/<project>?cmd=abortbuild
713
714   Kill all running builds, marking them as failed
715
716 Parameters:
717
718   see cmd=rebuild
719
720
721 POST /build/<project>?cmd=restartbuild
722
723   Restart all running builds
724
725 Parameters:
726
727   see cmd=rebuild
728
729
730 POST /build/<project>?cmd=wipe
731
732   Delete all binary packages from the packages
733
734 Parameters:
735
736   see cmd=rebuild
737
738
739 === Local Build
740
741 GET /build/<project>/<repository>/<arch>/<package>/_buildinfo
742
743   Get build information for local building
744
745 XmlResult: buildinfo
746
747
748 POST /build/<project>/<repository>/<arch>/<package>/_buildinfo
749
750   Get build info for local building using the POSTed specfile.
751   <package> can be "_repository", if the designated package does not yet exist
752   on the server. Usefull for local build test before committing the initial package.
753
754 Body: specfile
755
756 XmlResult: buildinfo
757
758
759 === Repository Information
760
761 GET /build/<project>/<repository>/<arch>/_all/
762
763   Returns list of binaries contained in the specified repository
764
765 XmlResult: binarylist
766
767
768 GET /build/<project>/<repository>/<arch>/_all/<binaryname>
769
770   Returns binary
771
772 Result: binary file
773
774
775 GET /build/<project>/<repository>/<arch>/_binarylist
776
777   Returns list of binaries contained in the specified repository
778
779 XmlResult: binarylist
780
781
782 GET /build/<project>/<repository>/<arch>/_builddepinfo
783
784   Returns dependency information of packages in the specified repository. One or more
785   packages can be specified with the 'package' parameter. By default dependencies for
786   all packages are returned.
787
788 XmlResult: builddepinfo
789
790
791 GET /build/<project>/<repository>/<arch>/_buildinfo
792
793   ???
794
795
796 GET /build/<project>/<repository>/_buildconfig
797
798   ???
799
800
801 == Search
802
803 GET /search/project
804
805   Searches for project metadata using xpath. A xpath predicate has to be
806   specified using the match parameter. The predicate will be used in this
807   expression: /project[<match>]. Only complete meta files will be returned.
808
809 Parameters:
810
811   match: xpath predicate, mandatory
812
813 XmlResult: collection
814
815
816 GET /search/project/id
817
818   Searches for project metadata analogous to /search/project, only the root
819   element is returned without any children.
820
821 Parameters:
822
823   match: xpath predicate, mandatory
824
825 XmlResult: collection
826
827
828 GET /search/package
829
830   Searches for package metadata using xpath. A xpath predicate has to be
831   specified using the match parameter. The predicate will be used in this
832   expression: /package[<match>]. Only complete meta files will be returned.
833
834 Parameters:
835
836   match: xpath predicate, mandatory
837
838 XmlResult: collection
839
840
841 GET /search/package/id
842
843   Searches for package metadata analogous to /search/package, only the root
844   element is returned without any children.
845
846 Parameters:
847
848   match: xpath predicate, mandatory
849
850 XmlResult: collection
851
852
853 GET /search/published/binary/id
854
855   Search for published binary packages
856
857 Parameters:
858
859   match: xpath predicate, mandatory
860
861 XmlResult: collection
862
863
864 GET /search/published/pattern/id
865
866   Search for published patterns
867
868 Parameters:
869
870   match: xpath predicate, mandatory
871
872 XmlResult: collection
873
874
875 GET /search/request
876
877   Searches for requests using xpath. A xpath predicate has to be
878   specified using the match parameter. The predicate will be used in this
879   expression: /request[<match>]. Only complete meta files will be returned.
880
881 Parameters:
882
883   match: xpath predicate, mandatory
884
885 XmlResult: collection
886
887
888
889 == Published binary package tree
890
891 GET /published
892
893   List of published projects
894
895 XmlResult: directory
896
897
898 GET /published/<project>
899
900   List of repositories of published projects
901
902 XmlResult: directory
903
904
905 GET /published/<project>/<repository>
906
907   List of published repositories for the given project/repo
908
909 XmlResult: directory
910
911
912 GET /published/<project>/<repository>/<arch>
913
914   List of published binaries for the given project/repo/arch
915
916 XmlResult: directory
917
918
919 GET /published/<project>/<repository>/<arch>/<binary>
920
921   Download published binary
922   NOTE: use this only if you absolutely have to as it doesn't use
923         the redirector
924
925 Result: binary
926
927
928 GET /published/<project>/<repository>/<arch>/<binary>?view=ymp
929
930   Generate an ymp pattern that includes the needed repositories to install the
931   given binary
932
933 XmlResult: ymp
934
935
936 == Tags
937  
938 GET /source/<project>/_tags
939         
940   Get tags by project.
941   
942 XmlResult: tags
943
944 GET /source/<project>/<package>/_tags
945
946   Get tags by package.
947   
948 XmlResult: tags
949
950 GET /tag/<tag>/_projects
951
952   Get projects by tag(s). 
953   For selection by more than one tag use TagA::TagB for example.  
954         
955 XmlResult: collection_objects_by_tag
956   
957 GET /tag/<tag>/_packages
958
959   Get packages by tag.
960           
961 XmlResult: collection_objects_by_tag
962
963 GET /tag/<tag>/_all
964
965   Get projects and packages by tag.
966
967 XmlResult: collection_objects_by_tag
968
969 GET /user/<user>/tags/_projects
970
971   Get all projects including tags assigned by the user
972
973 XmlResult: collection_objects_with_tags_by_user
974  
975 GET /user/<user>/tags/_packages
976
977   Get all packages including tags assigned by the user
978
979 XmlResult: collection_objects_with_tags_by_user 
980  
981 GET /user/<user>/tags/_tagcloud
982
983 Parameters: 
984                         distribution=linear | logarithmic | raw
985                         steps=[1..100]
986                         limit=[0..] (default = 100, 0 = no limit)
987
988   Get a tag cloud from the tags used by the user.
989  
990 XmlResult: tagcloud
991
992 GET /tag/_tagcloud
993
994 Parameters: 
995                         distribution=linear | logarithmic | raw
996                         steps=[1..100]
997                         limit=[0..] (default = 100, 0 = no limit)
998                         
999   Get a tag cloud including all tags.
1000         
1001 XmlResult: tagcloud
1002
1003 GET user/<user>/tags/<project>
1004
1005   Get tags by user and project.
1006         
1007 XmlResult: tags
1008
1009 PUT user/<user>/tags/<project>
1010
1011   Write tags by user and project.
1012
1013 XmlBody: tags
1014
1015 XmlResult: status
1016         
1017 GET user/<user>/tags/<project>/<package>
1018
1019   Get tags by user and package.
1020         
1021 XmlResult:      tags
1022
1023 PUT user/<user>/tags/<project>/<package>
1024
1025   Write tags by user and package.
1026
1027 XmlBody: tags
1028
1029 XmlResult: status
1030
1031
1032 == Build Results (Legacy)
1033
1034   This section describes the obsolete API for build results. It will be replaced
1035   by the API available under /build.
1036
1037 === RPMs
1038
1039 Host: api.opensuse.org
1040
1041
1042 GET /rpm/<project>/<platform>/<package>/<arch>/<rpmname>
1043
1044   Get RPM.
1045
1046 Result: RPM
1047
1048
1049 GET /rpm/<project>/<repo>/<arch>/<package>/history
1050
1051   Get build history
1052
1053 XmlResult: buildhistory
1054
1055
1056 GET /rpm/<project>/<repo>/<arch>/<package>/buildinfo
1057
1058   Get build information for local building
1059
1060 XmlResult: buildinfo
1061
1062
1063 POST /rpm/<project>/<repo>/<arch>/<package>/buildinfo
1064
1065   Get build info for local building using the POSTed specfile
1066
1067 Body: specfile
1068
1069 XmlResult: buildinfo
1070
1071
1072 GET /rpm/<project>/<repo>/<arch>/<package>/status
1073
1074   Get build status of the specified project/package/repo/arch combination
1075
1076 XmlResult: buildstatus
1077
1078
1079 === Build Results
1080
1081 Host: api.opensuse.org
1082
1083
1084 GET /result/<project>/<platform>/result
1085
1086   Read project summary result.
1087
1088 XmlResult: projectresult
1089
1090
1091 GET /result/<project>/<platform>/<package>/result
1092
1093   Read package result.
1094
1095 XmlResult: packageresult
1096
1097
1098 GET /result/<project>/<platform>/<package>/<arch>/log
1099
1100   Read build log.
1101   
1102 Result: Build log as text file.
1103
1104
1105
1106 == Statistics
1107
1108 Host: api.opensuse.org
1109 <limit>: limit count of results. optional, defaults to 10.
1110 <group_by>: group results by: project, package, repo or arch.
1111 <type>: can be projects or packages. optional, defaults to packages
1112
1113
1114 GET /statistics/latest_added?limit=<limit>
1115   Get a list of packages and projects (mixed) latest added to the build
1116   service. All entries are sorted by creation time.
1117 XmlResult: latest_added
1118
1119
1120 GET /statistics/added_timestamp/<project>/<package>
1121   Get timestamp when project or package was added to the build service.
1122 XmlResult: added_timestamp
1123
1124
1125 GET /statistics/latest_updated?limit=<limit>
1126   Get a list of packages and project that were last updated. All entries are
1127   sorted by the update timestamp.
1128 XmlResult: latest_updated
1129
1130
1131 GET /statistics/updated_timestamp/<project>/<package>
1132   Get timestamp when project or package was last updated.
1133 XmlResult: updated_timestamp
1134
1135
1136 GET /statistics/activity/<project>/<package>
1137   Get activity in % of project or package.
1138 XmlResult: activity
1139
1140
1141 GET /statistics/most_active?type=<type>&limit=<limit>
1142   Get list of most active packages (type=packages) or projects (type=projects).
1143   Also returns count of updates since package was created when type=packages.
1144   Also returns count of packages that are in this project when type=projects.
1145 XmlResult: most_active
1146
1147
1148 GET /statistics/highest_rated?limit=<limit>
1149   Get list of highest rated projects and packages. Results are sorted by score.
1150   Only items with more than 3 ratings will show up in this list.
1151 XmlResult: highest_rated
1152
1153
1154 GET /statistics/rating/<project>/<package>
1155   Get rating of a specific project or package. Also returns what score the
1156   logged in user gave and how many ratings there are already for the specified
1157   object.
1158 XmlResult: rating
1159
1160
1161 PUT /statistics/rating/<project>/<package>
1162   Rate this project / package.
1163 XmlResult: rating
1164
1165
1166 GET /statistics/download_counter?limit=<limit>
1167   Get download counters for top downloaded files including to which project,
1168   package, repository and architecture they belong.
1169 XmlResult: download_counter
1170
1171
1172 GET /statistics/download_counter?group_by=<group_by>&limit=<limit>
1173   Get summarized download counters for top downloaded projects, packages,
1174   repositories or architectures (by setting group_by parameter to project,
1175   package, repo or arch) including count of files that belong to the respective
1176   object.
1177 XmlResult: download_counter_summary
1178
1179
1180 PUT /statistics/redirect_stats
1181   Send download statistics from the openSUSE download redirector to the build
1182   service api, to update the download_counter database.
1183   User needs to have appropriate permissions.
1184 XmlResult: redirect_stats
1185
1186
1187 GET /statistics/newest_stats
1188   Get the timestamp of the newest stats in build service. This is useful for the
1189   create_stats_xml.rb script. Using this value it can import only those 
1190   statistics that changed from the last import of statistics.
1191   If there are no statistics yet, returns "1970-01-01T01:00:00+01:00"
1192 XmlResult: newest_stats
1193
1194
1195
1196 == Status Messages
1197
1198 Host: api.opensuse.org
1199 <limit>: limit count of messages. optional, defaults to unlimited.
1200
1201
1202 GET /status_message/?limit=<limit>
1203   Get a list of status messages.
1204 XmlResult: status_messages
1205
1206
1207 PUT /status_message/
1208   Send a new status message to the build service. User needs to have
1209   appropriate permissions.
1210 XmlResult: status_message
1211
1212
1213 == Messages (for projects/packages)
1214
1215 Host: api.opensuse.org
1216 <id>: message id
1217 <limit>: limit count of messages. optional, defaults to unlimited.
1218
1219
1220 GET /message/<id>
1221   Get (one) message specified by id.
1222 XmlResult: messages
1223
1224
1225 GET /message/?limit=<limit>
1226   Get a list of messages, independent of project or package.
1227   All entries are ordered by creation time (latest first).
1228 XmlResult: messages
1229
1230
1231 GET /message/?project=<project>
1232   Get a list of messages for this package.
1233   All entries are ordered by creation time (latest first).
1234 XmlResult: messages
1235
1236
1237 GET /message/?project=<project>&package=<package>
1238   Get a list of messages for this package.
1239   All entries are ordered by creation time (latest first).
1240 XmlResult: messages
1241
1242
1243 PUT /message/?project=<project>&package=<package>
1244   Append message to the specified package (or project, if package parameter
1245   is omitted).
1246 XmlResult: message
1247
1248