{"id":20615436,"url":"https://github.com/g-harel/website","last_synced_at":"2025-04-15T07:48:11.420Z","repository":{"id":130267100,"uuid":"158119091","full_name":"g-harel/website","owner":"g-harel","description":"personal website generator running in the cloud","archived":false,"fork":false,"pushed_at":"2024-08-04T21:55:49.000Z","size":34405,"stargazers_count":7,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T17:57:34.174Z","etag":null,"topics":["github","personal-website"],"latest_commit_sha":null,"homepage":"https://g.harel.page","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/g-harel.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":"2018-11-18T19:28:04.000Z","updated_at":"2024-08-04T21:55:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"7ca81097-5fe7-47a0-858e-2230368d98d6","html_url":"https://github.com/g-harel/website","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/g-harel%2Fwebsite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g-harel%2Fwebsite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g-harel%2Fwebsite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g-harel%2Fwebsite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/g-harel","download_url":"https://codeload.github.com/g-harel/website/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249031757,"owners_count":21201356,"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":["github","personal-website"],"created_at":"2024-11-16T11:15:14.184Z","updated_at":"2025-04-15T07:48:11.399Z","avatar_url":"https://github.com/g-harel.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![diagram](https://user-images.githubusercontent.com/9319710/50181404-4aa58b80-02da-11e9-8d48-bf6a2c2e6f58.png)\n\n# [g.harel.page](https://g.harel.page)\n\nThe page(s) are generated every five minutes by a [Cloud Function](https://cloud.google.com/functions/) which uploads the result to a public [Cloud Storage Bucket](https://cloud.google.com/storage/) whose contents are served by [Cloudflare](https://www.cloudflare.com/). Each build uses the contents of [.config](./.config) to build a [GraphQL](https://graphql.org/) query for the [GitHub API](https://developer.github.com/v4/). This data is then used to execute the website [templates](./templates) and build the static output files.\n\nThis process means the website contents, like user icon and repo descriptions, will always be up-to-date, without impacting response time. It also makes it easy, fast and version-controlled to update the list of projects and contributions shown on the website.\n\n## Development\n\n```\n$ go run ./development/build.go\n```\n\nThis command will output `index.html` in the project root and uses the local `.config` to fetch for data.\n\nAfter the initial build, the `./templates` directory is watched for changes. Manual rebuilds can be triggered by typing `.\\n`.\n\nIf a `.env` file exists in the project root, it will automatically be loaded.\n\nThe `GRAPHQL_TOKEN` environment variable must be defined to access the GitHub API.\n\n## Deployment\n\nTo publish Go dependency changes outside the `./functions` directory, commit/push the changes and run `./scripts/update-function-deps.sh`.\n\nThis project's resources are all managed using [Terraform](https://www.terraform.io). Any change to the main branch will automatically be applied (using [Cloud Build](https://cloud.google.com/cloud-build)). However, some initial manual setup is required:\n\n* A [Source Repository](https://cloud.google.com/source-repositories) must be connected to the GitHub project to act as a trigger for [Cloud Build](https://cloud.google.com/cloud-build).\n* [Cloud Build](https://cloud.google.com/cloud-build)'s [Terraform](https://www.terraform.io) build step requires a [terraform cloud builder image](https://github.com/GoogleCloudPlatform/cloud-builders-community/tree/master/terraform) available in the project's [Container Registry](https://cloud.google.com/container-registry). Instructions available [here](https://github.com/GoogleCloudPlatform/cloud-builders-community#build-the-build-step-from-source).\n\n_As of this writing (Nov 2018)_\n\n* _[Default cloud function service account](https://cloud.google.com/functions/docs/concepts/iam#runtime_service_account) must have `Storage Object Admin` Role._\n\n## License\n\n[MIT](https://github.com/g-harel/website/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fg-harel%2Fwebsite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fg-harel%2Fwebsite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fg-harel%2Fwebsite/lists"}