Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ body:
attributes:
label: CodeClone version
description: Output of `codeclone --version`
placeholder: "2.0.0b4"
placeholder: "2.0.0"
validations:
required: true

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/cfg_semantics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ body:
id: version
attributes:
label: CodeClone version
placeholder: "2.0.0b4"
placeholder: "2.0.0"

- type: textarea
id: scenario
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/false_positive.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ body:
id: version
attributes:
label: CodeClone version
placeholder: "2.0.0b4"
placeholder: "2.0.0"
validations:
required: true

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/mcp_server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ body:
attributes:
label: CodeClone version
description: Output of `codeclone --version`
placeholder: "2.0.0b4"
placeholder: "2.0.0"
validations:
required: true

Expand Down
35 changes: 21 additions & 14 deletions .github/actions/codeclone/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,19 @@ source under test. Remote consumers still install from PyPI.
## Basic usage

```yaml
- uses: orenlab/codeclone/.github/actions/codeclone@main
- uses: orenlab/codeclone/.github/actions/codeclone@v2
with:
fail-on-new: "true"
```

For released references, prefer pinning to a major version tag such as `@v2`
or to an immutable commit SHA.
For strict reproducibility, pin the full release tag:

```yaml
- uses: orenlab/codeclone/.github/actions/[email protected]
```

For long-lived workflows, `@v2` follows the latest compatible 2.x action
metadata.

## PR workflow example

Expand All @@ -61,7 +67,7 @@ jobs:
with:
fetch-depth: 0

- uses: orenlab/codeclone/.github/actions/codeclone@main
- uses: orenlab/codeclone/.github/actions/codeclone@v2
with:
fail-on-new: "true"
fail-health: "60"
Expand All @@ -74,7 +80,7 @@ jobs:
| Input | Default | Purpose |
|-------------------------|---------------------------------|-------------------------------------------------------------------------------------------------------------------|
| `python-version` | `3.14` | Python version used to run the action |
| `package-version` | `""` | CodeClone version from PyPI for remote installs; ignored when the action runs from the checked-out CodeClone repo |
| `package-version` | `2.0.0` | CodeClone version from PyPI for remote installs; ignored when the action runs from the checked-out CodeClone repo |
| `path` | `.` | Project root to analyze |
| `json-path` | `.cache/codeclone/report.json` | JSON report output path |
| `sarif` | `true` | Generate SARIF and try to upload it |
Expand Down Expand Up @@ -136,26 +142,27 @@ Notes:
- if you only want gating and JSON output, you can disable `sarif` and
`pr-comment`

## Stable vs prerelease installs
## Install policy

Released action tags pin the PyPI package version in action metadata. For
example, `@v2.0.0` installs `codeclone==2.0.0` unless you override
`package-version`.

Stable:
Explicit prerelease or smoke-test override:

```yaml
with:
package-version: ""
package-version: "<version>"
```

Explicit prerelease:
Local/self-repo validation:

```yaml
with:
package-version: "2.0.0b4"
- uses: ./.github/actions/codeclone
```

Local/self-repo validation:

- `uses: ./.github/actions/codeclone` installs CodeClone from the checked-out
repository source, so beta branches and unreleased commits do not depend on
repository source, so release branches and unreleased commits do not depend on
PyPI publication.

## Notes and limitations
Expand Down
Loading
Loading