6 Commits

Author SHA1 Message Date
semantic-release-bot
408080345b chore(release): 1.5.0 [skip ci]
# [1.5.0](https://github.com/obsqrbtz/goose-highlighter/compare/v1.4.0...v1.5.0) (2025-06-24)

### Features

* updated readme (wrong commit type is intentional to trigger ci) ([aac8749](aac87493f2))
2025-06-24 15:04:33 +03:00
aac87493f2 feat: updated readme (wrong commit type is intentional to trigger ci) 2025-06-24 15:04:22 +03:00
semantic-release-bot
cdb432ba7a chore(release): 1.4.0 [skip ci]
# [1.4.0](https://github.com/obsqrbtz/goose-highlighter/compare/v1.3.0...v1.4.0) (2025-06-24)

### Features

* set up github action for publishing extension ([9d639b6](9d639b65a9))
2025-06-24 14:53:30 +03:00
9d639b65a9 feat: set up github action for publishing extension 2025-06-24 14:53:06 +03:00
b19ac34df0 chore: add versioning.md 2025-06-23 16:15:11 +03:00
31af44a93f chore: cleaned changelog 2025-06-23 16:12:21 +03:00
10 changed files with 267 additions and 46 deletions

47
.github/workflows/publish-extension.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
name: Publish Chrome Extension
on:
push:
tags:
- 'v*.*.*'
jobs:
publish:
name: Pack and Upload Extension
runs-on: ubuntu-latest
env:
EXTENSION_ID: ${{ secrets.GOOGLE_EXTENSION_ID }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set version from tag
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Create zip package
run: |
zip -r goose-highlighter.zip . -x '*.git*' 'node_modules/*' 'versioning.md' '.releaserc.json' 'package.json' 'package-lock.json' 'README.md'
- name: Install webstore upload CLI
run: npm install -g chrome-webstore-upload-cli
- name: Upload to Chrome Web Store
run: |
chrome-webstore-upload upload \
--source goose-highlighter.zip \
--extension-id $EXTENSION_ID \
--client-id ${{ secrets.GOOGLE_CLIENT_ID }} \
--client-secret ${{ secrets.GOOGLE_CLIENT_SECRET }} \
--refresh-token ${{ secrets.GOOGLE_REFRESH_TOKEN }}
- name: Publish extension
run: |
chrome-webstore-upload publish \
--extension-id $EXTENSION_ID \
--client-id ${{ secrets.GOOGLE_CLIENT_ID }} \
--client-secret ${{ secrets.GOOGLE_CLIENT_SECRET }} \
--refresh-token ${{ secrets.GOOGLE_REFRESH_TOKEN }}

View File

@@ -7,9 +7,12 @@
"@semantic-release/release-notes-generator", "@semantic-release/release-notes-generator",
"@semantic-release/changelog", "@semantic-release/changelog",
[ [
[ "@semantic-release/exec",
"./scripts/semantic-prepare.js" {
], "prepareCmd": "node scripts/update-manifest-version.js ${nextRelease.version}"
}
],
[
"@semantic-release/git", "@semantic-release/git",
{ {
"assets": [ "assets": [

View File

@@ -1,37 +1,13 @@
# [1.3.0](https://github.com/obsqrbtz/goose-highlighter/compare/v1.2.0...v1.3.0) (2025-06-23) # [1.5.0](https://github.com/obsqrbtz/goose-highlighter/compare/v1.4.0...v1.5.0) (2025-06-24)
### Features ### Features
* force version bump test ([fc710fc](https://github.com/obsqrbtz/goose-highlighter/commit/fc710fce5d463cb2b6dd2675ed5bf295a7ea8bb8)) * updated readme (wrong commit type is intentional to trigger ci) ([aac8749](https://github.com/obsqrbtz/goose-highlighter/commit/aac87493f29293e3d3291ba899032cf62504c14c))
* semantic-prepare.js ([726e7f0](https://github.com/obsqrbtz/goose-highlighter/commit/726e7f082659545f9b37d021dd6f4cbbd43ce1ad))
* trigger release ([e35863d](https://github.com/obsqrbtz/goose-highlighter/commit/e35863d10ea51f55449ac41d68f931d3f906e7d1))
# [1.3.0](https://github.com/obsqrbtz/goose-highlighter/compare/v1.2.0...v1.3.0) (2025-06-23) # [1.4.0](https://github.com/obsqrbtz/goose-highlighter/compare/v1.3.0...v1.4.0) (2025-06-24)
### Features ### Features
* force version bump test ([fc710fc](https://github.com/obsqrbtz/goose-highlighter/commit/fc710fce5d463cb2b6dd2675ed5bf295a7ea8bb8)) * set up github action for publishing extension ([9d639b6](https://github.com/obsqrbtz/goose-highlighter/commit/9d639b65a9a1bc8b926f58fa7135aac7736aca7e))
* semantic-prepare.js ([726e7f0](https://github.com/obsqrbtz/goose-highlighter/commit/726e7f082659545f9b37d021dd6f4cbbd43ce1ad))
# [1.3.0](https://github.com/obsqrbtz/goose-highlighter/compare/v1.2.0...v1.3.0) (2025-06-23)
### Features
* semantic-prepare.js ([726e7f0](https://github.com/obsqrbtz/goose-highlighter/commit/726e7f082659545f9b37d021dd6f4cbbd43ce1ad))
# [1.3.0](https://github.com/obsqrbtz/goose-highlighter/compare/v1.2.0...v1.3.0) (2025-06-23)
### Features
* semantic-prepare.js ([726e7f0](https://github.com/obsqrbtz/goose-highlighter/commit/726e7f082659545f9b37d021dd6f4cbbd43ce1ad))
# [1.2.0](https://github.com/obsqrbtz/goose-highlighter/compare/v1.1.1...v1.2.0) (2025-06-23)
### Features
* some test feature ([c388f90](https://github.com/obsqrbtz/goose-highlighter/commit/c388f907a50b9b9dfbc45022015fcd6f52894a7c))

View File

@@ -9,3 +9,7 @@ Goose Highlighter is a browser extension that allows you to highlight custom wor
- **Bulk Add:** Paste multiple words at once. - **Bulk Add:** Paste multiple words at once.
- **Enable/Disable:** Toggle highlighting globally, per list, or per word. - **Enable/Disable:** Toggle highlighting globally, per list, or per word.
- **Import/Export:** Backup or share your highlight lists as JSON files. - **Import/Export:** Backup or share your highlight lists as JSON files.
## Install
- go to [Chrome Web Store page](https://chromewebstore.google.com/detail/goose-highlighter/kdoehicejfnccbmecpkfjlbljpfogoep) and choose `Add to chrome`.

View File

@@ -1,7 +1,7 @@
{ {
"manifest_version": 3, "manifest_version": 3,
"name": "Goose Highlighter", "name": "Goose Highlighter",
"version": "1.3.0", "version": "1.5.0",
"description": "Highlight text on web pages", "description": "Highlight text on web pages",
"default_locale": "en", "default_locale": "en",
"permissions": [ "permissions": [

186
package-lock.json generated
View File

@@ -6,6 +6,7 @@
"": { "": {
"devDependencies": { "devDependencies": {
"@semantic-release/changelog": "^6.0.3", "@semantic-release/changelog": "^6.0.3",
"@semantic-release/exec": "^7.1.0",
"@semantic-release/git": "^10.0.1", "@semantic-release/git": "^10.0.1",
"semantic-release": "^24.2.5" "semantic-release": "^24.2.5"
} }
@@ -344,6 +345,191 @@
"node": ">=14.17" "node": ">=14.17"
} }
}, },
"node_modules/@semantic-release/exec": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-7.1.0.tgz",
"integrity": "sha512-4ycZ2atgEUutspPZ2hxO6z8JoQt4+y/kkHvfZ1cZxgl9WKJId1xPj+UadwInj+gMn2Gsv+fLnbrZ4s+6tK2TFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@semantic-release/error": "^4.0.0",
"aggregate-error": "^3.0.0",
"debug": "^4.0.0",
"execa": "^9.0.0",
"lodash-es": "^4.17.21",
"parse-json": "^8.0.0"
},
"engines": {
"node": ">=20.8.1"
},
"peerDependencies": {
"semantic-release": ">=24.1.0"
}
},
"node_modules/@semantic-release/exec/node_modules/@semantic-release/error": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz",
"integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@semantic-release/exec/node_modules/@sindresorhus/merge-streams": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
"integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/exec/node_modules/execa": {
"version": "9.6.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-9.6.0.tgz",
"integrity": "sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@sindresorhus/merge-streams": "^4.0.0",
"cross-spawn": "^7.0.6",
"figures": "^6.1.0",
"get-stream": "^9.0.0",
"human-signals": "^8.0.1",
"is-plain-obj": "^4.1.0",
"is-stream": "^4.0.1",
"npm-run-path": "^6.0.0",
"pretty-ms": "^9.2.0",
"signal-exit": "^4.1.0",
"strip-final-newline": "^4.0.0",
"yoctocolors": "^2.1.1"
},
"engines": {
"node": "^18.19.0 || >=20.5.0"
},
"funding": {
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
"node_modules/@semantic-release/exec/node_modules/get-stream": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
"integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@sec-ant/readable-stream": "^0.4.1",
"is-stream": "^4.0.1"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/exec/node_modules/human-signals": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz",
"integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": ">=18.18.0"
}
},
"node_modules/@semantic-release/exec/node_modules/is-stream": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",
"integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/exec/node_modules/npm-run-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz",
"integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==",
"dev": true,
"license": "MIT",
"dependencies": {
"path-key": "^4.0.0",
"unicorn-magic": "^0.3.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/exec/node_modules/parse-json": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz",
"integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.26.2",
"index-to-position": "^1.1.0",
"type-fest": "^4.39.1"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/exec/node_modules/path-key": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/exec/node_modules/signal-exit": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
"license": "ISC",
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@semantic-release/exec/node_modules/strip-final-newline": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz",
"integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/git": { "node_modules/@semantic-release/git": {
"version": "10.0.1", "version": "10.0.1",
"resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz",

View File

@@ -1,6 +1,7 @@
{ {
"devDependencies": { "devDependencies": {
"@semantic-release/changelog": "^6.0.3", "@semantic-release/changelog": "^6.0.3",
"@semantic-release/exec": "^7.1.0",
"@semantic-release/git": "^10.0.1", "@semantic-release/git": "^10.0.1",
"semantic-release": "^24.2.5" "semantic-release": "^24.2.5"
}, },

View File

@@ -1,12 +0,0 @@
const fs = require("fs");
const path = require("path");
module.exports = async ({ nextRelease }) => {
const manifestPath = path.resolve(__dirname, "../manifest.json");
const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
manifest.version = nextRelease.version;
fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2));
console.log(`✅ Updated manifest.json to version ${nextRelease.version}`);
};

View File

@@ -0,0 +1,13 @@
const fs = require("fs");
const version = process.argv[2];
if (!version) {
console.error("❌ No version passed");
process.exit(1);
}
const manifest = JSON.parse(fs.readFileSync("manifest.json", "utf-8"));
manifest.version = version;
fs.writeFileSync("manifest.json", JSON.stringify(manifest, null, 2));
console.log(`✅ Updated manifest.json to version ${version}`);

3
versioning.md Normal file
View File

@@ -0,0 +1,3 @@
```
npx semantic-release --no-ci
```