agama/.github/workflows/ci-doc-check.yml
Ladislav Slezák c738625962
Support for encrypted passwords (#1771)
## Problem

- The Agama autoinstallation and CLI accept the first user and the root
passwords only in plain text
- That's insecure, everybody who can access the installation profile
knows the root password

## Solution

- Support passing an already encrypted (hashed) password in the profile
- Similar to AutoYaST, an additional `encryptedPassword` boolean flag is
used to determine whether the specified password is encrypted (`true`
value) or plain text (`false` value or missing in the profile)

## Notes

- The web UI allows specifying only plain text passwords
- Encrypted passwords are long and hard to type and they need to be
encrypted externally

## Features

- Adapted schema definition
- Adapted the AutoYaST conversion tool
- When an encrypted password is set from Agama CLI then web UI resets
the flag back to plain text (it supports only plain text passwords)

## Testing

- Tested manually (both root user and first user), tested the AutoYaST
profile conversion
- Updated unit tests

---------

Co-authored-by: Imobach González Sosa <igonzalezsosa@suse.com>
2024-11-25 16:45:35 +01:00

77 lines
2.2 KiB
YAML

name: "CI - Documentation Check"
on:
push:
paths:
# NOTE: GitHub Actions do not allow using YAML references, the same path
# list is used below for the pull request event. Keep both lists in sync!!
# this file as well
- .github/workflows/ci-doc-check.yml
# all Ruby files
- service/Gemfile*
- service/*.gemspec
- service/**.rb
# the D-Bus introspection files
- doc/dbus/**.xml
pull_request:
paths:
# NOTE: GitHub Actions do not allow using YAML references, the same path
# list is used above for the push event. Keep both lists in sync!!
# this file as well
- .github/workflows/ci-doc-check.yml
# all Ruby files
- service/Gemfile*
- service/*.gemspec
- service/**.rb
# the D-Bus introspection files
- doc/dbus/**.xml
jobs:
doc_check:
runs-on: ubuntu-latest
container:
image: registry.opensuse.org/opensuse/tumbleweed:latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Fix the file owner
# fix the file owner
run: chown -R -c 0 .
- name: Configure and refresh repositories
# disable unused repositories to have faster refresh
run: zypper modifyrepo -d repo-non-oss repo-openh264 repo-update && zypper ref
- name: Install Ruby development files and XML tooling
run: zypper --non-interactive install --no-recommends --allow-downgrade
gcc gcc-c++ make libopenssl-devel ruby-devel augeas-devel diff
libxslt-devel libxml2-devel xmlstarlet 'rubygem(ruby-augeas)'
- name: Cache RubyGems
uses: actions/cache@v3
with:
key: "Gemfile-${{ hashFiles('service/Gemfile.lock') }}"
path: service/vendor/bundle
- name: Install RubyGems
env:
NOKOGIRI_USE_SYSTEM_LIBRARIES: 1
run: |
bundle config set --local disable_shared_gems 0
bundle install
working-directory: ./service
- name: Generate doc
run: bundle exec yardoc --fail-on-warning
working-directory: ./service
- name: Check that introspected API and its docs have not diverged
run: make check
working-directory: ./doc