{"id":17674372,"url":"https://github.com/iorate/semantic-release-amo","last_synced_at":"2025-05-12T21:12:04.559Z","repository":{"id":65177485,"uuid":"585190615","full_name":"iorate/semantic-release-amo","owner":"iorate","description":"A semantic-release plugin to publish Firefox add-ons to AMO (addons.mozilla.org).","archived":false,"fork":false,"pushed_at":"2024-05-06T11:51:14.000Z","size":2583,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-12T21:11:52.196Z","etag":null,"topics":["add-on","amo","firefox","semantic-release"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/semantic-release-amo","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/iorate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2023-01-04T14:48:13.000Z","updated_at":"2024-09-07T15:04:57.000Z","dependencies_parsed_at":"2024-05-06T13:04:23.457Z","dependency_job_id":null,"html_url":"https://github.com/iorate/semantic-release-amo","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iorate%2Fsemantic-release-amo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iorate%2Fsemantic-release-amo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iorate%2Fsemantic-release-amo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iorate%2Fsemantic-release-amo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iorate","download_url":"https://codeload.github.com/iorate/semantic-release-amo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253823461,"owners_count":21969848,"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":["add-on","amo","firefox","semantic-release"],"created_at":"2024-10-24T07:06:50.882Z","updated_at":"2025-05-12T21:12:04.534Z","avatar_url":"https://github.com/iorate.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# semantic-release-amo\n\nA semantic-release plugin to publish Firefox add-ons to AMO (addons.mozilla.org).\n\n## Motivation\n\n[semantic-release-firefox-add-on](https://github.com/tophat/semantic-release-firefox-add-on) is a great plugin to publish Firefox add-ons to AMO. However, it does not support submitting source code.\n\nThis plugin makes it possible to submit source code by using\n[API V5](https://addons-server.readthedocs.io/en/latest/topics/api/addons.html#version-sources).\n\n## Usage\n\n```json\n{\n  \"plugins\": [\n    \"@semantic-release/commit-analyzer\",\n    \"@semantic-release/release-notes-generator\",\n    [\n      \"semantic-release-amo\",\n      {\n        \"addonId\": \"my-addon-id\",\n        \"addonDirPath\": \"dist\",\n        \"approvalNotes\": \"To build this add-on, please run `yarn \u0026\u0026 yarn build`\",\n        \"submitSource\": true\n      }\n    ]\n  ]\n}\n```\n\n## Steps\n\n| Step               | Description                                       |\n| ------------------ | ------------------------------------------------- |\n| `verifyConditions` | Verify the environment variables and the options. |\n| `prepare`          | Update `manifest.json` and archive the add-on.    |\n| `publish`          | Publish the add-on to AMO.                        |\n\n## Environment variables\n\n| Variable         | Description                                                     |\n| ---------------- | --------------------------------------------------------------- |\n| `AMO_API_KEY`    | **REQUIRED** The API key to publish the add-on to AMO.          |\n| `AMO_API_SECRET` | **REQUIRED** The API secret to publish the add-on to AMO.       |\n| `AMO_BASE_URL`   | The base URL of AMO. Defaults to `https://addons.mozilla.org/`. |\n\n## Options\n\n| Option               | Description                                                                                                                    |\n| -------------------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| `addonId`            | **REQUIRED** The id of the add-on. Can be either a slug or a GUID.                                                             |\n| `addonDirPath`       | **REQUIRED** The path of the directory containing the add-on.                                                                  |\n| `addonZipPath`       | The path of the zip file to archive the add-on. Defaults to `\"./semantic-release-amo/${nextRelease.version}.zip\"`.             |\n| `channel`            | The channel to publish the add-on. Can be either `\"listed\"` or `\"unlisted\"`. Defaults to `\"listed\"`.                           |\n| `approvalNotes`      | The notes for the Mozilla reviewers.                                                                                           |\n| `compatibility`      | The applications that the add-on is compatible with. Can be an array of `\"firefox\"` or `\"android\"`. Defaults to `[\"firefox\"]`. |\n| `submitReleaseNotes` | Whether to submit the release notes typically generated by `@semantic-release/release-notes-generator`. Defaults to `false`.   |\n| `submitSource`       | Whether to submit the source code archived by `git archive`. Defaults to `false`.                                              |\n\n## Exported function\n\n### updateAddon\n\n```typescript\nimport { updateAddon } from 'semantic-release-amo/update-addon';\n\nawait updateAddon({\n  apiKey: '...',\n  apiSecret: '...',\n  baseURL: 'https://addons.mozilla.org/', // optional, defaults to 'https://addons.mozilla.org/'\n  addonId: '...',\n  addonZipPath: await generateAddonZip(),\n  channel: 'listed', // optional, defaults to 'listed'\n  approvalNotes: '...', // optional\n  compatibility: ['firefox'], // optional, defaults to ['firefox']\n  releaseNotes: '...', // optional\n  sourceZipPath: await generateSourceZip(), // optional\n  logger: console, // optional, defaults to console\n});\n```\n\n## Author\n\n[iorate](https://github.com/iorate) ([Twitter](https://twitter.com/iorate))\n\n## License\n\nsemantic-release-amo is licensed under [MIT License](LICENSE.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiorate%2Fsemantic-release-amo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiorate%2Fsemantic-release-amo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiorate%2Fsemantic-release-amo/lists"}