| WWW-FreshMeat-API documentation | Contained in the WWW-FreshMeat-API distribution. |
package WWW::FreshMeat::API::Pub::V1_03 - Metadata for FreshMeat API v1.03
Version 0.01
use package WWW::FreshMeat::API::Pub::V1_03 qw/get_api_info/;
Exports on request get_api_info() which is simply a sub around hashref metadata.
Used by WWW::FreshMeat::API::Pub to build the published API as methods.
On request
Barry Walsh, <draegtun at cpan.org>
Please report any bugs or feature requests to bug-www-freshmeat-api at rt.cpan.org, or through
the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WWW-FreshMeat-API. I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc WWW::FreshMeat::API::Pub::V1_03
You can also look for information at:
http://freshmeat.net/faq/view/49/
http://freshmeat.net/articles/view/1048/
Copyright 2009 Barry Walsh (Draegtun Systems Ltd), all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| WWW-FreshMeat-API documentation | Contained in the WWW-FreshMeat-API distribution. |
package WWW::FreshMeat::API::Pub::V1_03; use base 'Exporter'; our @EXPORT_OK = qw/get_api_info/; our $VERSION = '0.01'; # pulled by testing API.... our $api = { fetch_available_licenses => { desc => 'Fetch all available licenses', params => [], returns => [ 'Academic Free License (AFL)', 'Adaptive Public License (APL)', 'Affero General Public License', 'Aladdin Free Public License (AFPL)', 'Apple Public Source License (APSL)', 'Artistic License', 'Boost Software License', 'BSD License (original)', 'BSD License (revised)', 'Common Development and Distribution License (CDDL)', 'Common Public License', 'Copyback License', 'DFSG approved', 'Eclipse Public License', 'Educational Community License', 'Eiffel Forum License (EFL)', 'Free For Educational Use', 'Free For Home Use', 'Free for non-commercial use', 'Free To Use But Restricted', 'Freely Distributable', 'Freeware', 'GNAT Modified GPL (GMGPL)', 'GNU Free Documentation License (FDL)', 'GNU General Public License (GPL)', 'GNU General Public License v2', 'GNU General Public License v3', 'GNU Lesser General Public License (LGPL)', 'Guile license', 'IBM Public License', 'MIT/X Consortium License', 'MITRE Collaborative Virtual Workspace License (CVW)', 'Mozilla Public License (MPL)', 'Netscape Public License (NPL)', 'Nokia Open Source License (NOKOS)', 'Open Software License', 'OSI Approved', 'Other/Proprietary License', 'Other/Proprietary License with Free Trial', 'Other/Proprietary License with Source', 'Perl License', 'Public Domain', 'Python License', 'Q Public License (QPL)', 'Ricoh Source Code Public License', 'Shareware', 'SUN Binary Code License', 'SUN Community Source License', 'SUN Public License', 'The Apache License', 'The Apache License 2.0', 'The CeCILL License', 'The Clarified Artistic License', 'The Latex Project Public License (LPPL)', 'The Open Content License', 'The PHP License', 'Voxel Public License (VPL)', 'W3C License', 'WTFPL', 'zlib/libpng License', 'Zope Public License (ZPL)', ], }, fetch_available_release_foci => { desc => 'Fetch all available release focus types', params => [], returns => { 'N/A' => '0', 'Major security fixes' => '9', 'Documentation' => '2', 'Minor security fixes' => '8', 'Initial freshmeat announcement' => '1', 'Minor bugfixes' => '6', 'Code cleanup' => '3', 'Major bugfixes' => '7', 'Minor feature enhancements' => '4', 'Major feature enhancements' => '5' }, }, fetch_branch_list => { desc => 'Fetch all branch names and IDs for a given project', params => [ qw/SID project_name/ ], returns => [], # returns list of branches, for eg. 'Default' }, fetch_project_list => { desc => 'Fetch all projects assigned to logged in user', params => [ qw/SID/ ], returns => [ { projectname_full => 1, projectname_short => 1, project_status => 1, project_version => 1 } ], }, fetch_release => { desc => 'Fetch data from a pending release submission', params => [ qw/SID project_name branch_name version/ ], returns => { version => 1, changes => 1, release_focus => 1, hide_from_frontpage => 1 }, }, login => { desc => 'Start an XML-RPC session', params => [ qw/username password/ ], returns => { 'SID' => 1, 'Lifetime' => 1, 'API Version' => 1 }, }, logout => { desc => 'End an XML-RPC session', params => [ qw/SID/ ], returns => { OK => "Logout successful." }, # if logout was successful }, publish_release => { desc => 'Publish a new release', params => [ qw/ SID project_name branch_name version changes release_focus hide_from_frontpage license url_homepage url_tgz url_bz2 url_zip url_changelog url_rpm url_deb url_osx url_bsdport url_purchase url_cvs url_list url_mirror url_demo / ], returns => { OK => "submission successful" }, # if successful! }, withdraw_release => { desc => 'Take back a release submission', params => [ qw/SID project_name branch_name version/ ], returns => { OK => "Withdraw successful." }, # if successfully withdrawn! }, }; # Below is only bit of info I actually used from freshmeat-submit # [ Appendix A: Release focus IDs ] # 0 - N/A # 1 - Initial freshmeat announcement # 2 - Documentation # 3 - Code cleanup # 4 - Minor feature enhancements # 5 - Major feature enhancements # 6 - Minor bugfixes # 7 - Major bugfixes # 8 - Minor security fixes # 9 - Major security fixes # # # [ Appendix B: Error codes ] # 10 - Login incorrect # 20 - Session inconsistency # 21 - Session invalid # 30 - Branch ID incorrect # 40 - Permission to publish release denied # 50 - Version string missing # 51 - Duplicate version string # 60 - Changes field empty # 61 - Changes field too long # 62 - Changes field contains HTML # 70 - No valid email address set # 80 - Release not found # 81 - Project not found # 90 - Release focus missing # 91 - Release focus invalid # 100 - License invalid # 999 - Unknown error sub get_api_info { $api } 1; __END__