mirror of
https://github.com/ViViDboarder/bitwarden_rs_ldap.git
synced 2024-11-21 10:46:27 +00:00
Add linting, formatting and other checks
This adds pre-commit hooks installable using the provided Makefile as well as a new check to validate the version in the Cargo file matches the git tag. This will be useful as a check before pushing releases.
This commit is contained in:
parent
2e5c4c5b55
commit
91d70e6bb8
@ -1,2 +1,3 @@
|
|||||||
README.md
|
README.md
|
||||||
target/
|
target/
|
||||||
|
scripts/
|
||||||
|
22
.pre-commit-config.yaml
Normal file
22
.pre-commit-config.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v3.1.0
|
||||||
|
hooks:
|
||||||
|
- id: check-added-large-files
|
||||||
|
- id: check-yaml
|
||||||
|
- id: check-toml
|
||||||
|
- id: trailing-whitespace
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: check-merge-conflict
|
||||||
|
- repo: https://github.com/doublify/pre-commit-rust
|
||||||
|
rev: 14b3e118cfc36fb87d8d9cbd1305a2238fd85868
|
||||||
|
hooks:
|
||||||
|
- id: fmt
|
||||||
|
- id: cargo-check
|
||||||
|
- id: clippy
|
||||||
|
- repo: https://github.com/IamTheFij/docker-pre-commit
|
||||||
|
rev: v2.0.0
|
||||||
|
hooks:
|
||||||
|
- id: docker-compose-check
|
||||||
|
- id: hadolint
|
12
Dockerfile
12
Dockerfile
@ -5,15 +5,13 @@ RUN USER=root cargo new --bin bitwarden_rs_ldap
|
|||||||
WORKDIR /usr/src/bitwarden_rs_ldap
|
WORKDIR /usr/src/bitwarden_rs_ldap
|
||||||
|
|
||||||
# Compile dependencies
|
# Compile dependencies
|
||||||
COPY ./Cargo.toml ./Cargo.toml
|
COPY Cargo.toml Cargo.lock ./
|
||||||
COPY ./Cargo.lock ./Cargo.lock
|
RUN cargo build --locked --release
|
||||||
RUN cargo build --release
|
|
||||||
# Remove temp src
|
|
||||||
RUN rm src/*.rs
|
|
||||||
|
|
||||||
# Copy source and install
|
# Remove bins to make sure we rebuild
|
||||||
COPY ./src ./src
|
|
||||||
RUN rm ./target/release/deps/bitwarden_rs_ldap*
|
RUN rm ./target/release/deps/bitwarden_rs_ldap*
|
||||||
|
# Copy source and install
|
||||||
|
COPY src ./src
|
||||||
RUN cargo install --path .
|
RUN cargo install --path .
|
||||||
|
|
||||||
CMD ["bitwarden_rs_ldap"]
|
CMD ["bitwarden_rs_ldap"]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM ekidd/rust-musl-builder AS builder
|
FROM ekidd/rust-musl-builder:1.33.0 AS builder
|
||||||
|
|
||||||
RUN USER=rust cargo init
|
RUN USER=rust cargo init
|
||||||
|
|
||||||
@ -10,15 +10,15 @@ RUN cargo build --release
|
|||||||
RUN rm src/*.rs
|
RUN rm src/*.rs
|
||||||
COPY ./src ./src
|
COPY ./src ./src
|
||||||
# Fix permissions on source
|
# Fix permissions on source
|
||||||
RUN sudo chown -R rust:rust /home/rust/src/src
|
RUN USER=root chown -R rust:rust /home/rust/src/src
|
||||||
|
|
||||||
RUN touch ./src/main.rs
|
RUN touch ./src/main.rs
|
||||||
RUN cargo build --release
|
RUN cargo build --release
|
||||||
|
|
||||||
FROM alpine:latest
|
FROM alpine:3
|
||||||
RUN apk --no-cache add ca-certificates
|
RUN apk --no-cache add ca-certificates=20191127-r4
|
||||||
COPY --from=builder \
|
COPY --from=builder \
|
||||||
/home/rust/src/target/x86_64-unknown-linux-musl/release/bitwarden_rs_ldap \
|
/home/rust/src/target/x86_64-unknown-linux-musl/release/bitwarden_rs_ldap \
|
||||||
/usr/local/bin/
|
/usr/local/bin/
|
||||||
|
|
||||||
CMD /usr/local/bin/bitwarden_rs_ldap
|
CMD ["/usr/local/bin/bitwarden_rs_ldap"]
|
||||||
|
54
Makefile
Normal file
54
Makefile
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
DOCKER_TAG ?= bitwarden_rs_ldap_${USER}
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
all: test check release
|
||||||
|
|
||||||
|
# Default make target will run tests
|
||||||
|
.DEFAULT_GOAL = test
|
||||||
|
|
||||||
|
# Build debug version
|
||||||
|
target/debug/bitwarden_rs_ldap: src/
|
||||||
|
cargo build
|
||||||
|
|
||||||
|
# Build release version
|
||||||
|
target/release/bitwarden_rs_ldap: src/
|
||||||
|
cargo build --locked --release
|
||||||
|
|
||||||
|
.PHONY: debug
|
||||||
|
debug: target/debug/bitwarden_rs_ldap
|
||||||
|
|
||||||
|
.PHONY: release
|
||||||
|
release: target/release/bitwarden_rs_ldap
|
||||||
|
|
||||||
|
# Run debug version
|
||||||
|
.PHONY: run-debug
|
||||||
|
run-debug: target/debug/bitwarden_rs_ldap
|
||||||
|
target/debug/bitwarden_rs_ldap
|
||||||
|
|
||||||
|
# Run all tests
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
cargo test
|
||||||
|
|
||||||
|
# Installs pre-commit hooks
|
||||||
|
.PHONY: install-hooks
|
||||||
|
install-hooks:
|
||||||
|
pre-commit install --install-hooks
|
||||||
|
|
||||||
|
# Checks files for encryption
|
||||||
|
.PHONY: check
|
||||||
|
check:
|
||||||
|
pre-commit run --all-files
|
||||||
|
|
||||||
|
# Checks that version matches the current tag
|
||||||
|
.PHONY: check-version
|
||||||
|
check-version:
|
||||||
|
./scripts/check-version.sh
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -f ./target
|
||||||
|
|
||||||
|
.PHONY: docker-build
|
||||||
|
docker-build:
|
||||||
|
docker build -f ./Dockerfile -t $(DOCKER_TAG) .
|
@ -1,7 +1,7 @@
|
|||||||
# bitwarden_rs_ldap
|
# bitwarden_rs_ldap
|
||||||
A simple LDAP connector for [bitwarden_rs](https://github.com/dani-garcia/bitwarden_rs)
|
A simple LDAP connector for [bitwarden_rs](https://github.com/dani-garcia/bitwarden_rs)
|
||||||
|
|
||||||
After configuring, simply run `bitwarden_rs_ldap` and it will invite any users it finds in LDAP to your `bitwarden_rs` instance.
|
After configuring, run `bitwarden_rs_ldap` and it will invite any users it finds in LDAP to your `bitwarden_rs` instance.
|
||||||
|
|
||||||
## Deploying
|
## Deploying
|
||||||
|
|
||||||
@ -31,6 +31,12 @@ Configuration values are as follows:
|
|||||||
|`ldap_sync_interval_seconds`|Integer|Optional|Number of seconds to wait between each LDAP request. Defaults to `60`|
|
|`ldap_sync_interval_seconds`|Integer|Optional|Number of seconds to wait between each LDAP request. Defaults to `60`|
|
||||||
|`ldap_sync_loop`|Boolean|Optional|Indicates whether or not syncing should be polled in a loop or done once. Defaults to `true`|
|
|`ldap_sync_loop`|Boolean|Optional|Indicates whether or not syncing should be polled in a loop or done once. Defaults to `true`|
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
This repo has a predefined set of [pre-commit](https://pre-commit.com) rules. You can install pre-commit via any means you'd like. Once your system has `pre-commit` installed, you can run `make install-hooks` to ensure the hooks will run with every commit. You can also force running all hooks with `make check`.
|
||||||
|
|
||||||
|
For those less familiar with `cargo`, you can use the `make` targets that have been included for common tasks like running a debug version. `make run-debug` or building a release version `make release`.
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
All testing is manual right now. First step is to set up Bitwarden and the LDAP server.
|
All testing is manual right now. First step is to set up Bitwarden and the LDAP server.
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
---
|
||||||
version: '3'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
ldap_sync:
|
ldap_sync:
|
||||||
|
8
scripts/check-version.sh
Executable file
8
scripts/check-version.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
CARGO_VERSION=$(cargo pkgid --offline | sed 's/.*#//')
|
||||||
|
GIT_VERSION=${GIT_VERSION:-$(git describe --tags --exact-match)}
|
||||||
|
if ! [ "v$CARGO_VERSION" = "$GIT_VERSION" ]; then
|
||||||
|
echo "ERROR: Cargo version (v$CARGO_VERSION) and git version ($GIT_VERSION) do not match"
|
||||||
|
exit 1
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user