mirror of
https://github.com/andwati/kget-capture.git
synced 2026-11-05 11:42:20 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59b18e69a8
|
||
|
|
816ae5797a
|
@@ -18,11 +18,34 @@ jobs:
|
|||||||
- name: Package extension
|
- name: Package extension
|
||||||
# Chrome requires manifest.json at the zip root, both for Web Store
|
# Chrome requires manifest.json at the zip root, both for Web Store
|
||||||
# upload and for manually loading unpacked -- so this one archives
|
# upload and for manually loading unpacked -- so this one archives
|
||||||
# only extension/'s contents, not the whole repo.
|
# only extension/'s contents, not the whole repo. Keeps the pinned
|
||||||
|
# "key" field, so unpacked loads get the stable, predictable ID.
|
||||||
run: |
|
run: |
|
||||||
cd extension
|
cd extension
|
||||||
zip -r "../kget-capture-extension-${GITHUB_REF_NAME}.zip" .
|
zip -r "../kget-capture-extension-${GITHUB_REF_NAME}.zip" .
|
||||||
|
|
||||||
|
- name: Package extension for Web Store upload
|
||||||
|
# The Chrome Web Store dashboard rejects any manifest containing a
|
||||||
|
# "key" field ("key field is not allowed in manifest") -- it assigns
|
||||||
|
# its own permanent ID on first publish instead. Strip it from a
|
||||||
|
# copy so this zip is upload-ready; the other extension zip above
|
||||||
|
# keeps "key" for stable unpacked/dev IDs.
|
||||||
|
run: |
|
||||||
|
rm -rf /tmp/store-extension
|
||||||
|
cp -r extension /tmp/store-extension
|
||||||
|
python3 -c "
|
||||||
|
import json
|
||||||
|
path = '/tmp/store-extension/manifest.json'
|
||||||
|
with open(path) as f:
|
||||||
|
manifest = json.load(f)
|
||||||
|
manifest.pop('key', None)
|
||||||
|
with open(path, 'w') as f:
|
||||||
|
json.dump(manifest, f, indent=2)
|
||||||
|
f.write('\n')
|
||||||
|
"
|
||||||
|
cd /tmp/store-extension
|
||||||
|
zip -r "$OLDPWD/kget-capture-store-${GITHUB_REF_NAME}.zip" .
|
||||||
|
|
||||||
- name: Package source
|
- name: Package source
|
||||||
# Separately, the native-host installer bundle (install.sh,
|
# Separately, the native-host installer bundle (install.sh,
|
||||||
# native-host/, keys/) needs the whole repo. git archive only
|
# native-host/, keys/) needs the whole repo. git archive only
|
||||||
@@ -36,4 +59,5 @@ jobs:
|
|||||||
files: |
|
files: |
|
||||||
kget-capture-${{ github.ref_name }}.zip
|
kget-capture-${{ github.ref_name }}.zip
|
||||||
kget-capture-extension-${{ github.ref_name }}.zip
|
kget-capture-extension-${{ github.ref_name }}.zip
|
||||||
|
kget-capture-store-${{ github.ref_name }}.zip
|
||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
|
|||||||
@@ -115,7 +115,19 @@ Store listing); that step can't be scripted.
|
|||||||
|
|
||||||
Prebuilt releases are published on the
|
Prebuilt releases are published on the
|
||||||
[Releases page](https://github.com/andwati/kget-capture/releases); each
|
[Releases page](https://github.com/andwati/kget-capture/releases); each
|
||||||
`vX.Y.Z` tag push builds and publishes one automatically.
|
`vX.Y.Z` tag push builds and publishes one automatically, as three zips:
|
||||||
|
|
||||||
|
- `kget-capture-vX.Y.Z.zip`: full source, for `install.sh`/`install-remote.sh`.
|
||||||
|
- `kget-capture-extension-vX.Y.Z.zip`: just the extension, manifest at the
|
||||||
|
zip root, `key` field intact, for manual "Load unpacked" installs.
|
||||||
|
- `kget-capture-store-vX.Y.Z.zip`: same extension, but with `key` stripped,
|
||||||
|
for uploading to the Chrome Web Store dashboard. The Store rejects any
|
||||||
|
manifest containing `key` ("key field is not allowed in manifest") since
|
||||||
|
it assigns its own permanent ID on first publish, which won't match the
|
||||||
|
pinned ID (`keys/extension-id.txt`) the other zips use. After the first
|
||||||
|
successful Store publish, update `native-host/com.kget_capture.host.json`'s
|
||||||
|
`allowed_origins` to include the Store-assigned ID alongside the pinned
|
||||||
|
one, so both installs can reach the native host.
|
||||||
|
|
||||||
## Known limitations
|
## Known limitations
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"name": "KGet Capture",
|
"name": "KGet Capture",
|
||||||
"version": "1.0.5",
|
"version": "1.0.6",
|
||||||
"description": "Send browser downloads to KGet (KDE Download Manager) on Linux.",
|
"description": "Send browser downloads to KGet (KDE Download Manager) on Linux.",
|
||||||
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtM1nFg5pPd3UBzynUJHj6aUy7bjudZaX9AQTWGMqAX3fXylw1lubSzP1/BaS9ivvgOJg/loyEgzEZlcNPzblFVlg8BqEJ3tntdk2OzYvUs0pUdcPzzyjso9TykCkUUTI7ev8JkreW/FYlinfvNwSYN4/c1s3h8/I6XHtxOdmO1G3bS98+BQaXPldbDmxoKwyWR8u1f8gTO2Mg3GY4BHau3RWf1kgtNzh20p9wE3sEFdWkFu7ArgRCIrWLh6m3O6lolnHQSCWPwtOTx893Qkp9Eu6FwUnoWc8rsYx8sqa0eNCTCS6Kjr1Iu3yEJ5y9390jUiDZTQ/c62ueCTQaYv2bwIDAQAB",
|
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtM1nFg5pPd3UBzynUJHj6aUy7bjudZaX9AQTWGMqAX3fXylw1lubSzP1/BaS9ivvgOJg/loyEgzEZlcNPzblFVlg8BqEJ3tntdk2OzYvUs0pUdcPzzyjso9TykCkUUTI7ev8JkreW/FYlinfvNwSYN4/c1s3h8/I6XHtxOdmO1G3bS98+BQaXPldbDmxoKwyWR8u1f8gTO2Mg3GY4BHau3RWf1kgtNzh20p9wE3sEFdWkFu7ArgRCIrWLh6m3O6lolnHQSCWPwtOTx893Qkp9Eu6FwUnoWc8rsYx8sqa0eNCTCS6Kjr1Iu3yEJ5y9390jUiDZTQ/c62ueCTQaYv2bwIDAQAB",
|
||||||
"permissions": ["downloads", "contextMenus", "storage", "nativeMessaging"],
|
"permissions": ["downloads", "contextMenus", "storage", "nativeMessaging"],
|
||||||
|
|||||||
Reference in New Issue
Block a user