Skip to content

Honor explicit organizations when listing builds and jobs - #995

Merged
mcncl merged 5 commits into
mainfrom
fix/associated_org
Sep 16, 2026
Merged

mcncl merged 5 commits into
mainfrom
fix/associated_org

Conversation

@mcncl

@mcncl mcncl commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Description

With acme selected, bk build list --pipeline other/widgets could query acme/widgets instead. Job listing could similarly use the wrong organization or credentials.

Qualified pipeline slugs and URLs now consistently determine the organization used for listing, creator lookup, credentials, and output, without changing the selected organization.

Changes

  • Before: explicit pipeline organizations could be ignored, and missing target credentials could silently fall back to another organization's credentials
  • After: commands use the target organization and fail with actionable authentication guidance when its credentials are missing
  • Explicit BUILDKITE_API_TOKEN values remain authoritative and are never replaced by stored OAuth credentials after a 401
  • Clarify supported pipeline formats, missing organization context, and the fact that login updates the user-wide selected organization

Compatibility: users relying on cross-organization credential fallback must now run bk auth login --org other or explicitly supply BUILDKITE_API_TOKEN.

Testing

  • mise test passes
  • mise fmt ran
  • Regression coverage for organization selection, credentials, refresh behavior, and output identity

mcncl and others added 5 commits September 16, 2026 06:27
Do not borrow another organization’s stored identity or refresh an explicit environment token. Cover missing credentials and refresh ownership directly at the factory boundary.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0a3e8-c21d-725c-b208-9217f9c74e75
Co-authored-by: Amp <[email protected]>
Fail before API requests when the target has no credentials, and explain how to authenticate it without silently selecting another identity.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0a3e8-c21d-725c-b208-9217f9c74e75
Co-authored-by: Amp <[email protected]>
Distinguish a bare slug lacking organization context from malformed input, and offer a qualified pipeline or configuration as the remedy.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0a3e8-c21d-725c-b208-9217f9c74e75
Co-authored-by: Amp <[email protected]>
Resolve the target before credential validation and creator lookup so requests and output agree without changing the selected organization. Exercise both listing commands through the same organization and authentication matrix.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0a3e8-c21d-725c-b208-9217f9c74e75
Co-authored-by: Amp <[email protected]>
Make the no-fallback policy and login selection side effect explicit, with examples for targeting another organization without changing the default.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0a3e8-c21d-725c-b208-9217f9c74e75
Co-authored-by: Amp <[email protected]>
@mcncl
mcncl requested review from a team as code owners September 16, 2026 06:33

@buildsworth-bk-app buildsworth-bk-app Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This changes which organization's stored credential is sent and when OAuth refresh can replace it, so it needs human sign-off. I found no code-level concerns.

Want to dig deeper?

Paste this into your agent to explore the findings from this review's Buildkite build:

Download the buildsworth logs from build 28994, then answer my questions about the findings.

Install the reading-buildsworth-logs skill to run this.

About buildsworth

Model: gpt-5.6-sol with xhigh thinking.

How to request a review: Comment @buildsworth-bk review on the PR, or request buildsworth-bk as a reviewer.

Risk labels (how buildsworth classifies risk) — buildsworth classifies risk itself from the diff. Unless repository policy already allows L2 approval, grant it by mentioning @buildsworth-bk (see approval ceiling and L2 approval grant):

  • L1 — Low risk (dep bumps, docs/copy, lockfiles, small presentational fixes). buildsworth may approve by default.
  • L2 — Standard risk (new UI, additive API fields, refactors). Approved only when repository policy or a verified grant allows it; otherwise comment-only.
  • L3 — High risk (auth, migrations, payments, secrets, perf-critical pipeline paths). Human review always required.

@buildsworth-bk-app
buildsworth-bk-app Bot removed the request for review from buildsworth-bk September 16, 2026 06:36
@mcncl
mcncl merged commit 696c051 into main Sep 16, 2026
2 checks passed
@mcncl
mcncl deleted the fix/associated_org branch September 16, 2026 23:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants