Skip to content

Commit 0aef8c8

Browse files
authored
Merge branch 'main' into fix-stale-host-reservation-on-cross-host-start
2 parents 98ec46c + 4ce5291 commit 0aef8c8

1,761 files changed

Lines changed: 2218051 additions & 9997 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.asf.yaml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
# under the License.
1717

1818
# https://cwiki.apache.org/confluence/display/INFRA/git+-+.asf.yaml+features
19-
---
2019
github:
2120
description: "Apache CloudStack is an opensource Infrastructure as a Service (IaaS) cloud computing platform"
2221
homepage: https://cloudstack.apache.org/
@@ -57,8 +56,26 @@ github:
5756
- Damans227
5857
- jmsperu
5958
- GaOrtiga
59+
- bhouse-nexthop
60+
- Dogface2k
61+
- prashanthr2
6062

61-
protected_branches: ~
63+
rulesets:
64+
- name: "Default Branch Protection"
65+
type: branch
66+
branches:
67+
includes:
68+
- "~DEFAULT_BRANCH"
69+
excludes: []
70+
bypass_teams:
71+
- root
72+
restrict_deletion: true
73+
restrict_force_push: true
74+
75+
copilot_code_review:
76+
enabled: true
77+
review_drafts: false
78+
review_on_push: true
6279

6380
notifications:
6481
commits: commits@cloudstack.apache.org

.codespellrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@
1717

