{"id":26031677,"url":"https://github.com/apache/whimsy","last_synced_at":"2025-04-04T17:03:32.423Z","repository":{"id":2941099,"uuid":"46909397","full_name":"apache/whimsy","owner":"apache","description":"Apache Whimsy","archived":false,"fork":false,"pushed_at":"2025-04-02T08:39:51.000Z","size":9795,"stargazers_count":80,"open_issues_count":8,"forks_count":79,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-03T04:17:12.088Z","etag":null,"topics":["content","javascript","ruby","whimsy"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2015-11-26T06:56:46.000Z","updated_at":"2025-04-02T08:39:55.000Z","dependencies_parsed_at":"2023-10-10T20:13:00.494Z","dependency_job_id":"b65aaa86-f321-44ae-9b8a-bbdbe5ec129c","html_url":"https://github.com/apache/whimsy","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/apache%2Fwhimsy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fwhimsy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fwhimsy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fwhimsy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/whimsy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246991838,"owners_count":20865722,"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":["content","javascript","ruby","whimsy"],"created_at":"2025-03-06T20:22:04.078Z","updated_at":"2025-04-04T17:03:32.404Z","avatar_url":"https://github.com/apache.png","language":"Ruby","readme":"Apache Whimsy Project Overview\n==================\n\nApache Whimsy is a collection of useful organizational tools used by\nthe ASF and Apache committers to access and manipulate data about\nApache people, projects, and processes.  Whimsy is both an [Apache PMC](https://whimsical.apache.org/),\nthis codebase, and the live deployed instance of https://whimsy.apache.org/.\n\nThe ASF's Whimsy instance hosts static content, repository checkouts/clones, CGI scripts, Rack\napplications, Node.js applications, tools, and cron jobs.  Note: features accessing private\nASF data are restricted to committers, Members, or Officers of the ASF.\n\nEvery commit pushed to master is deployed within minutes to https://whimsy.apache.org/ using\n[GitPubSub](https://www.apache.org/dev/gitpubsub.html).\n\nHow Tos and Get The Code\n===============\n\nWhimsy source code is hosted at:\n    https://github.com/apache/whimsy.git\nand mirrored for Apache committers at:\n    https://gitbox.apache.org/repos/asf/whimsy.git\n\n * [How To Develop Whimsy Code](./DEVELOPMENT.md)\n * [Submit Bugs/Enhancement Requests](https://issues.apache.org/jira/browse/WHIMSY)\n * [Questions? See the Mailing List](https://lists.apache.org/list.html?dev@whimsical.apache.org)\n * **Setting Up For Local Development**\n   * macOS - [Run setupmymac](./SETUPMYMAC.md) or [Follow manual steps](./MACOS.md)\n   * [Linux-y setup steps](./DEVELOPMENT.md)\n   * [Use DOCKER to run Whimsy locally](./DOCKER.md)\n   * [General FAQs for developing the Whimsy Way](./DEVELOPMENT.md#how-to--faq-question)\n   * [Whimsy API Docs](https://whimsy.apache.org/docs/)\n * [Configuration Pointers](./CONFIGURE.md) - various config settings for server or local use\n * [Production Server Deployment Instructions](./DEPLOYMENT.md)\n * [Monitoring How To](./www/status/README.md) - [Live Whimsy Status](https://whimsy.apache.org/status/)\n * [Dependency Listing](./CONFIGURE.md#Dependencies)\n\nHow To Get Involved!\n===============\n\nSince Whimsy hosts many independent tools that make finding or updating information\nat the ASF simpler, there are plenty of places for Apache committers to\nget involved.  Bugs or improvement suggestions for the many\n[tools available on Whimsy](https://whimsy.apache.org/committers/tools)\nor [list of public datafiles](https://whimsy.apache.org/test/dataflow.cgi) are always appreciated,\nand please join us on the [public #whimsy channel on Slack](https://the-asf.slack.com/).\n\nIf you have an idea for a new Whimsy tool, [email us](mailto:dev@whimsical.apache.org?subject=Tool-Idea)!\nThe PMC supports a rich server environment, so deploying a new tool is as\nsimple as proposing a .cgi with a bit of Ruby code.  We also have deployments\nof Rack and Sinatra apps, and use JavaScript and Wunderbar for most of the\nUI building in many tools. The Whimsy server also supports direct access\nto Apache SVN or git repositories, making consuming data simple.\n\nThe Whimsy committers are always looking for new ideas to improve processes\nat Apache, and we can either help you get started or suggest how to\napproach just about any sort of \"find this ASF data and streamline that\nprocess\" ideas.\n\nMost documentation is in the code or in the repo, and our dev@whimsical\nmailing list is active.  Note that many Whimsy tools access committer- or\nmember-private data, so some tools are access restricted.\n\n**Historical note:** The live production whimsy.apache.org server was used for\nthe board agenda tool and more before we became the Apache Whimsy top level\nproject.  That's why [whimsy.apache.org](https://whimsy.apache.org/) is\nthe production server, and mailing lists and a homepage are hosted\non the [whimsical.apache.org](https://whimsical.apache.org/) domain.\n\nWhimsy Architecture - Live Instance\n===================\n\nWhimsy is run in an Apache hosted VM with httpd, Rack, Ruby, and variety of other tools\nthat directly interface with various parts of Apache organizational records.\n\nDetails for each type of deployed tool or script:\n\n * **Static content**  Changes pushed to GitHub master will be\n   automatically deployed - every commit triggers the puppet agent to\n   do an update, which may take a few minutes.  Note that this includes the\n   contents of scripts and applications too.\n\n * **Repository checkouts/clones**  An copy of a number of repositories\n   are updated every 10 minutes via a cron job.  This is controlled\n   by [repository.yml](repository.yml).  The whimsy VM is also subscribed\n   to board@ and scans those emails for commit messages and will update\n   the copy of `foundation/board` when commits happen.\n\n * **CGI scripts** any dependencies listed in a `Gemfile` will\n   automatically be installed.  A simple CGI:\n\n    https://github.com/apache/whimsy/blob/master/www/test.cgi\n    https://whimsy.apache.org/test.cgi\n\n * **Authentication for CGI Scripts** See the [DEVELOPMENT.md FAQ](./DEVELOPMENT.md#how-to-authenticateauthorize-your-scripts).\n\n * **Rack applications** run under\n   [Phusion Passenger](https://www.phusionpassenger.com/) under Apache httpd.\n   Again, `Gemfile`s are used to specify dependencies.  In addition to simply\n   checking the application, one line per passenger application needs to be\n   added to the puppet file under `passenger:` as seen in [DEPLOYMENT.md](./DEPLOYMENT.md#puppetnode).\n\n   A sample rack application (two empty directories, and a one line file):\n\n    https://github.com/apache/whimsy/tree/master/www/racktest\n\n    https://whimsy.apache.org/racktest\n\n   Authentication requirements will also need to be two phase, like with CGI\n   above; but more common conditions can be handled at the \"Rack\" level\n   instead of at the application level making use of Rack middleware such as:\n\n    https://github.com/apache/whimsy/blob/master/lib/whimsy/asf/rack.rb#L56\n\n * **Cron jobs** are managed by puppet.  See [deployment](./DEPLOYMENT.md) for more\n   information.\n\n * **NEW!** Node.js is being prototyped to improve the Board Agenda tool, stay tuned.\n\n * **Generated JSON data** files are automatically generated into\n   the [`/public`](https://whimsy.apache.org/public/) directory, to\n   cache frequently used data for whimsy and other applications.  These\n   are usually run from a cron calling a www/roster/public_*.rb file.\n   See also an [overview of data dependencies and flow](https://whimsy.apache.org/test/dataflow.cgi).\n\n * **Data models** for many Whimsy tools are in `lib/whimsy/asf`, and\n   most **views** for tools are stored in `www`.  Note that Whimsy has\n   a wide variety of sometimes unrelated tools, so not everything\n   here uses the same models.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fwhimsy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fwhimsy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fwhimsy/lists"}