Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
14 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# CODEOWNERS — auto-requests review from the listed owners on matching paths.
# Syntax: https://docs.github.com/articles/about-code-owners
# Owners are the team @RWS/ish plus named maintainer @ddemeyer (so there is always at
# least one individual). The team and the user must have Write access, otherwise GitHub
# silently ignores the rule.

# Default owner for everything in the repo (the "implementer" the instructions refer to).
* @RWS/ish @ddemeyer

# --- Contract-sensitive surfaces: changes here need implementer approval ---

# Public object model = backward-compatibility contract (PS1 scripts + Pester bind to it),
# tightly correlated with ISHRemote.Format.ps1xml.
/Source/ISHRemote/Trisoft.ISHRemote/Objects/ @RWS/ish @ddemeyer
/Source/ISHRemote/Trisoft.ISHRemote/ISHRemote.Format.ps1xml @RWS/ish @ddemeyer

# Self-contained authentication + proxy stack (WS-Trust / OpenID Connect over SOAP & REST).
/Source/ISHRemote/Trisoft.ISHRemote/Connection/ @RWS/ish @ddemeyer

# Cmdlet surface: names, parameters and parameter sets are public contract.
/Source/ISHRemote/Trisoft.ISHRemote/Cmdlets/ @RWS/ish @ddemeyer

# Public PowerShell functions that ship inside the module (exported library surface).
/Source/ISHRemote/Trisoft.ISHRemote/Scripts/Public/ @RWS/ish @ddemeyer

# Build, versioning and packaging.
/Source/ISHRemote/Directory.Build.props @RWS/ish @ddemeyer
/Source/ISHRemote/Trisoft.ISHRemote/Trisoft.ISHRemote.csproj @RWS/ish @ddemeyer

