Skip to content

j178/github-s3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub as a file server

Abuse GitHub unpublicized attachment API to serve a file.

Especially useful for hosting image files that can be referenced in markdown files.

Usage

  1. Install
    brew install j178/tap/github-s3
    # or
    go install github.com/j178/github-s3/cmd/github-s3@latest
  2. Login to your GitHub account, and obtain cookie named user_session from GitHub web browser session.
  3. Run
    export GITHUB_SESSION=<github-user-session>   
    github-s3 <path-to-file>

If you don't want to obtain the cookie manually, you can use github-s3-auto to automatically find the cookie from your web browser session.

go install github.com/j178/github-s3/cmd/github-s3-auto@latest

github-s3-auto <path-to-file>

Use in GitHub Actions

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Upload files to GitHub
        uses: j178/github-s3@v1
        with:
          files: <list-of-paths-to-file>
          github-session: ${{ secrets.GH_SESSION }}
      - name: Use uploaded files
        run: |
            # Use the uploaded files
        with:
         files: ${{ steps.upload.outputs.links }}

Disclaimer

Please note that this project relies on an unpublicized API of GitHub, and its usage may be subject to changes in GitHub's policies or API. Use it responsibly and ensure compliance with GitHub's terms of service.