Skip to content

Merge authd-oidc-brokers repo#1203

Merged
adombeck merged 1142 commits intomainfrom
merge-brokers-repo
Jan 22, 2026
Merged

Merge authd-oidc-brokers repo#1203
adombeck merged 1142 commits intomainfrom
merge-brokers-repo

Conversation

@adombeck
Copy link
Copy Markdown
Contributor

Merge the previously independent authd-oidc-brokers repo as a subdirectory into the authd repo.

The main motivation is that it allows the e2e-tests to test changes to the authd repo and the brokers repo at the same time.

UDENG-8815

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 21, 2026

✅dependabot config looks good 👍

@adombeck adombeck force-pushed the merge-brokers-repo branch 7 times, most recently from b5580ff to 6b560c7 Compare January 21, 2026 18:06
@adombeck adombeck marked this pull request as ready for review January 21, 2026 22:23
denisonbarbosa and others added 19 commits January 22, 2026 12:29
Create a symlink e2e-tests/resources/broker which points to the broker
implementation that's used by the tests and is updated by
run_tests.sh.

It's not perfect because code navigation will always navigate to the
broker implementation which was last used in tests, but it's way better
than no code navigation at all.
The spelling where the keyword is written in one word breaks code
navigation in my IDE.
Using ${CURDIR} breaks code navigation in my IDE
The latter seems to be supported by robot framework but not by IDE.
It's hard to debug failures without the command output.
I encountered the issue that the port 5900 was already in use by another
VM which caused the tests to fail.

Let libvirt assign a free VNC port instead and tell YARF to use that
port.
Arguments can now be passed to yarf after a `--`.

Note that yarf itself passes arguments to robot (the robot framework
executable) after a `--`, so we can now pass arguments to robot after
two `--`, for example:

    e2e-tests/run_tests.sh -- -- --loglevel DEBUG
* Avoids reusing the same run dir each time, allowing to look at the
  results of previous runs
* More easily discoverable since it's in the repo (but ignored in
  .gitignore to avoid untracked files).
... and a e2e-tests/vm/ssh.sh script to connect to the VM via SSH.

The provisioning script does all the steps necessary before running the
tests, including installation and configuration of authd and the brokers
and creation of snapshots.

We now use public key authentication when connecting to the VM via SSH,
so the provisioning script requires an SSH public key as argument.

Using public key authentication allows us to avoid using sshpass and is
more secure, because it avoids that other libvirt VMs using the default
network can access the e2e-runner.
We're using pipes in the script, and in general it's good practice to
always set pipefail in bash scripts.
The script automates the setup of YARF for the end-to-end tests. It
stores yarf in a gitignored directory which is automatically used by
the run_test.sh script.
dependabot Bot and others added 24 commits January 22, 2026 12:29
Bumps the minor-updates group in /tools with 2 updates: [github.com/golangci/golangci-lint/v2](https://github.com/golangci/golangci-lint) and [golang.org/x/mod](https://github.com/golang/mod).

Updates `github.com/golangci/golangci-lint/v2` from 2.7.2 to 2.8.0
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/main/CHANGELOG.md)
- [Commits](golangci/golangci-lint@v2.7.2...v2.8.0)

Updates `golang.org/x/mod` from 0.31.0 to 0.32.0
- [Commits](golang/mod@v0.31.0...v0.32.0)

---
updated-dependencies:
- dependency-name: github.com/golangci/golangci-lint/v2
  dependency-version: 2.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-updates
- dependency-name: golang.org/x/mod
  dependency-version: 0.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [third_party/libhimmelblau](https://gitlab.com/samba-team/libhimmelblau) from `974469c` to `0836d46`.
- [Commits](https://gitlab.com/samba-team/libhimmelblau/compare/974469c18bad11c1ab3d51156255fcbd26750e5a...0836d4695f08c12dd6fb49adc984a219008d9a81)

---
updated-dependencies:
- dependency-name: third_party/libhimmelblau
  dependency-version: '0836d4695f08c12dd6fb49adc984a219008d9a81'
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
When trying to log in as a user which doesn't have a local password yet
and the broker fails to connect to the provider, we showed this error:

    could not get authentication modes: no authentication modes available for user "user@example.com"

That's not very helpful, as it doesn't tell the user why there are no
authentication modes available. This commit shows the error message:

    Error connecting to provider. Check your network connection.

UDENG-8817
Merge the previously independent authd-oidc-brokers repo as a
subdirectory into the authd repo.
We already have these in the root directory of the monorepo.
Fixes fetching submodules to fail with:

    /usr/bin/git submodule sync --recursive
    /usr/bin/git -c protocol.version=2 submodule update --init --force --depth=1 --recursive
    Error: fatal: No url found for submodule path 'authd-oidc-brokers/third_party/libhimmelblau' in .gitmodules
We want to do word splitting on flags
Fixes the libhimmelblau build to fail with:

    current package believes it's in a workspace when it's not
* Remove surrounding $() to avoid executing output (or use eval if intentional). [SC2091]
* Double quote array expansions to avoid re-splitting elements. [SC2068]
Same as for the qa workflow, see 768fd5a
Two reasons:
* I couldn't get the version script to work when the snap/ directory was
  not in the git root directory, because it doesn't find the .git
  directory.
* The Launchpad snap package requires a git branch which contains a top
  level snap/snapcraft.yaml.
It can happen that the version part is built twice:

    execute action version:Action(part_name='version', step=Step.BUILD, action_type=ActionType.RUN, reason=None, project_vars=ProjectVarInfo(root={}), properties=ActionProperties(changed_files=None, changed_dirs=None))
    [...]
    execute action version:Action(part_name='version', step=Step.BUILD, action_type=ActionType.UPDATE, reason="'PULL' step changed", project_vars=ProjectVarInfo(root={}), properties=ActionProperties(changed_files=[], changed_dirs=['.git', 'snap']))

Both try to set the version, resulting in:

    RuntimeError: 'override-build' in part 'version' executed an invalid control API call: variable 'version' can be set only once.

This commit only sets the version if it wasn't set before.
Rename

    github.com/ubuntu/authd-oidc-brokers

to

    github.com/canonical/authd/authd-oidc-brokers
We're merging the github.com/ubuntu/authd-oidc-brokers repo into the
github.com/canonical/authd repo, so replace the links accordingly.

Also, since "website" and "source-code" would point to the same URL,
make "website" point to the documentation instead.
To make it more obvious that it do not contain the broker QA jobs.
@adombeck adombeck merged commit d989e18 into main Jan 22, 2026
12 of 14 checks passed
@adombeck adombeck deleted the merge-brokers-repo branch January 22, 2026 11:34
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.

5 participants