Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can you track or be notified of changes to GitHub wikis?

Are there service hooks for GitHub wiki repositories? Is there some other mechanism that GitHub provides for me to track wiki edits?

like image 473
Eric Bloch Avatar asked Dec 06 '11 22:12

Eric Bloch


People also ask

How do I pull wiki from GitHub?

The Wiki pages are managed as a repository. So click on your repository, then on the left side click on Wiki. Finally on the upper right corner click on Clone Repository. There you will clear instructions on how to clone it correctly.

Can you search a GitHub wiki?

You can search wikis globally across all of GitHub, or search wikis within a particular repository or organization.

How do I update my wiki on GitHub?

On GitHub.com, navigate to the main page of the repository. Under your repository name, click Wiki. In the upper-right corner of the page, click New Page. Optionally, to write in a format other than Markdown, use the Edit mode drop-down menu, and click a different format.


2 Answers

Push approach: Within the GitHub API documentation, you can find documentation about setting up service hooks which can be triggered for one or more events. The gollum event is especially raised any time a wiki page is updated.

JSON-based pull approach: You can also leverage the Events HTTP API to retrieve a JSON formated output of what happens on GitHub, then apply some filtering in order to isolate the events of type GollumEvent.

Below a quick jQuery-based sample

<html>     <head>         <title>Gollum events</title>         <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>         <script type="text/javascript">             $(function() {                 $.getJSON('https://api.github.com/repos/holman/spark/events?callback=?', function(data) {                      var list = $('#gollum-events');                      $.each(data.data, function(key, val) {                         if (val.type == "GollumEvent") {                             $.each(val.payload.pages, function(key2, val2) {                                 list.append('<li id="' + key + '.' + key2 + '"><a href="' + val2.html_url + '">' + val2.page_name + '</a> [' + val.actor.login + ' @ ' + val.created_at + ']</li>');                             });                         }                     });                 });             });         </script>     </head>     <body>         <ul id="gollum-events"/>     </body> </html> 

Atom based pull approach: Last but not least, you can subscribe to the wiki changes atom feed. Go to the GitHub Wiki section of the repository, select the Pages sub tab, hover onto the orange icon, copy the link and paste into your favorite RSS reader.

Subscribe to changes

Update:

It looks like the RSS feed icon is no longer displayed for a wiki.

However, you can still build the URL by yourself

  • Syntax: https://github.com/:user/:repository/wiki.atom
  • Example: https://github.com/holman/spark/wiki.atom
like image 70
nulltoken Avatar answered Oct 07 '22 01:10

nulltoken


I set up a Jenkins job to pull our GitHub wiki from https://github.com/IQSS/dvn.wiki.git with a build trigger of @daily. In a build step, I'm executing a shell command like this to email us:

echo "The DVN wiki on GitHub has been updated. Please check for new content at https://github.com/IQSS/dvn/wiki/_history" | mail -s "[dvn-wiki-notifications] update detected" [email protected]

Here's the job if anyone cares to see: https://build.hmdc.harvard.edu:8443/job/dvn-wiki-notifications/

like image 24
Philip Durbin Avatar answered Oct 07 '22 00:10

Philip Durbin