123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <!DOCTYPE HTML>
- <html>
- <head>
- <title>#git bot interface</title>
- <link rel="stylesheet" type="text/css" href="../style.css">
- <link rel="shortcut icon" href="/git/bot/favicon.ico">
- </head>
- <body>
- <h1>#git bot interface</h1>
- <h2>Functions</h2>
- <p>Here are your choices so far:
- <ul>
- <li><a href="faq.php">List FAQ entries</a>
- <li><a href="trigger.php">List active triggers</a> (those things that
- look like !<em>foo</em>)
- <li><a href="voice.php">Get voiced on the channel</a> (to bypass the
- spam filter without a libera.chat account)
- </ul>
- <h2>Introduction</h2>
- <p>The following features are available on IRC:
- <ul class="long">
- <li><strong>Triggers</strong>: inline commands in the form of !<em>foo</em>
- (<a href="trigger.php">list</a>) spit out a previously defined text for
- <em>foo</em>. It will be addressed to whoever you addressed with the line that
- you used the trigger in. It can be used anywhere in the middle of a line,
- though it should not run into other words.
- <ul><li><strong>Edit</strong>: If you are logged into NickServ, you
- can use ".trigger_edit <trigger> <new expansion>" to
- change the value of a trigger (no "!" there).
- <li><strong>Add new</strong>: Only available to selected people; same
- syntax as for editing. If you have been hanging out in #git for quite
- some time and haven't been selected yet, go shout at jast to make it
- happen.
- <li><strong>Aliases</strong>: to make one trigger an alias for
- another, set its contents to "@!othertrigger".
- <li><strong>Matching</strong>: if a request for !foo doesn't find an
- expansion named "foo", it will search for other names that
- <em>contain</em> "foo", and will spit out the shortest match instead.
- <li><strong>Private delivery</strong>: append "@p" to a trigger to
- have the response delivered to the person you are addressing, in a
- NOTICE.
- </ul>
- <li><strong>Manpages</strong>: Say something like "man git-commit" to show a
- link to one of git's manpages. Addressing works the same as for triggers.
- <li><strong>FAQs</strong>: Say something like "faq non-bare" to link to an FAQ
- from the git wiki. Valid keywords are the anchors used on the wiki page.
- Addressing works the same as for triggers.
- <li><strong>Draw graphs</strong>: the ".graph" and ".digraph" commands are
- interfaces to <a href="/g/">Instagraph</a> (the syntax is
- explained there).<br>
- The main use case is visualizing scenarios people might come across in
- everyday Git. For this we also have a small custom graphing language with the
- <a href="gitgraph.php">.gitgraph command</a>.
- <li><strong>Linking to things in the Git repo</strong>:<ul>
- <li><code>git::master</code> (list of commits in branch)
- <li><code>git::master^{commit}</code> or <code>git::master^c</code> (commit
- view)<br>
- We try to auto-detect whether to show a list of commits or a single commit:
- if the argument looks like a commit ID, we show a single commit, otherwise
- it's the list. If a branch name was mistakenly detected as a commit ID, you
- can use something like <code>git::beef^{log}</code> or
- <code>git::beef^l</code> to force the list.
- <li><code>git::master:Documentation/</code> (tree view, trailing slash)
- <li><code>git::master:builtin/commit.c</code> (blob view)</ul>
- <li><strong>Linking to things in other repos</strong>: <code>git[github
- jast/gitinfo] master:gitinfo.pl</code> etc. Other supported hosting sites are
- bitbucket, gitlab, repo[.or.cz] and notabug.
- <li><strong>Random stuff</strong>: use the ".random" command to get a random
- line of wisdom (well, a random line of text, at any rate) contributed by a
- user.
- <ul><li><strong>Add</strong>: you can contribute lines if you are
- logged in. Simply use the command ".random add <em>Your line
- here</em>".
- <li><strong>Delete</strong>: the bot appends a line's ID when
- outputting the line. You can use the command ".random delete 5" to
- delete the line with ID 5. Note that only a select few can delete
- lines.
- </ul>
- <li><strong>Git version</strong>: #git has the most recent version of git in
- the topic. If you notice that it is out of date, use ".version" to
- automatically find the most recent version and update the topic. It may take
- up to 15 minutes after a release until it detects the new version.
- <li><strong>Knowledge base</strong>: Use ".info <em>query</em>" to query a
- general knowledge base that will try to match the query against many things,
- including: Wikipedia, github, Sourceforge, calculator, Merriam-Webster,
- TheFreeDictionary. Powered by <a href="//duckduckgo.com/">DuckDuckGo</a>'s
- ZeroClick Info API.
- <li><strong>Web search</strong>: Use ".search <em>query</em>" to get up to
- three web search results. Powered by <a
- href="//duckduckgo.com/">DuckDuckGo</a>.
- <li><strong>Web login</strong>: use the ".weblogin" command to get a link for
- activating extra features on the web page, such as editing and reverting
- trigger texts.
- </ul>
- <p>Commands and triggers can be used both in-channel and privately (by using
- /msg). By default, private messages will be responded to via NOTICE to you
- personally... but if you do something like "/msg gitinfo someuser: !foo
- to:#git", the response will be addressed to someuser in #git. The channel must
- be specified because gitinfo hangs out (or supports hanging out) in multiple
- channels.
- <h2>Source code</h2>
- <ul>
- <li><a href="//notabug.org/jast/gitinfo">Bot</a> (requires Perl,
- common::sense, DBD::SQLite, File::Slurp, JSON, POE::Component::IRC and
- friends)
- <li><a href="//notabug.org/jast/gitinfo-web">web interface</a> (requires
- PHP 5.x)
- </ul>
- <p>Both projects are published under the GPL v3. When contributing, please
- sign off (using git commit -s) your commits to confirm:
- <ol type="a">
- <li>you have permission to license your changes under the GPL v3, and
- <li>you do license your changes under the GPL v3.
- </ol>
- <p>Commits that are not signed off will not be accepted.
- </body>
- </html>
|