[![Release](https://img.shields.io/github/release/giterlizzi/perl-CSAF.svg)](https://github.com/giterlizzi/perl-CSAF/releases) [![Actions Status](https://github.com/giterlizzi/perl-CSAF/workflows/linux/badge.svg)](https://github.com/giterlizzi/perl-CSAF/actions) [![License](https://img.shields.io/github/license/giterlizzi/perl-CSAF.svg)](https://github.com/giterlizzi/perl-CSAF) [![Starts](https://img.shields.io/github/stars/giterlizzi/perl-CSAF.svg)](https://github.com/giterlizzi/perl-CSAF) [![Forks](https://img.shields.io/github/forks/giterlizzi/perl-CSAF.svg)](https://github.com/giterlizzi/perl-CSAF) [![Issues](https://img.shields.io/github/issues/giterlizzi/perl-CSAF.svg)](https://github.com/giterlizzi/perl-CSAF/issues) [![Coverage Status](https://coveralls.io/repos/github/giterlizzi/perl-CSAF/badge.svg)](https://coveralls.io/github/giterlizzi/perl-CSAF) # CSAF Perl Toolkit ## Synopsis ```.pl use CSAF; my $csaf = CSAF->new; $csaf->document->title('Base CSAF Document'); $csaf->document->category('csaf_security_advisory'); $csaf->document->publisher( category => 'vendor', name => 'CSAF', namespace => 'https://csaf.io' ); my $tracking = $csaf->document->tracking( id => 'CSAF:2024-001', status => 'final', version => '1.0.0', initial_release_date => 'now', current_release_date => 'now' ); $tracking->revision_history->add( date => 'now', summary => 'First release', number => '1' ); my @errors = $csaf->validate; if (@errors) { say $_ for (@errors); Carp::croak "Validation errors"; } # Save CSAF documents using the $csaf->writer(directory => '/var/www/html/csaf')->write; ``` ## Install Using Makefile.PL: To install `CSAF` distribution, run the following commands. perl Makefile.PL make make test make install Using App::cpanminus: cpanm CSAF ## Documentation - `perldoc CSAF` - https://metacpan.org/release/CSAF ## Copyright - Copyright 2023-2024 © Giuseppe Di Terlizzi