1818
[codespell]
1919
ignore-words = .github/linters/codespell.txt
20-
skip = systemvm/agent/noVNC/*,ui/package.json,ui/package-lock.json,ui/public/js/less.min.js,ui/public/locales/*.json,server/src/test/java/org/apache/cloudstack/network/ssl/CertServiceTest.java,test/integration/smoke/test_ssl_offloading.py
20+
skip = systemvm/agent/noVNC/*,ui/package.json,ui/package-lock.json,ui/public/js/less.min.js,ui/public/locales/*.json,server/src/test/java/org/apache/cloudstack/network/ssl/CertServiceTest.java,test/integration/smoke/test_ssl_offloading.py,tools/apidoc-versions-diff/*

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
/plugins/storage/volume/linstor @rp-
1919
/plugins/storage/volume/storpool @slavkap
20-
/plugins/storage/volume/ontap @rajiv1 @sandeeplocharla @piyush5 @suryag
20+
/plugins/storage/volume/ontap @rajiv-jain-netapp @sandeeplocharla @piyush5netapp @suryag1201
2121

2222
.pre-commit-config.yaml @jbampton
2323
/.github/linters/ @jbampton

.github/COPILOT_TOKENS.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
<!--
2+
Licensed to the Apache Software Foundation (ASF) under one
3+
or more contributor license agreements. See the NOTICE file
4+
distributed with this work for additional information
5+
regarding copyright ownership. The ASF licenses this file
6+
to you under the Apache License, Version 2.0 (the
7+
"License"); you may not use this file except in compliance
8+
with the License. You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing,
13+
software distributed under the License is distributed on an
14+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
KIND, either express or implied. See the License for the
16+
specific language governing permissions and limitations
17+
under the License.
18+
-->
19+
20+
# Contributing a Copilot token for the agentic workflows
21+
22+
This repo runs scheduled [GitHub Agentic Workflows](https://github.github.com/gh-aw/) (the
23+
`*.lock.yml` files compiled from `*.md` in `.github/workflows/`) that drive the GitHub Copilot
24+
CLI. Each run needs a GitHub token from an account with an active Copilot license. So that no
25+
single person's Copilot quota gets burned through, runs rotate day by day across a pool of
26+
volunteer tokens.
27+
28+
If you have a Copilot license and want to help share the load, add your token to the pool.
29+
30+
## What kind of token
31+
32+
- A fine-grained personal access token. Classic PATs don't work with the Copilot CLI.
33+
- Resource owner: your own personal account.
34+
- Permission: Account permissions > "Copilot Requests" > Read. That's the only permission it
35+
needs, no repo access.
36+
- Your account must have an active Copilot seat.
37+
38+
Create it at <https://github.com/settings/personal-access-tokens/new>. Give it a sensible
39+
expiration; when it lapses the health check (below) will flag it and you can re-add it.
40+
41+
## How to add it
42+
43+
1. Pick a short alias for yourself, e.g. `t1`, `t2`, `vol3`. The alias shows up in workflow logs,
44+
so keep it non-identifying if you prefer.
45+
2. Add your token as a repository secret named `COPILOT_GITHUB_TOKEN_<alias>`
46+
(e.g. `COPILOT_GITHUB_TOKEN_t1`). Repo admins do this via
47+
*Settings > Secrets and variables > Actions > New repository secret*, or:
48+
```
49+
gh secret set COPILOT_GITHUB_TOKEN_t1 --body "github_pat_xxx"
50+
```
51+
3. Ask a repo admin to register the alias by appending it to the repository variable
52+
`GH_AW_COPILOT_TOKEN_NAMES`, which is a JSON array:
53+
```
54+
gh variable set GH_AW_COPILOT_TOKEN_NAMES --body '["t1","t2","t3"]'
55+
```
56+
The workflows can't enumerate secrets, so this variable is the source of truth for the pool.
57+
A token isn't used until its alias is listed there.
58+
59+
## How rotation works (for maintainers)
60+
61+
Each agent workflow (`weekly-repo-status`, `daily-issue-triage`) defines a `pick_copilot_token`
62+
job in its `.md` source. The job has to run outside the agent job because strict mode forbids
63+
reading secrets there. It picks today's alias by day-of-year mod N, checks the token is live
64+
(`GET /user` returns 200, otherwise it moves on to the next candidate) and outputs the chosen
65+
alias. The token value itself never crosses jobs. The two workflows use different
66+
`ROTATION_SLOT`s, which start them half the pool apart so they don't land on the same
67+
volunteer on the same day (with at least two tokens in the pool).
68+
69+
The agent job resolves the secret itself via
70+
`secrets[format('COPILOT_GITHUB_TOKEN_{0}', needs.pick_copilot_token.outputs.name)]` and falls
71+
back to the base `COPILOT_GITHUB_TOKEN` when the pick job outputs an empty name. Keep the base
72+
secret set to one reliable token.
73+
74+
`gh aw compile` doesn't know about this wiring, so after editing the `.md` sources run:
75+
76+
```
77+
gh aw compile && bash .github/scripts/post-compile.sh
78+
```
79+
80+
See the header of `.github/scripts/post-compile.sh` for what it patches.
81+
82+
To check the pool, trigger the "Copilot token health" workflow
83+
(`.github/workflows/copilot-token-health.yml`) from the Actions tab. It prints an HTTP status
84+
code per alias and nothing else, so no account identities end up in logs. Note it can't tell
85+
when a token is live but has used up its monthly Copilot requests.
86+
87+
## Removing a token
88+
89+
Delete the `COPILOT_GITHUB_TOKEN_<alias>` secret and remove `<alias>` from
90+
`GH_AW_COPILOT_TOKEN_NAMES`.

.github/aw/imports/github/gh-aw/359795d49ada21681ab616bd4cbcb144a7387115/.github_workflows_shared_reporting.md

Lines changed: 0 additions & 73 deletions
This file was deleted.

.github/aw/imports/github/gh-aw/94662b1dee8ce96c876ba9f33b3ab8be32de82a4/.github_workflows_shared_reporting.md

Lines changed: 0 additions & 73 deletions
This file was deleted.

.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,14 @@ updates:
4141
interval: "daily"
4242
cooldown:
4343
default-days: 7
44+
- package-ecosystem: "pre-commit"
45+
directory: "/"
46+
open-pull-requests-limit: 2
47+
schedule:
48+
interval: "weekly"
49+
groups:
50+
pre-commit-hooks:
51+
patterns:
52+
- "*"
53+
cooldown:
54+
default-days: 7

.github/linters/codespell.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,8 @@ environmnet
184184
equivalant
185185
erro
186186
erronous
187+
errorprone
188+
everthing
187189
everytime
188190
excute
189191
execept

0 commit comments

Comments
 (0)