1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright (C) 2022 Leandro Lisboa Penz <lpenz@lpenz.org>
// This file is subject to the terms and conditions defined in
// file 'LICENSE', which is part of this source code package.

//! Check if github actions used in a workflow can be updated
//!
//! # Code structure
//!
//! - Utility modules:
//!   - [`cmd`]: command line arguments parsing and main function.
//!   - [`error`]: `Error` and `Result` types.
//!   - [`version`]: type wrapper for versions; currently using.
//!     [`semver`] with [`lenient_semver`]
//! - Main functionality:
//!   - [`processor`]: top level file processing function.
//!   - [`workflow`]: workflow file parsing, into [`workflow::Workflow`] type. A
//!     workflow can have one or more [`entity::Entity`]s that represent
//!     resource with a version.
//!   - [`entity`]: the [`entity::Entity`] type.
//!   - [`resolver`]: a resolver [`resolver::Server`] that makes async
//!     requests and caches the result, and an async
//!     [`resolver::Client`] that fills the `entity.latest` field with
//!     the latest version of the upstream entity.
//!   - [`updater`]: the resolver can deal with different upstream
//!     API's by using the [`updater::Upd`] trait, which is generic
//!     over the currently supported [`updater::docker`] and
//!     [`updater::github`] upstreams.

pub mod cmd;
pub mod entity;
pub mod error;
pub mod processor;
pub mod resolver;
pub mod updater;
pub mod version;
pub mod workflow;