{"id":16024294,"url":"https://github.com/axelson/mix_lock_parser","last_synced_at":"2025-04-05T04:18:51.800Z","repository":{"id":194710258,"uuid":"689448708","full_name":"axelson/mix_lock_parser","owner":"axelson","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-14T16:43:47.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T09:05:40.276Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axelson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-09T20:54:52.000Z","updated_at":"2023-09-09T20:55:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"4c0fcaf9-37cf-495b-9d64-bbcf3a056434","html_url":"https://github.com/axelson/mix_lock_parser","commit_stats":null,"previous_names":["axelson/mix_lock_parser"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelson%2Fmix_lock_parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelson%2Fmix_lock_parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelson%2Fmix_lock_parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelson%2Fmix_lock_parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axelson","download_url":"https://codeload.github.com/axelson/mix_lock_parser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247285401,"owners_count":20913806,"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":[],"created_at":"2024-10-08T19:06:27.257Z","updated_at":"2025-04-05T04:18:51.781Z","avatar_url":"https://github.com/axelson.png","language":"Elixir","readme":"# MixLockParser\n\nMixLockParser is able to read an Elixir `mix.lock` file and return the list of\ndependencies used and their versions.\n\nIn the future it may be expanded to also include information about your direct\ndependencies dependencies but I don't have a use-case that requires it for now\nso that is currently out of scope.\n\n```iex\niex\u003e contents = \"\"\"\n...\u003e %{\n...\u003e   \"contex\": {:hex, :contex, \"0.5.0\", \"5d8a6defbeb41f54adfcb0f85c4756d4f2b84aa5b0d809d45a5d2e90d91d0392\", [:mix], [{:nimble_strftime, \"~\u003e 0.1.0\", [hex: :nimble_strftime, repo: \"hexpm\", optional: false]}], \"hexpm\", \"b7497a1790324d84247859df44ba4bcf2489d9bba1812a5375b2f2046b9e6fd7\"},\n...\u003e   \"dotenv_parser\": {:hex, :dotenv_parser, \"2.0.0\", \"0f999196857e4ee18cbba1413018d5e4980ab16b397e3a2f8d0cf541fe683181\", [:mix], [], \"hexpm\", \"e769bde2dbff5b0cd0d9d877a9ccfd2c6dd84772dfb405d5a43cceb4f93616c5\"}\n...\u003e }\n...\u003e \"\"\"\niex\u003e MixLockParser.read_mix_lock_contents!(contents)\n[{:contex, :hex, \"0.5.0\"}, {:dotenv_parser, :hex, \"2.0.0\"}]\n\n# Or you can read directly from a file\niex\u003e MixLockParser.read_mix_lock!(\"priv/sample_lockfiles/short_mix.lock\")\n[{:nimble_parsec, :hex, \"1.3.1\"}]\n```\n\n- [x] Write user-facing readme\n- [ ] Support path dependencies\n- [x] Add tests for older versions of lock files\n\n## Installation\n\nThis package is not currently on hex but can be installed by adding\n`mix_lock_parser` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:mix_lock_parser, github: \"axelson/mix_lock_parser\"},\n  ]\nend\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxelson%2Fmix_lock_parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxelson%2Fmix_lock_parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxelson%2Fmix_lock_parser/lists"}