{"id":26804835,"url":"https://github.com/throughnothing/panky","last_synced_at":"2025-04-23T05:42:24.898Z","repository":{"id":4572200,"uuid":"5713711","full_name":"throughnothing/Panky","owner":"throughnothing","description":"Panky is a chatting, github, and jenkins-loving web-app for your team","archived":false,"fork":false,"pushed_at":"2014-05-09T19:05:17.000Z","size":664,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T22:28:51.196Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/throughnothing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-09-07T07:15:40.000Z","updated_at":"2025-03-01T16:38:12.000Z","dependencies_parsed_at":"2022-08-06T17:00:46.352Z","dependency_job_id":null,"html_url":"https://github.com/throughnothing/Panky","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/throughnothing%2FPanky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/throughnothing%2FPanky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/throughnothing%2FPanky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/throughnothing%2FPanky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/throughnothing","download_url":"https://codeload.github.com/throughnothing/Panky/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250379792,"owners_count":21420841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-29T22:27:15.926Z","updated_at":"2025-04-23T05:42:24.881Z","avatar_url":"https://github.com/throughnothing.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n\nPanky - Panky is a chatty, github, issue, and-ci helper bot for your team\n\n# VERSION\n\nversion 0.001\n\n# SYNOPSIS\n\n\\[!\\[Build Status\\](https://secure.travis-ci.org/throughnothing/Panky.png?branch=master)\\](http://travis-ci.org/throughnothing/Panky)\n\nPanky is a chatting, github, Jira, jenkins loving\nweb-app/bot/do-it-all/chef(?) for your team.\n\nPanky lurks in your teams chat room (Jabber is currently supported) and provides\nuseful information and functionality __all day long__.\n\n__Note: [Panky](https://metacpan.org/pod/Panky) is still in active development and is not feature complete__\n\nCurrently, Panky will connect to your chat server, update you about what's\ngoing on with your github repos (new pushes, pull request activity, comments,\netc.) and enable you to get info about them on demand.  It can also parse\n`Jira` links, and provide information about (and start) `Jenkins` builds.\n\nPanky can also use the `Github|http://github.com`\n[commit status API](https://github.com/blog/1227-commit-status-api) to show\nthe status of your Continuous Integration builds on Pull Requests.\n\nSome sample usage:\n\n    # Panky sets up github hooks for itself for that repo\n    # Of course your github user must have admin access to the repo in question\n    # For this to work\n    \u003e panky: gh setup repo1/user1\n\n    # Set an alias 'myrepo' for user/my-repo\n    \u003e panky: gh set repo myrepo =\u003e user/my-repo\n    # Link the github repo 'user/my-repo' with the jenkins job 'ci-job-name'\n    \u003e panky: ci set repo user/my-repo =\u003e ci-job-name\n\n    # Run the 'ci-job-name' job against pull-request #1 on user/my-repo\n    \u003e panky: test my-repo pr 1\n    # Run the 'ci-job-name' job against commit abc123\n    \u003e panky: test my-repo abc123\n\n    # List all pull-requests for a repo\n    \u003e panky: gh prs myrepo\n    \u003e \u003cpanky\u003e 1: Fix the broken things http://git.io/XXX\n    \u003e \u003cpanky\u003e 2: Fix the other broken things http://git.io/XXXX\n\n    # When a build succeeds/fails\n    \u003e \u003cpanky\u003e [Jenkins: ci-job-name] failed https://myjenkins/job/ci-job-name/1\n\n    # When a teammate creates a pull request (with git.io shortened url)\n    \u003e \u003cpanky\u003e [user/my-repo] PR 'Fix the broken things' opened by throughnothing http://git.io/XXXX\n\n    # Panky can show info about your JIRA tickets\n    \u003e hey, check out https://company.atlassian.net/brows/PROJ-1\n    \u003e \u003cpanky\u003e [PROJ-1](Priority) assignee =\u003e Issue summary\n\n# INSTALLING\n\n[Panky](https://metacpan.org/pod/Panky) requires a non-blocking server in order to run.  This means that\nyou probably want to use either [Twiggy](https://metacpan.org/pod/Twiggy), or the builtin [Mojolicious](https://metacpan.org/pod/Mojolicious)\nserver.\n\nTo install the dependencies for [Panky](https://metacpan.org/pod/Panky), simply run:\n\n    cpanm --installdeps .\n\nIf you're using OSX, there's a good chance [EV](https://metacpan.org/pod/EV) will fail to install.  A nasty\nworkaround for this for now, is to download the latest EV package tarball\n(link can be found here: https://metacpan.org/module/EV ), and modify the\n`Makefile.PL`.  Find the `WriteMakefile` section near the bottom, and add:\n\n    CC =\u003e 'gcc',\n\nto its outermost arguments list.  You should get something like:\n\n    WriteMakefile(\n        dist =\u003e { ... },\n        depend =\u003e { ... },\n        CC =\u003e 'gcc',\n        INC       =\u003e \"-Ilibev\",\n        DEFINE    =\u003e \"$DEFINE\",\n        NAME =\u003e \"EV\",\n\nOnce you've done that, you can \\`cpanm .\\` from inside the code directory to\ninstall it.  After that, the rest of the dependencies should install fine\non OS X using \\`cpanm --installdeps .\\`\n\n## Environment Variables\n\n[Panky](https://metacpan.org/pod/Panky) is configured via environment variables to make it easy to install on\nsystems like [Heroku](http://heroku.com).\n\nThe following environment variables must be set for [Panky](https://metacpan.org/pod/Panky) to run:\n\n- PANKY\\_BASE\\_URL\n\n    This should be set to the base url that the [Panky](https://metacpan.org/pod/Panky) server will be running on.\n\n- PANKY\\_GITHUB\\_USER\n\n    The username of a Github user that will have access to whatever is needed.\n\n- PANKY\\_GITHUB\\_PWD\n\n    The Github password for the user mentioned above.\n\n- PANKY\\_CHAT\\_JABBER\\_JID\n\n    The `jid` of [Panky](https://metacpan.org/pod/Panky)'s jabber account.\n\n- PANKY\\_CHAT\\_JABBER\\_PWD\n\n    The password for [Panky](https://metacpan.org/pod/Panky)'s jabber account.\n\n- PANKY\\_CHAT\\_JABBER\\_HOST\n\n    If you need to set your jabber host to something different than the domain\n    part of the `jid`, then you can use this variable to do so.\n\n- PANKY\\_CHAT\\_JABBER\\_ROOM\n\n    The jabber conference room that [Panky](https://metacpan.org/pod/Panky) should join.  This should be the\n    full `jid` of the room, such as `room@conference.jabber.server.com`.\n\n## Jenkins Support\n\nYou can also give it the `URL` to your [Jenkins](http://jenkins-ci.org) server\nvia the `PANKY_JENKINS_URL` option.  [Panky](https://metacpan.org/pod/Panky) will use this to generate\nlinks to Jenkins builds, etc.  If you want [Panky](https://metacpan.org/pod/Panky) to be able to start builds\non jenkins (from pull requests etc.) you should pass `PANKY_JENKINS_USER` and\n`PANKY_JENKINS_TOKEN` for authentication.\n\n## JIRA Support\n\n[Panky](https://metacpan.org/pod/Panky) can also work with JIRA if you have that.  You can enable JIRA support\nby setting the following environment variables:\n\n- PANKY\\_JIRA\\_URL\n\n    The url of your jira server: `https://company.atlassian.net/`\n\n- PANKY\\_JIRA\\_USER\n\n    The username to use to authenticate with your JIRA server.\n\n- PANKY\\_JIRA\\_PWD\n\n    The password of the user used to authenticate with your JIRA server.\n\n## Heroku\n\nTo run [Panky](https://metacpan.org/pod/Panky) in [Heroku](http://heroku.com), the easiest way is to use\nthe [Perloku](https://github.com/judofyr/perloku) buildpack.\n\n    $ git clone https://github.com/throughnothing/Panky\n    $ cd Panky\n    $ heroku create -s cedar --buildpack http://github.com/judofyr/perloku.git\n    # Optionally, if you want persistent storage across app restarts\n    $ heroku addons:add heroku-postgresql(:dev)\n\nNow your heroku app is setup and ready to receive the [Panky](https://metacpan.org/pod/Panky) application.\nBefore you push [Panky](https://metacpan.org/pod/Panky) to your app, you'll want to setup the environment\nvariables described above by using:\n\n    $ heroku config:add ENVIRONMENT_VARIABLE=\"value\"\n\nFor each config value that you wish to set.\n\nOnce all of that is set up, you can deploy the app using:\n\n    $ git push heroku master\n\nThis will deploy your app code, install all dependencies, and run it.\n\nIf you have the PostgreSQL addon enabled, [Pany](https://metacpan.org/pod/Pany) will detect the\n`DATABASE_URL` environment variable present, and use the PostgreSQL server,\notherwise it falls back to sqlite storage, which will get lost whenever\nyou restart your app.\n\n# USAGE\n\nOnce configured and setup, [Panky](https://metacpan.org/pod/Panky) is mostly interacted with via chat\n(jabber by default).  Below are some commands that [Panky](https://metacpan.org/pod/Panky) accepts.  In\ngeneral, these commands must be directed at the [Panky](https://metacpan.org/pod/Panky) chat bot\n(i.e you must mention the bot by name: \"panky: COMMAND\").\n\n- gh setup _FULL\\_REPO\\_NAME_\n\n    This will direct [Panky](https://metacpan.org/pod/Panky) to setup [Github](http://github.com) Hooks for the\n    repo in question. _FULL\\_REPO\\_NAME_ should look like `user/repo` or\n    `organization/repo`.  The `GITHUB_USER` that is setup for [Panky](https://metacpan.org/pod/Panky) must have\n    access to the repo if it is private for this to work.\n\n# AUTHOR\n\nWilliam Wolf \u003cthroughnothing@gmail.com\u003e\n\n# COPYRIGHT AND LICENSE\n\n\n\nWilliam Wolf has dedicated the work to the Commons by waiving all of his\nor her rights to the work worldwide under copyright law and all related or\nneighboring legal rights he or she had in the work, to the extent allowable by\nlaw.\n\nWorks under CC0 do not require attribution. When citing the work, you should\nnot imply endorsement by the author.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthroughnothing%2Fpanky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthroughnothing%2Fpanky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthroughnothing%2Fpanky/lists"}