{"id":21491643,"url":"https://github.com/caltechlibrary/waystation","last_synced_at":"2025-06-12T17:35:43.079Z","repository":{"id":63317141,"uuid":"564017666","full_name":"caltechlibrary/waystation","owner":"caltechlibrary","description":"Automatically archive your repository's GitHub Pages in the Wayback Machine.","archived":false,"fork":false,"pushed_at":"2024-01-30T02:16:37.000Z","size":1392,"stargazers_count":26,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-12T06:59:26.091Z","etag":null,"topics":["archiving","automation","documentation","github-action","github-actions","github-automation","github-pages","internet-archive","preservation","wayback-machine"],"latest_commit_sha":null,"homepage":"https://caltechlibrary.github.io/waystation","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caltechlibrary.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null}},"created_at":"2022-11-09T20:20:34.000Z","updated_at":"2025-03-14T05:19:58.000Z","dependencies_parsed_at":"2024-01-03T00:43:54.705Z","dependency_job_id":"1ba38814-76e0-4893-b7dc-01ec9d567132","html_url":"https://github.com/caltechlibrary/waystation","commit_stats":{"total_commits":54,"total_committers":2,"mean_commits":27.0,"dds":0.03703703703703709,"last_synced_commit":"3b07c5e5df4d8aa8d128668b91d187e8a4a083a7"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":"caltechlibrary/template","purl":"pkg:github/caltechlibrary/waystation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Fwaystation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Fwaystation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Fwaystation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Fwaystation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caltechlibrary","download_url":"https://codeload.github.com/caltechlibrary/waystation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Fwaystation/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259512909,"owners_count":22869518,"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":["archiving","automation","documentation","github-action","github-actions","github-automation","github-pages","internet-archive","preservation","wayback-machine"],"created_at":"2024-11-23T15:17:14.014Z","updated_at":"2025-06-12T17:35:43.058Z","avatar_url":"https://github.com/caltechlibrary.png","language":"Makefile","readme":"# Waystation\u003cimg alt=\"Waystation logo: a stylized icon of a camera drawn in white outline inside an orange-colored circle.\" width=\"10%\" align=\"right\" src=\"https://github.com/caltechlibrary/waystation/blob/main/.graphics/camera.svg\"\u003e\n\n_Waystation_ is a [GitHub Action](https://docs.github.com/actions) that makes it easy to archive your repository's [GitHub Pages](https://docs.github.com/en/pages) site automatically in the Internet Archive's [Wayback Machine](https://web.archive.org).\n\n[![License](https://img.shields.io/badge/License-BSD--like-lightgrey?style=flat-square)](https://github.com/caltechlibrary/waystation/blob/main/LICENSE)\n![GitHub](https://img.shields.io/badge/GitHub-%23000000.svg?logo=github\u0026label=Actions\u0026logoColor=white\u0026style=flat-square)\n[![Latest release](https://img.shields.io/github/v/release/caltechlibrary/waystation.svg?color=b44e88\u0026label=Release\u0026style=flat-square)](https://github.com/caltechlibrary/waystation/releases)\n[![DOI](https://img.shields.io/badge/dynamic/json.svg?label=DOI\u0026style=flat-square\u0026colorA=gray\u0026colorB=navy\u0026query=$.pids.doi.identifier\u0026uri=https://data.caltech.edu/api/records/hy6ag-xw238/versions/latest)](https://data.caltech.edu/records/hy6ag-xw238/latest)\n[![GitHub marketplace](https://img.shields.io/badge/marketplace-Waystation-green?logo=github\u0026color=e4722f\u0026style=flat-square\u0026label=Marketplace)](https://github.com/marketplace/actions/waystation)\n\n\n## Table of contents\n\n* [Introduction](#introduction)\n* [Installation](#installation)\n* [Usage](#usage)\n* [Getting help](#getting-help)\n* [Contributing](#contributing)\n* [License](#license)\n* [Acknowledgments](#acknowledgments)\n\n\n## Introduction\n\nMany projects use [GitHub Pages](https://docs.github.com/en/pages) for documentation and other purposes. GitHub Pages are wonderful, but they are not archived. To help ensure long-term access to your GitHub Pages, you may want to preserve them in the Internet Archive's [Wayback Machine](https://web.archive.org). That's the purpose of this GitHub Action.\n\n### How does Waystation work?\n\nWaystation (a loose acronym of \u003cem\u003e\u003cins\u003e\u003cb\u003eWay\u003c/b\u003e\u003c/ins\u003eback \u003cins\u003e\u003cb\u003es\u003c/b\u003e\u003c/ins\u003ei\u003cins\u003e\u003cb\u003et\u003c/b\u003e\u003c/ins\u003ee \u003cins\u003e\u003cb\u003ea\u003c/b\u003e\u003c/ins\u003erchiving automa\u003cins\u003e\u003cb\u003etion\u003c/b\u003e\u003c/ins\u003e\u003c/em\u003e) sends your project's [GitHub Pages](https://docs.github.com/en/pages) URL to the [Wayback Machine](https://web.archive.org). It's intended to be triggered on software releases in your repository and uses the [Wayback Machine GitHub Action](https://github.com/marketplace/actions/wayback-machine) to send your repository's configured GitHub Pages URL to the Wayback Machine, thereby ensuring that the latest copy of your site is archived. You can change the trigger condition if needed.\n\n### Why would you want to bother with this?\n\nGitHub is incredibly popular today, but the content is not guaranteed to be permanent; moreover, GitHub has in the past [changed the URLs and policies surrounding GitHub Pages](https://ws-dl.blogspot.com/2022/03/2022-03-30-github-is-not-archive-github.html)—and may do so again in the future. The Wayback Machine is a free digital archive of the World Wide Web founded by the [Internet Archive](https://en.wikipedia.org/wiki/Internet_Archive). Web pages saved in the Wayback Machine continue to exist even after the original project repository changes or is removed from the web, and the archived pages can be [searched for, shared, and linked to normally](https://help.archive.org/help/using-the-wayback-machine/). You can also view [previous versions of a site](https://archive.org/web/) if they were archived.\n\n\n## Installation\n\nTo use Waystation, you need to create a GitHub Actions workflow file in your repository. Follow these simple steps.\n\n### Add the workflow file to your repository\n\n1. In the main branch of your repository, create a `.github/workflows` directory if this directory does not already exist.\n2. In the `.github/workflows` directory, create a file named `archive-github-pages.yml`.\n3. Copy and paste the [following content](https://raw.githubusercontent.com/caltechlibrary/waystation/main/sample-workflow.yml) into the file:\n\n    ```yaml\n    # GitHub Actions workflow for Waystation version 1.8.0.\n    # Available as the file \"sample-workflow.yml\" from the software\n    # repository at https://github.com/caltechlibrary/waystation\n\n    name: Archive GitHub Pages\n    run-name: Archive GitHub Pages in the Wayback Machine\n\n    on:\n      release:\n        types: [published]\n      workflow_dispatch:\n        inputs:\n          dry_run:\n            description: \"Run without actually sending URLs\"\n            type: boolean\n\n    jobs:\n      run-waystation:\n        name: Run Waystation\n        runs-on: ubuntu-latest\n        steps:\n          - uses: caltechlibrary/waystation@v1.8\n            with:\n              dry_run: ${{github.event.inputs.dry_run || false}}\n    ```\n\n4. Save the file, add it to your git repository, and commit the changes.\n5. (If you did the steps above outside of GitHub) Push your repository changes to GitHub.\n\n### Test the workflow\n\nOnce you have created the workflow file and pushed it to GitHub, it's wise to do a dry run, in order to test that things work as expected.\n\n1. Go to the _Actions_ tab in your repository and click on the workflow named \"Archive GitHub Pages\" in the sidebar on the left\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/caltechlibrary/waystation/raw/develop/docs/_static/media/github-run-workflow.png\" alt=\"Screenshot of GitHub actions workflow list\" width=\"90%\"\u003e\u003c/p\u003e\n2. In the page shown by GitHub next, click the \u003ckbd\u003eRun workflow\u003c/kbd\u003e button in the right-hand side of the blue strip\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/caltechlibrary/waystation/raw/develop/docs/_static/media/github-run-workflow-button.png\" alt=\"Screenshot of GitHub Actions workflow run button\" width=\"75%\"\u003e\u003c/p\u003e\n3. In the pull-down, click the checkbox for \"Run without actually sending URLs\"\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/caltechlibrary/waystation/raw/develop/docs/_static/media/github-workflow-options-circled.png\" alt=\"Screenshot of GitHub Actions workflow menu\" width=\"40%\"\u003e\u003c/p\u003e\n4. Click the green \u003ckbd\u003eRun workflow\u003c/kbd\u003e button near the bottom\n5. Refresh the web page and a new line will be shown named after your workflow file\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/caltechlibrary/waystation/raw/develop/docs/_static/media/github-workflow-running.png\" alt=\"Screenshot of GitHub Actions running\" width=\"90%\"\u003e\u003c/p\u003e\n6. Click the title of that workflow, to make GitHub show the progress and results of running Waystation\n\n\n## Usage\n\nOnce installed, the sample workflow will run automatically the next time you publish a release on GitHub. The trigger condition that causes Waystation to run automatically is determined by the `on` statement in your `archive-github-pages.yml` workflow file. The examples shown here use `on: release` to trigger when a release is published, but you can use [other trigger events defined by GitHub](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows) if you wish.\n\nSeveral optional parameters control the behavior of Waystation; they are described below.\n\n\n### `dry_run` (default: `false`)\n\nSetting the parameter `dry_run` to `true` will cause the action to execute without sending the URL to the Wayback Machine. This is mainly useful for testing, especially if you want to try different trigger conditions.\n\nThe [sample workflow file](https://raw.githubusercontent.com/caltechlibrary/waystation/main/sample-workflow.yml) (shown [above](#add-the-workflow-file-to-your-repository)) includes a `dry_run` parameter checkbox when invoked manually. You can use that to set the value on an individual per-run basis. To change the default value (for example, when experimenting with different trigger conditions), you can do so by changing the `false` to `true` in the last line of the sample workflow. That is, change the last line from\n\n```yaml\ndry_run: ${{github.event.inputs.dry_run || false}}\n```\n\nto\n\n```yaml\ndry_run: ${{github.event.inputs.dry_run || true}}\n```\n\n\n### `debug` (default: `false`)\n\nPassing the parameter `debug` with a value of `true` will cause Waystation to print the values of the input variables and the GitHub context at run time. This is useful for debugging the workflow. To set the `debug` parameter, add it as part of the `with:` block in the workflow file. For example:\n\n```yaml\n    ...\n      - uses: caltechlibrary/waystation@main\n        with:\n          dry_run: ${{github.event.inputs.dry_run || false}}\n          debug: true\n    ...\n```\n\n\n### `save_outlinks` (default: `true`)\n\nThis corresponds to the parameter [`saveOutlinks`](https://github.com/JamieMagee/wayback#saveOutlinks) in the [Wayback Machine GitHub Action](https://github.com/marketplace/actions/wayback-machine). A value of `true` will make the action tell the Wayback Machine to archive external pages that are linked to from your GitHub Pages. The default in Waystation is `true` because Waystation's author finds this useful in producing a more complete archive of a GitHub Pages site. To set the `save_outlinks` parameter, add it as part of the `with:` block in the workflow file. For example:\n\n```yaml\n    ...\n      - uses: caltechlibrary/waystation@main\n        with:\n          dry_run: ${{github.event.inputs.dry_run || false}}\n          save_outlinks: true\n    ...\n```\n\n\n### `save_screenshot` (default: `true`)\n\nThis corresponds to the parameter [`saveScreenshot`](https://github.com/JamieMagee/wayback#saveScreenshot) in the [Wayback Machine GitHub Action](https://github.com/marketplace/actions/wayback-machine). A value of `true` will make the action tell the Wayback Machine to save a screenshot of the page located at the GitHub Pages URL. The default in Waystation is `true` because Waystation's author finds this useful in producing a more complete archive of a GitHub Pages site. To set the `save_screenshot` parameter, add it as part of the `with:` block in the workflow file. For example:\n\n```yaml\n    ...\n      - uses: caltechlibrary/waystation@main\n        with:\n          dry_run: ${{github.event.inputs.dry_run || false}}\n          save_screenshot: true\n    ...\n```\n\n\n## Getting help\n\nIf you find an issue, please submit it in [the GitHub issue tracker](https://github.com/caltechlibrary/waystation/issues) for this repository.\n\n\n## Contributing\n\nYour help and participation in enhancing Waystation is welcome!  Please visit the [guidelines for contributing](https://github.com/caltechlibrary/waystation/blob/main/CONTRIBUTING.md) for some tips on getting started.\n\n\n## License\n\nSoftware produced by the Caltech Library is Copyright © 2022–2024 California Institute of Technology.  This software is freely distributed under a modified BSD 3-clause license.  Please see the [LICENSE](LICENSE) file for more information.\n\n\n## Acknowledgments\n\nThis work was funded by the California Institute of Technology Library.\n\nWaystation makes use of the excellent [Wayback Machine GitHub Action](https://github.com/marketplace/actions/wayback-machine) by [Jamie Magee](https://github.com/JamieMagee).\n\n\u003cdiv align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://www.caltech.edu\"\u003e\n    \u003cimg width=\"100\" height=\"100\" alt=\"Caltech logo\" src=\"https://raw.githubusercontent.com/caltechlibrary/waystation/main/.graphics/caltech-round.png\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaltechlibrary%2Fwaystation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaltechlibrary%2Fwaystation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaltechlibrary%2Fwaystation/lists"}