Skip to content

Commit d327435

Browse files
authored
Merge branch 'main' into ale-manifest-source-flag
2 parents 6ec8dc7 + 73dde37 commit d327435

33 files changed

Lines changed: 1791 additions & 451 deletions

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ jobs:
109109
default: "dev-build"
110110
docker: # run the steps with Docker
111111
# CircleCI Go images available at: https://hub.docker.com/r/circleci/golang/
112-
- image: cimg/go:1.26.6
112+
- image: cimg/go:1.27.1
113113
steps: # steps that comprise the `build` job
114114
- checkout # check out source code to working directory
115115
- restore_cache: # restores saved cache if no changes are detected since last run

.github/MAINTAINERS_GUIDE.md

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ pkg/
192192

193193
### `scripts/`
194194

195-
Installation and setup scripts for various operating systems are available here.
195+
Installation and setup scripts for various operating systems are available here,
196+
along with scripts that support the release process.
196197

197198
### `test/`
198199

@@ -526,15 +527,20 @@ For these changes to complete, certain application permissions are needed:
526527

527528
- **Actions**: Read and write
528529
- **Contents**: Read and write
530+
- **Issues**: Read and write
529531
- **Metadata**: Read
530532
- **Pull requests**: Read and write
531533
- **Workflows**: Read and write
532534

535+
The **Issues** permission is needed to create, rename, and close milestones.
536+
Note that adding a permission to the app is not enough on its own, since each
537+
existing installation must also be granted the new permission.
538+
533539
Access to this project is also required with the selected application scopes.
534540

535541
Credentials and secrets for the app can be stored as the following variables:
536542

537-
- `GH_APP_ID_RELEASER`
543+
- `GH_APP_CLIENT_ID_RELEASER`
538544
- `GH_APP_PRIVATE_KEY_RELEASER`
539545

540546
#### Bumping Go package versions
@@ -800,7 +806,16 @@ Steps to triage a pull request:
800806
4. **Milestone**:
801807
- A milestone should be assigned when possible, usually as the `Next Release`
802808
- After a release, the `Next Release` milestone is renamed to the tagged
803-
version
809+
version and closed, while a new `Next Release` milestone gathers the issues
810+
and pull requests that remain open
811+
- This happens automatically with [this workflow][wf-milestone] when a
812+
production release is published, but can also be done by hand:
813+
```sh
814+
$ DRY_RUN=true ./scripts/triage-milestone.sh v4.8.0
815+
$ ./scripts/triage-milestone.sh v4.8.0
816+
```
817+
- The `Next Release` milestone must keep this exact name because release and
818+
dependency automation assigns pull requests to it by title
804819

805820
#### Pull request: merge
806821

@@ -853,3 +868,4 @@ When in doubt, find the other maintainers and ask.
853868
[sync]: https://github.com/slackapi/slack-cli/blob/main/.github/workflows/sync-docs-from-cli-repo.yml
854869
[vscode]: https://github.com/slackapi/slack-cli/blob/main/.vscode/settings.json
855870
[wf-dependencies]: ./workflows/dependencies.yml
871+
[wf-milestone]: ./workflows/milestone.yml

.github/workflows/license_check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ jobs:
1717
with:
1818
persist-credentials: false
1919
- name: Check license headers
20-
uses: apache/skywalking-eyes@61275cc80d0798a405cb070f7d3a8aaf7cf2c2c1 # v0.8.0
20+
uses: apache/skywalking-eyes@a196742f472feaffafea537ce5a2a4c3c53a8de4 # v0.9.0
2121
with:
2222
config: .licenserc.yml

