|
32 | 32 |
|
33 | 33 | jobs: |
34 | 34 | publish: |
35 | | - uses: shobman/aidos/.github/workflows/confluence-publish.yml@main |
| 35 | + uses: shobman/aidos/.github/workflows/confluence-publish.yml@v1.0.0 |
36 | 36 | with: |
37 | 37 | manifest-path: .aidos/manifest.json |
38 | 38 | dry-run: ${{ github.event_name == 'pull_request' }} |
|
41 | 41 | confluence_token: ${{ secrets.CONFLUENCE_TOKEN }} |
42 | 42 | ``` |
43 | 43 |
|
| 44 | +> **Pin a tag, not `@main` or `@sha`.** AIDOS releases are tagged using semver (`vX.Y.Z`). Pinning to a tag means your workflow stays on a known-good version and only moves when you bump the pin. The tag to use is the current AIDOS framework version — see the `VERSION` file at the root of the AIDOS repo. |
| 45 | + |
44 | 46 | PRs dry-run (preview in the Actions log), merges to main publish for real. |
45 | 47 |
|
46 | 48 | If your repo has multiple `.aidos/` folders (e.g. a monorepo), omit `manifest-path` and the workflow will auto-discover all `manifest.json` files. |
@@ -186,6 +188,30 @@ Each connector reads only its own key and ignores the rest. |
186 | 188 |
|
187 | 189 | Validate your manifest against `manifest.schema.json` in this directory. |
188 | 190 |
|
| 191 | +## Org-Restricted Environments |
| 192 | + |
| 193 | +Some organisations block all public GitHub Actions by policy. If your org's workflow policy rejects `uses: shobman/aidos/...@v1.0.0`, you have two options: |
| 194 | + |
| 195 | +### Option 1 — Vendor the workflow |
| 196 | + |
| 197 | +Fork the AIDOS repo into your org, or copy `.github/workflows/confluence-publish.yml` and `src/connectors/confluence/` into an internal repo. Reference it by internal path instead: |
| 198 | + |
| 199 | +```yaml |
| 200 | + uses: your-org/internal-aidos/.github/workflows/confluence-publish.yml@v1.0.0 |
| 201 | +``` |
| 202 | +
|
| 203 | +Tag your internal fork with the same version as the upstream AIDOS release it's based on. When upstream cuts a new release, pull the changes in and re-tag. |
| 204 | +
|
| 205 | +### Option 2 — Inline the workflow |
| 206 | +
|
| 207 | +If forking isn't practical, write a workflow in your consuming repo that runs the publish script directly. You'll need to vendor `src/connectors/confluence/publish.js` (and its dependencies) into your repo as well. Track which upstream version you're based on in the workflow file's comments — the AIDOS version in your artifact files tells you which release's publish script to align with. |
| 208 | + |
| 209 | +### Tracking alignment |
| 210 | + |
| 211 | +In either option, the `**AIDOS Version:**` field in your artifact files is the source of truth for "what AIDOS version should this workflow be running". If artifacts are on v1.1.0, the workflow should be on the v1.1.0 release. Minor-version mismatches between artifacts and the workflow are not guaranteed compatible — migrate artifacts first, then bump the workflow pin. Patch-version drift is safe. |
| 212 | + |
| 213 | +--- |
| 214 | + |
189 | 215 | ## Develop |
190 | 216 |
|
191 | 217 | ### Get the code |
@@ -241,4 +267,4 @@ The script is ~700 lines, self-contained, ESM, uses Node 20+ built-in fetch. Fol |
241 | 267 |
|
242 | 268 | ### Versioning |
243 | 269 |
|
244 | | -No semver. The connector is versioned alongside the aidos repo. The GitHub Actions workflow pulls from `shobman/aidos@main` (or a pinned tag if you want stability). Bump the `CONNECTOR_VERSION` constant in `publish.js` to force republish of all pages — useful after output format changes. |
| 270 | +The connector is versioned alongside the aidos repo using semver (`vX.Y.Z`). Consumers pin the GitHub Actions workflow to a tag — see the Install section above for the tag-pinning requirement. Bump the `CONNECTOR_VERSION` constant in `publish.js` to force republish of all pages — useful after output format changes. |
0 commit comments