{"id":23231834,"url":"https://github.com/tangilj/ghostie","last_synced_at":"2026-05-05T12:31:55.307Z","repository":{"id":133516054,"uuid":"403287980","full_name":"TangilJ/ghostie","owner":"TangilJ","description":"Host content using GitHub Issues and Actions","archived":false,"fork":false,"pushed_at":"2021-09-05T19:28:30.000Z","size":103,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T19:35:13.045Z","etag":null,"topics":["actions","content","github","images","issues","videos"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TangilJ.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,"publiccode":null,"codemeta":null}},"created_at":"2021-09-05T11:15:22.000Z","updated_at":"2021-09-05T19:28:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"c38dfeb1-b9f6-4ec1-b5e4-6c76462aa6ab","html_url":"https://github.com/TangilJ/ghostie","commit_stats":null,"previous_names":["tangilj/ghostie"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/TangilJ/ghostie","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangilJ%2Fghostie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangilJ%2Fghostie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangilJ%2Fghostie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangilJ%2Fghostie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TangilJ","download_url":"https://codeload.github.com/TangilJ/ghostie/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangilJ%2Fghostie/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32649529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["actions","content","github","images","issues","videos"],"created_at":"2024-12-19T02:16:44.470Z","updated_at":"2026-05-05T12:31:55.286Z","avatar_url":"https://github.com/TangilJ.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eGhostie\u003c/h1\u003e\n  (\u003cb\u003eG\u003c/b\u003eitHub-\u003cb\u003ehost\u003c/b\u003e-\u003cb\u003eie\u003c/b\u003e)\n  \u003ch3\u003eHost content using GitHub Issues and Actions\u003c/h3\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![GPLv3 License](https://img.shields.io/github/license/TheBlocks/ghostie)](https://github.com/TheBlocks/ghostie/blob/main/LICENSE/)\n\n### [How it works](#How-it-works) • [Usage/Examples](#UsageExamples) • [Inputs](#Inputs) • [Built with](#Built-with)\n\n\u003c/div\u003e\n\n## How it works\n\n1. Create an issue\n2. Attach your image/video\n3. The Ghostie action is automatically triggered\n4. Your content is now uploaded to your repository!\n\nSee this demo repository to see Ghostie in action: [TheBlocks/ghostie-demo](https://github.com/TheBlocks/ghostie-demo)\n\nhttps://user-images.githubusercontent.com/21197843/132138613-a90d5411-c0d7-48dd-b53e-56ddda572b64.mp4\n\n## Usage/Examples\n\nYou need to create a yml file in `.github/workflows/` (e.g. `.github/workflows/ghostie.yml`) and then configure it to use Ghostie. Here are some example configurations you could use.\n\nThis following configuration sets every available input:\n\n```yml\nname: Ghostie\n\non:\n  issues:\n    types: [opened, edited]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - name: Upload with Ghostie\n        uses: TheBlocks/ghostie@v1.0.0\n        with:\n          repo-token: ${{ secrets.GITHUB_TOKEN }}\n          branch-name: ${{ github.event.repository.default_branch }}\n          image-folder: \"images/\"\n          video-folder: \"videos/\"\n          misc-folder: \"misc/\"\n          commit-msg: \"Create new image/video file\"\n          allowed-users: \"OWNER\"\n```\n\nIf you're happy with the [defaults for the inputs](#Inputs), you could use a more minimal configuration:\n\n```yml\nname: Ghostie\n\non:\n  issues:\n    types: [opened, edited]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - name: Upload with Ghostie\n        uses: TheBlocks/ghostie@v1.0.0\n        with:\n          repo-token: ${{ secrets.GITHUB_TOKEN }}\n          branch-name: ${{ github.event.repository.default_branch }}\n```\n\n## Inputs\n\nThis action has multiple inputs so that you can customise it.\n\n| Input name      | Required? | Default value                   | Notes\n| --------------- | --------- | ------------------------------- | -------------------------------\n| `repo-token`    | Yes       |                                 | Use `${{ secrets.GITHUB_TOKEN }}`\n| `branch-name`   | Yes       |                                 | The branch to upload the files to\n| `image-folder`  | No        | `\"images/\"`                     | The folder where images get uploaded\n| `video-folder`  | No        | `\"videos/\"`                     | The folder where videos get uploaded\n| `misc-folder`   | No        | `\"misc/\"`                       | The folder where all other files get uploaded\n| `commit-msg`    | No        | `\"Create new image/video file\"` | The commit message when files are committed\n| `allowed-users` | No        | `\"OWNER\"`                       | Allowed values are: `OWNER`, `COLLABORATOR`, `CONTRIBUTOR`, `FIRST_TIMER`, `FIRST_TIME_CONTRIBUTOR`, `MANNEQUIN`, `MEMBER`, `NONE`\n\n## Built with\n\n- [GitHub Actions Toolkit](https://github.com/actions/toolkit)\n- [sanitize-filename](https://github.com/parshap/node-sanitize-filename)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangilj%2Fghostie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftangilj%2Fghostie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangilj%2Fghostie/lists"}