.github/workflows/milestone.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Milestone
2+
3+
on:
4+
release:
5+
types:
6+
- published
7+
workflow_dispatch:
8+
inputs:
9+
tag:
10+
description: The release tag to triage
11+
required: true
12+
type: string
13+
14+
concurrency: ${{ github.workflow }}
15+
16+
jobs:
17+
triage:
18+
name: Triage Milestone
19+
# Development and feature builds are published as prereleases by CircleCI
20+
if: >-
21+
github.event_name == 'workflow_dispatch' ||
22+
(github.event.release.prerelease == false && github.event.release.draft == false)
23+
runs-on: ubuntu-latest
24+
permissions:
25+
contents: read
26+
steps:
27+
- name: Gather credentials
28+
id: credentials
29+
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
30+
with:
31+
client-id: ${{ secrets.GH_APP_CLIENT_ID_RELEASER }}
32+
private-key: ${{ secrets.GH_APP_PRIVATE_KEY_RELEASER }}
33+
34+
- name: Checkout repo
35+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
36+
with:
37+
persist-credentials: false
38+
39+
- name: Decide the release tag
40+
id: release
41+
env:
42+
TAG: ${{ inputs.tag || github.event.release.tag_name }}
43+
run: |
44+
if [[ ! "$TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
45+
echo "The $TAG tag is not a production release, nothing to triage"
46+
echo "should_triage=false" >> "$GITHUB_OUTPUT"
47+
exit 0
48+
fi
49+
50+
echo "should_triage=true" >> "$GITHUB_OUTPUT"
51+
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
52+
echo "Triaging the milestone of $TAG"
53+
54+
- name: Triage the milestone
55+
if: steps.release.outputs.should_triage == 'true'
56+
env:
57+
GH_TOKEN: ${{ steps.credentials.outputs.token }}
58+
REPO: ${{ github.repository }}
59+
TAG: ${{ steps.release.outputs.tag }}
60+
run: ./scripts/triage-milestone.sh "$TAG"

.github/workflows/tests.yml

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,42 @@ jobs:
2020
- name: Set up Go
2121
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
2222
with:
23-
go-version: "1.26.6"
23+
go-version: "1.27.1"
2424
- name: Lint
2525
run: go tool golangci-lint run --timeout=5m
2626
- name: Unit Tests
2727
run: make test
28-
- name: Install Tests
29-
run: make test-install
3028
- name: Upload coverage to Codecov
3129
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
3230
with:
3331
token: ${{ secrets.CODECOV_TOKEN }}
3432
files: ./coverage.out
3533
fail_ci_if_error: false
3634

35+
install-tests:
36+
name: Install Tests
37+
strategy:
38+
fail-fast: false
39+
matrix:
40+
os:
41+
- macos-latest
42+
- ubuntu-latest
43+
- windows-latest
44+
runs-on: ${{ matrix.os }}
45+
permissions:
46+
contents: read
47+
steps:
48+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
49+
with:
50+
persist-credentials: false
51+
- name: Install Tests (Unix)
52+
if: runner.os != 'Windows'
53+
run: make test-install
54+
- name: Install Tests (Windows)
55+
if: runner.os == 'Windows'
56+
shell: pwsh
57+
run: ./scripts/install-windows-test.ps1
58+
3759
# Monitor code coverage and TODO/FIXME-type comments
3860
health-score:
3961
name: Health Score
@@ -49,7 +71,7 @@ jobs:
4971
- name: Set up Go
5072
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
5173
with:
52-
go-version: "1.26.6"
74+
go-version: "1.27.1"
5375
- name: Report health score
5476
uses: slackapi/slack-health-score@d58a419f15cdaff97e9aa7f09f95772830ab66f7 # v0.1.1
5577
with:

cmd/app/app.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ func NewCommand(clients *shared.ClientFactory) *cobra.Command {
5252
cmd.AddCommand(NewDeleteCommand(clients))
5353
cmd.AddCommand(NewLinkCommand(clients))
5454
cmd.AddCommand(NewListCommand(clients))
55+
cmd.AddCommand(NewRequestCommand(clients))
5556
cmd.AddCommand(NewSettingsCommand(clients))
5657
cmd.AddCommand(NewUninstallCommand(clients))
5758
cmd.AddCommand(NewUnlinkCommand(clients))

0 commit comments

Comments
 (0)