# Repo guidance for humans and the cloud agent.
/.github/ @RWS/ish @ddemeyer
101 changes: 101 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Bug report
description: Report a problem with an ISHRemote cmdlet, authentication, or behavior.
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to file a bug. Please **anonymize** everything you paste:
no real server URLs, usernames, passwords, client ids/secrets, or tokens — use
`https://example.com/ISHWS/` style placeholders.
- type: textarea
id: what-happened
attributes:
label: What happened (actual result)
description: What did you observe? Include the exact error message text if any.
placeholder: e.g. Get-IshDocumentObj throws "[-14] The access is denied ..."
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected result
description: What did you expect to happen instead?
validations:
required: true
- type: textarea
id: repro
attributes:
label: Minimal repro script (anonymized)
description: The smallest cmdlet sequence that reproduces it. Assume an existing `$ishSession`.
render: powershell
placeholder: |
# New-IshSession -WsBaseUrl "https://example.com/ISHWS/" ...
Get-IshFolder -BaseFolder Data
validations:
required: true
- type: input
id: ishremote-version
attributes:
label: ISHRemote version
description: "`(Get-Module ISHRemote).Version` or `$ishSession.ClientVersion`"
placeholder: e.g. 8.2.13525.0
validations:
required: true
- type: textarea
id: powershell-host
attributes:
label: PowerShell host & version
description: "Output of `$PSVersionTable` (PSEdition, PSVersion, OS)."
render: text
placeholder: e.g. PSEdition Core, PSVersion 7.6.0 on .NET 10.0.5, Windows
validations:
required: true
- type: input
id: server-version
attributes:
label: Tridion Docs / InfoShare server version
description: "`$ishSession.ServerVersion`, e.g. 14.0.4, 15.2.0, 15.3.0"
placeholder: e.g. 15.3.0
validations:
required: true
- type: dropdown
id: protocol
attributes:
label: Protocol
description: "`$ishSession.Protocol` — which connection protocol was in use?"
options:
- "WcfSoapWithWsTrust (legacy, ≤14.x / forced)"
- "WcfSoapWithOpenIdConnect (15.x SOAP over OpenID Connect)"
- "OpenApiWithOpenIdConnect (REST)"
- "Not sure"
validations:
required: true
- type: dropdown
id: auth-flow
attributes:
label: Authentication flow
options:
- "Interactive System Browser (Authorization Code + PKCE)"
- "Client Credentials (-ClientId / -ClientSecret)"
- "Username/Password or NetworkCredential (WS-Trust)"
- "Not sure"
validations:
required: false
- type: textarea
id: logs
attributes:
label: Verbose / debug output (anonymized)
description: Re-run with `-Verbose` (and `-Debug` if useful) and paste the relevant lines. Scrub URLs/secrets/tokens.
render: text
validations:
required: false
- type: checkboxes
id: confirm
attributes:
label: Before submitting
options:
- label: I removed all real URLs, credentials, client secrets, and tokens from this report.
required: true
- label: I searched existing issues for a duplicate.
required: true
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: true
contact_links:
- name: RWS Community — Tridion Docs Developers forum
url: https://community.rws.com/product-groups/tridion-docs/
about: Questions about usage, the "Web Services API", or Tridion Docs itself (not ISHRemote bugs).
- name: Report a security vulnerability
url: https://community.rws.com
about: Please do not file public issues for security reports — see SECURITY.md and reach out here.
- name: ISHRemote documentation & release notes
url: https://github.com/RWS/ISHRemote/tree/master/Doc
about: Installation, ReleaseNotes, ThePlan and TheExecution background reading.
79 changes: 79 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Feature request / idea
description: Propose a new cmdlet, parameter or capability — or just drop an idea from your notes.
title: "Add cmdlet Verb-IshNoun to <capability>"
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Drop the idea like a design note — write as much or as little as you like (a blank free-text
issue is fine too). Roadmap reasoning lives in `Doc/ThePlan-ISHRemote-*.md` and
`Doc/TheExecution-ISHRemote-*.md`, and feature notes in this style are issues like #126, #120,
#70 and #229.
- type: textarea
id: idea
attributes:
label: Idea
description: |
A quick drop of the idea — what should ISHRemote be able to do, and what are you trying to
automate? What's painful or impossible today? Link any community.rws.com thread.
placeholder: |
Similar to Get-IshFolderContent, people want to know which IshDocumentObj are directly
linked to an IshPublicationOutput (baseline-selected versions only, no LatestAvailable
completion).
validations:
required: true
- type: textarea
id: today
attributes:
label: What's possible today (starting point / workaround)
description: |
The closest existing cmdlet to start from, and how you work around the gap now — a raw
`$ishSession.<Service>25.<Method>(...)` SOAP call is a perfect illustration.
placeholder: |
Starting point is Get-IshPublicationOutputData (it downloads the generated CHM/PDF/ZIP).
There is no cmdlet yet that returns the *content objects* used by the publication.
validations:
required: false
- type: textarea
id: proposal
attributes:
label: Proposed cmdlet(s) and parameters
description: |
Sketch the shape. Conventions: `Verb-IshNoun` (approved verb), **singular** parameter names,
`-WhatIf`/`-Confirm` on writes, parameter *groups* (sets) like `IshObjectGroup` /
`ParameterGroup` with mandatory/optional + defaults, and typed `Ish*` pipeline output. If you
know the backing Web Services API function, name it — SOAP `EventMonitor25.DeleteByProgressId`
or OpenAPI `OpenApiISH30Client.GetDocumentObjectListByLogicalIdAsync`. New work biases toward
`OpenApiWithOpenIdConnect` where server parity exists (15.3.0+).
render: powershell
placeholder: |
Remove-IshEvent
# IshEventGroup (preferred — respects incoming pipeline objects)
-IshEvent <IshEvent[]> # mandatory, typically from Get-IshEvent
-DeleteFailedEvent <bool> # optional, default $true
# ParameterGroup
-ProgressId <long[]> # note: ProgressId is not stable API surface
# backs onto EventMonitor25.DeleteByProgressId
validations:
required: false
- type: textarea
id: ideas
attributes:
label: Ideas, spikes & related issues
description: |
Optional parameters, future spikes, scope you explicitly exclude, related issues (#nnn), and
which `*.Tests.ps1` already holds suitable multi-version test data to extend.
placeholder: |
- Optional -AutoCompleteMode (LatestAvailable/LatestReleased) for a later iteration.
- Test data: see AddBackgroundTask.Tests.ps1 / AddIshPublicationOutput.Tests.ps1.
- Related: #222.
validations:
required: false
- type: checkboxes
id: contribute
attributes:
label: Contribution
options:
- label: I'd be up for opening a PR for this (guidance is welcome).
required: false
Loading
Loading