Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

I frequently find myself trying to replicate what bliako posts. I was able to get the expected result with the github values hard-coded into the script and taking the repo name off of STDIN. I then wanted to shuffle those values out of the source and load them using Config:Tiny, and take the new repo name off of STDIN. Right now I'm failing. Source:

#!/usr/bin/perl use 5.011; use warnings; # original by bliako on 27/05/2019 PM node_id=11100309 ## embellishments don't work yet use Net::GitHub; use Data::Dumper; use Config::Tiny; my $ini_path = qw( /home/bob/Documents/html_template_data/3.values.ini + ); say "ini path is $ini_path"; my $sub_hash = "my_github"; my $Config = Config::Tiny->new; $Config = Config::Tiny->read( $ini_path, 'utf8' ); say Dumper $Config; # -> is optional between brackets my $github_login = $Config->{$sub_hash}{'email'}; my $github_username = $Config->{$sub_hash}{'username'}; my $github_password = $Config->{$sub_hash}{'password'}; say "login is $github_login"; say "password is $github_password"; print "$0 : enter value for reponame: "; my $github_reponame = <STDIN>; chomp($github_reponame); my $git = Net::GitHub->new( login => $github_username, pass => $github_password ); say "username is $github_username"; my $reposinfo = $git->repos->list($github_username); print Dumper($reposinfo); my %reposlist = map { lc $_->{'full_name'} =~ s|^${github_username}/||r => $_ } @$re +posinfo; print "Repos: " . join( ",", keys %reposlist ) . "\n"; if ( !defined $reposlist{ lc $github_reponame } ) { print "$0 : creating new repository '$github_reponame' ...\n"; my $ret = undef; eval { $ret = $git->repos->create( { name => $github_reponame, description => "change this to suit", } ); }; if ($@) { print STDERR "$0 : failed to create repository '$github_reponame' +: $@\n"; exit(1); } } __END__

Output:

$ ./2.github.pl ini path is /home/bob/Documents/html_template_data/3.values.ini $VAR1 = bless( { ... 'my_github' => { 'password' => 'redacted', 'email' => 'tblazer66@gmail.com', 'user' => 'TBlazer66' }, ... }, 'Config::Tiny' ); login is tblazer66@gmail.com password is redacted ./2.github.pl : enter value for reponame: 2.newrepo Undef did not pass type constraint "Str" (in $args->{"login"}) at /usr +/local/share/perl/5.26.1/Net/GitHub.pm line 10 "Str" is a subtype of "Value" "Value" is a subtype of "Defined" Undef did not pass type constraint "Defined" (in $args->{"login"}) "Defined" is defined as: (defined($_))

It seems like the problem is that I'm not getting values passed. I looked at line 10 of Github.pm is in the subroutine that wraps the arguments and sends them further:

$ cd /usr/local/share/perl/5.26.1/Net $ cat GitHub.pm package Net::GitHub; use Net::GitHub::V3; our $VERSION = '0.95'; our $AUTHORITY = 'cpan:FAYLAND'; sub new { my $class = shift; Net::GitHub::V3->new(@_); } 1; __END__

Question 1 is what gives with the values being undefined?

The obvious disadvantage of my method is that Makefile.PL now contains a target (git-push) which the end user should never need.

I spent a lot of time looking at ExtUtils::MakeMaker, and I'm wondering what the word "target" denotes. I had used it for the OS of the plaform you're developing for.

Thanks for your post, and thanks for your comments,


In reply to Re^3: git-push target for Makefile (via ExtUtils::MakeMaker) by Aldebaran
in thread git-push target for Makefile (via ExtUtils::MakeMaker) by bliako

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (3)
As of 2024-04-24 20:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found