{"id":22549831,"url":"https://github.com/heusalagroup/hgm","last_synced_at":"2026-05-07T18:32:07.195Z","repository":{"id":57115792,"uuid":"466145439","full_name":"heusalagroup/hgm","owner":"heusalagroup","description":"Package manager using Git Submodules","archived":false,"fork":false,"pushed_at":"2022-08-05T23:44:12.000Z","size":183,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-11T11:51:54.297Z","etag":null,"topics":["git","github","package-manager"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/heusalagroup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["heusalagroup"]}},"created_at":"2022-03-04T14:02:41.000Z","updated_at":"2022-03-05T12:53:52.000Z","dependencies_parsed_at":"2022-08-22T16:31:01.465Z","dependency_job_id":null,"html_url":"https://github.com/heusalagroup/hgm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/heusalagroup/hgm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heusalagroup%2Fhgm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heusalagroup%2Fhgm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heusalagroup%2Fhgm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heusalagroup%2Fhgm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heusalagroup","download_url":"https://codeload.github.com/heusalagroup/hgm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heusalagroup%2Fhgm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32750490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["git","github","package-manager"],"created_at":"2024-12-07T16:10:01.422Z","updated_at":"2026-05-07T18:32:07.161Z","avatar_url":"https://github.com/heusalagroup.png","language":"TypeScript","funding_links":["https://github.com/sponsors/heusalagroup"],"categories":[],"sub_categories":[],"readme":"# @heusalagroup/hgm\n\nThis is Heusala Group's git module manager.\n\nIn reality, it is just a smarter command line interface to use Git's SubModules.\n\n*Note!* It's still quite experimental and in active development.\n\n### Install the command globally from NPM\n\n```shell\nnpm i -g @heusalagroup/hgm\n```\n\n### Install [fi.hg.core](https://github.com/heusalagroup/fi.hg.core) as a git submodule to ./src/fi/hg/core\n\n```shell\nhgm update fi.hg.core\n```\n\nThis is essentially same as following raw commands:\n\n```shell\nmkdir -p src/fi/hg\ngit submodule add git@github.com:heusalagroup/fi.hg.core.git src/fi/hg/core\ngit config -f .gitmodules submodule.src/fi/hg/core.branch main\n(cd src/fi/hg/core \u0026\u0026 git pull --recurse-submodules \u0026\u0026 git submodule update --init)\n```\n\n...except it can detect current state and only execute steps which are needed.\n\n### Update all local git submodules\n\n```shell\nhgm update\n```\nThis is essentially same as following raw commands:\n\n```shell\ngit pull --recurse-submodules\ngit submodule update --init --recursive\n```\n\n### Configuring user defined scopes\n\nOur package system is user extendable.\n\nYou can configure your own namespaces by registering the domain and using our HTTP metadata \nservice to configure your Github organization name.\n\nWhen you own the domain `example.com`, it gives you access to define packages under `com.example`. \n\nYou just need to:\n\n 1. Register or already own the domain name \n 2. Configure the Github organization name by creating an JSON web resource at a URL \n    `https://example.com/.well-known/fi.hg.m.json` with the content as:\n\n```json\n{\n  \"fi.hg.github.org\": \"example\"\n}\n```\n\nThe implementation uses the [.well-known](https://en.wikipedia.org/wiki/Well-known_URI) HTTP interface.\n\n#### Configuring user defined scopes using nginx\n\nUsing the `nginx` web server you can configure it with the following configuration:\n\n```\nlocation /.well-known/fi.hg.m.json {\n    default_type application/json;\n    return 200 '{\"fi.hg.github.org\": \"example\"}';\n}\n```\n\n#### Configuring user defined scopes using Github Pages\n\nGithub pages do not by default include `.well-known` folder.\n\nAppend to your `_config.yml` an `include` configuration: \n\n```yml\ninclude: [\".well-known\"]\n```\n\n...and add a JSON file at `./.well-known/fi.hg.m.json` with content:\n\n```json\n{\n  \"fi.hg.github.org\": \"example\"\n}\n```\n\n#### Configuring user defined scopes using Nginx\n\nLet Nginx serve the JSON directly:\n\n```\nlocation /.well-known/fi.hg.m.json {\n  default_type application/json;\n  return 200 '{\"fi.hg.github.org\": \"heusalagroup\"}';\n}\n```\n\n### License\n\nCopyright (c) Heusala Group. All rights reserved. Licensed under the MIT License (the \"[License](./LICENSE)\");\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheusalagroup%2Fhgm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheusalagroup%2Fhgm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheusalagroup%2Fhgm/lists"}