Perl 6 plugin for App::Nopaste that uses as a "pastebin"
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Full module Oct 12, 2015
t Implement .delete Nov 27, 2017



Pastebin::Gist - Perl 6 interface to


use Pastebin::Gist;
my $p =
    token => '3f2b4ca292960fafc63fb6798f148e3b47ea9fff',

my $paste_url = $p.paste("<foo>bar</foo>");
my $paste_url = $p.paste(
        'file1.p6' => { content => "Paste content 1" },
        'meow.css' => { content => "Paste content 2" },
    :desc("Foo Bar"),

$p.delete: $paste_url; # delete a gist


This module allows to paste to create GitHub Gists as retrieve them.



# Assuming PASTEBIN_GIST_TOKEN env var has the token:
my $p =;

# Set token via an argument:
my $p =
    token => '3f2b4ca292960fafc63fb6798f148e3b47ea9fff',

Creates new Pastebin::Gist object. Accepts the following settings:


token => '3f2b4ca292960fafc63fb6798f148e3b47ea9fff'

To use this module you need to create a GitHub token. Only the gist permission is needed.

You can avoid providing the token argument by setting the PASTEBIN_GIST_TOKEN environmental variable to the value of your token.

Also, you can upload [anonymous gists]( by providing no token.


my $paste_url = $p.paste('Paste content');
my $paste_url = $p.paste('Paste content', filename => 'foo.p6');
my $paste_url = $p.paste(
        'file1.p6' => { content => "Paste content 1" },
        'meow.css' => { content => "Paste content 2" },
    :desc('Optional summary'),

Returns URL to the created paste (e.g. On failure, throws `Pastebin::Gist::X` exception whose `$.message` method has reason for error. First positional argument can either be a string of content to paste or a hashref where keys are filenames and values are hashrefs with values key content set to content of files to paste. Using a hashref allows you to make a gist with multiple files. All other arguments are optional and are as follows:


desc => 'Optional summary',

Optional. Provides the description (summary) of the gist. By default not specified.


public => True,

Optional. Takes True or False values. If set to True, your gist will be visible in search results and recent gists page. Defaults to: False.


filename => "Foo.p6"

Optional. Applies only when the first positional argument to "paste" is a string. Specifies the filename to use for your gist (affects syntax highlighting). Defaults to: nopaste.txt.

Note: GitHub's API docs have this blurb in them:

Don't name your files "gistfile" with a numerical suffix.
This is the format of the automatic naming scheme that
Gist uses internally.

It tells you not to use files gistfile3 or gistfile33.txt. Behaviour when using this types of values for filename is not defined.


my ( $files, $desc )
= $p.fetch('');

my ( $files, $desc ) = $p.fetch('5590bc07b8d5bd8fd98d');
say "Title: $desc";
for $files.keys {
    say "File: $_\nContent:\n$files{$_}";

Returns a two-item list: files in the gist and gist's title. Takes one mandatory argument: a full URL or just the ID number of the gist you want to retrieve. The $files is a hashref, where keys are file names and values are the file's contents. On failure, throws `Pastebin::Gist::X` exception whose `$.message` method has reason for error.


$p.delete: '';
$p.delete: '5590bc07b8d5bd8fd98d';

Returns `True`. Deletes an existing gist referenced by either the ID or the full URL to it. On failure, throws `Pastebin::Gist::X` exception whose `$.message` method has reason for error.


Fork this module on GitHub:


To report bugs or request features, please use


Zoffix Znet


You can use and distribute this module under the same terms as Perl 6 itself. See the LICENSE file included in this distribution for complete details.