en-US/about_PSRule_Badges.help.txt

TOPIC
    about_psrule_badges
 
SHORT DESCRIPTION
    Describes using the badge API with PSRule.
 
LONG DESCRIPTION
    PSRule executes rules to validate an object from input. When processing
    input it may be necessary to perform custom actions before or after rules
    execute. Conventions provide an extensibility point that can be shipped with
    or external to standard rules. The badge API can be used to create badges
    within a convention.
 
    USING THE API
    PSRule provides the `$PSRule` built-in variable that exposes the badge API.
    By using the `$PSRule.Badges.Create` method you can create a standard or
    custom badge.
    The create method provides the following overloads:
 
    // Create a badge for the worst case of an analyzed object.
    IBadge Create(InvokeResult result);
     
    // Create a badge for the worst case of all analyzed objects.
    IBadge Create(IEnumerable<InvokeResult> result);
     
    // Create a custom badge.
    IBadge Create(string title, BadgeType type, string label);
 
    A badge once created can be read as a string or written to disk with the
    following methods:
 
    // Get the badge as SVG text content.
    string ToSvg();
     
    // Write the SVG badge content directly to disk.
    void ToFile(string path);
 
    DEFINING CONVENTIONS
    To define a convention, add a `Export-PSRuleConvention` block within a
    `.Rule.ps1` file. The `.Rule.ps1` must be in an included path or module with
    `-Path` or `-Module`.
    The `Export-PSRuleConvention` block works similar to the `Rule` block. Each
    convention must have a unique name. Currently the badge API support creating
    badges in the `-End` block.
    For example:
 
    # Synopsis: A convention that generates a badge for an aggregate result.
    Export-PSRuleConvention 'Local.Aggregate' -End {
        $PSRule.Badges.Create($PSRule.Output).ToFile('out/badges/aggregate.svg');
    }
 
    # Synopsis: A convention that generates a custom badge.
    Export-PSRuleConvention 'Local.CustomBadge' -End {
        $PSRule.Badges.Create('PSRule', [PSRule.Badges.BadgeType]::Success, 'OK').ToFile('out/badges/custom.svg');
    }
 
    USING CONVENTIONS
    A convention can be included by using the `-Convention` parameter when
    executing a PSRule cmdlet. Alternatively, conventions can be included with
    options. To use a convention specify the name of the convention by name. For
    example:
 
    Invoke-PSRule -Convention 'Local.Aggregate';
 
NOTE
    An online version of this document is available at
    https://microsoft.github.io/PSRule/v2/concepts/PSRule/en-US/about_PSRule_Badges/.
 
SEE ALSO
    -
    Invoke-PSRule
 
KEYWORDS
    - Badges
- Conventions
- PSRule