From ff9c3a9bf6b0974bf31b40a851b39d8cc08f604d Mon Sep 17 00:00:00 2001 From: Daya Adianto <dayaadianto@cs.ui.ac.id> Date: Thu, 29 Aug 2019 15:49:43 +0700 Subject: [PATCH 1/8] Add open-source license information (#1) --- LICENSE | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 11 +++- 2 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0a04128 --- /dev/null +++ b/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/README.md b/README.md index 8489747..44549a2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,12 @@ # Sonar Scanner CLI Image -Sonar Scanner CLI bundled in a container image. \ No newline at end of file +> Sonar Scanner CLI bundled in a container image. + +## Maintainers + +- [Daya Adianto](https://gitlab.com/addianto) + +## License + +Copyright (c) 2019 Faculty of Computer Science Universitas Indonesia. Licensed +under the [GNU Lesser General Public, Version 3.0](LICENSE). -- GitLab From 2226913585b42b0e9d4692fa2a9255a943d846bc Mon Sep 17 00:00:00 2001 From: Daya Adianto <dayaadianto@cs.ui.ac.id> Date: Thu, 29 Aug 2019 15:50:18 +0700 Subject: [PATCH 2/8] Add EditorConfig file (#1) --- .editorconfig | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..2366c51 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +# EditorConfig configuration file +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_style = space +insert_final_newline = true -- GitLab From f998e7989beda7e2e1ddd3e1d4605f302d8ea995 Mon Sep 17 00:00:00 2001 From: Daya Adianto <dayaadianto@cs.ui.ac.id> Date: Thu, 29 Aug 2019 15:50:42 +0700 Subject: [PATCH 3/8] Add VS Code development container configuration (#1) --- .devcontainer/Dockerfile | 36 +++++++++++++++++++++++++++++++++ .devcontainer/devcontainer.json | 30 +++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..66387aa --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,36 @@ +#------------------------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information. +#------------------------------------------------------------------------------------------------------------- +FROM debian:9 + +# Avoid warnings by switching to noninteractive +ENV DEBIAN_FRONTEND=noninteractive + +# Or your actual UID, GID on Linux if not the default 1000 +ARG USERNAME=vscode +ARG USER_UID=1000 +ARG USER_GID=$USER_UID + +# Configure apt and install packages +RUN apt-get update \ + && apt-get -y install --no-install-recommends apt-utils dialog 2>&1 \ + # + # Verify git, process tools, lsb-release (common in install instructions for CLIs) installed + && apt-get -y install git procps lsb-release \ + # + # Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user. + && groupadd --gid $USER_GID $USERNAME \ + && useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME \ + # [Optional] Uncomment the next three lines to add sudo support + # && apt-get install -y sudo \ + # && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ + # && chmod 0440 /etc/sudoers.d/$USERNAME \ + # + # Clean up + && apt-get autoremove -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* + +# Switch back to dialog for any ad-hoc use of apt-get +ENV DEBIAN_FRONTEND= diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..de9ed56 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,30 @@ +// For format details, see https://aka.ms/vscode-remote/devcontainer.json or the definition README at +// https://github.com/microsoft/vscode-dev-containers/tree/master/containers/debian-9-git +{ + "name": "Sonar Scanner CLI Image", + "dockerFile": "Dockerfile", + + // The optional 'runArgs' property can be used to specify additional runtime arguments. + "runArgs": [ + // Uncomment the line if you will use a ptrace-based debugger like C++, Go, and Rust. + // "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined", + + // Uncomment the next line to use a non-root user. See https://aka.ms/vscode-remote/containers/non-root-user. + // "-u", "1000" + ], + + // Uncomment the next line if you want to publish any ports. + // "appPort": [], + + // Uncomment the next line to automatically install extensions. + // "extensions": [ "eamodio.gitlens" ], + + // Uncomment the next line if you want to add in default container specific settings.json values + // "settings": { "workbench.colorTheme": "Quiet Light" }, + + // Uncomment the next line to run commands after the container is created. + // "postCreateCommand": "uname -a", + + // Add the IDs of any extensions you want installed in the array below. + "extensions": [] +} \ No newline at end of file -- GitLab From 6ce8d2b86a8bdf3df0475d080633d885845519c1 Mon Sep 17 00:00:00 2001 From: Daya Adianto <dayaadianto@cs.ui.ac.id> Date: Thu, 29 Aug 2019 15:50:58 +0700 Subject: [PATCH 4/8] Add .gitignore file (#1) --- .gitignore | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..30698f2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +# Created by https://www.gitignore.io/api/visualstudiocode +# Edit at https://www.gitignore.io/?templates=visualstudiocode + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history + +# End of https://www.gitignore.io/api/visualstudiocode -- GitLab From a181cc3dafafd3f86869cda5dad6fd70eb5f1c8a Mon Sep 17 00:00:00 2001 From: Daya Adianto <dayaadianto@cs.ui.ac.id> Date: Thu, 29 Aug 2019 16:18:48 +0700 Subject: [PATCH 5/8] Update VS Code development container configuration (#1) --- .devcontainer/Dockerfile | 10 +++++++++- .devcontainer/devcontainer.json | 17 ++++++++++------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 66387aa..8d87309 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -17,7 +17,10 @@ RUN apt-get update \ && apt-get -y install --no-install-recommends apt-utils dialog 2>&1 \ # # Verify git, process tools, lsb-release (common in install instructions for CLIs) installed - && apt-get -y install git procps lsb-release \ + && apt-get -y install --no-install-recommends git procps lsb-release \ + # + # Install project-specific tools + && apt-get -y install --no-install-recommends ca-certificates shellcheck wget \ # # Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user. && groupadd --gid $USER_GID $USERNAME \ @@ -32,5 +35,10 @@ RUN apt-get update \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* +# Configure hadolint +ARG HADOLINT_VERSION=v1.17.1 +RUN wget -O /usr/local/bin/hadolint https://github.com/hadolint/hadolint/releases/download/${HADOLINT_VERSION}/hadolint-Linux-x86_64 \ + && chmod +x /usr/local/bin/hadolint + # Switch back to dialog for any ad-hoc use of apt-get ENV DEBIAN_FRONTEND= diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index de9ed56..98f075b 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -16,15 +16,18 @@ // Uncomment the next line if you want to publish any ports. // "appPort": [], - // Uncomment the next line to automatically install extensions. - // "extensions": [ "eamodio.gitlens" ], - - // Uncomment the next line if you want to add in default container specific settings.json values - // "settings": { "workbench.colorTheme": "Quiet Light" }, + "settings": { + "hadolint.hadolintPath": "hadolint", + "shellcheck.enable": true, + "shellcheck.executablePath": "shellcheck" + }, // Uncomment the next line to run commands after the container is created. // "postCreateCommand": "uname -a", - // Add the IDs of any extensions you want installed in the array below. - "extensions": [] + "extensions": [ + "exiasr.hadolint", + "ms-azuretools.vscode-docker", + "timonwong.shellcheck", + ], } \ No newline at end of file -- GitLab From ce595460000f130dc885e4dda7ea1326fd8643e8 Mon Sep 17 00:00:00 2001 From: Daya Adianto <dayaadianto@cs.ui.ac.id> Date: Thu, 29 Aug 2019 17:30:33 +0700 Subject: [PATCH 6/8] Add hadolint configuration (#1) --- .hadolint.yaml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .hadolint.yaml diff --git a/.hadolint.yaml b/.hadolint.yaml new file mode 100644 index 0000000..b138ee2 --- /dev/null +++ b/.hadolint.yaml @@ -0,0 +1,3 @@ +--- +ignored: + - DL3008 \ No newline at end of file -- GitLab From 8cf1300a25a898f3df5cec0d8cbb99031559242b Mon Sep 17 00:00:00 2001 From: Daya Adianto <dayaadianto@cs.ui.ac.id> Date: Thu, 29 Aug 2019 17:31:07 +0700 Subject: [PATCH 7/8] Create Dockerfile (#1) --- Dockerfile | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..106cebe --- /dev/null +++ b/Dockerfile @@ -0,0 +1,53 @@ +FROM debian:10-slim + +# Avoid warnings by switching to noninteractive +ENV DEBIAN_FRONTEND=noninteractive + +# Or your actual UID, GID on Linux if not the default 1000 +ARG USERNAME=sonar +ARG USER_UID=1000 +ARG USER_GID=$USER_UID + +# Install packages +RUN apt-get update \ + && apt-get -y install --no-install-recommends ca-certificates git nodejs unzip wget \ + # Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user. + && groupadd --gid $USER_GID $USERNAME \ + && useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME \ + # Clean up + && apt-get autoremove -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* + +# Install Sonar Scanner CLI +ARG SONAR_SCANNER_CLI_VERSION=4.0.0.1744 +RUN wget -O sonar-scanner-cli.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_CLI_VERSION-linux.zip \ + && unzip sonar-scanner-cli.zip -d /opt \ + && rm sonar-scanner-cli.zip \ + && chmod +x /opt/sonar-scanner-$SONAR_SCANNER_CLI_VERSION-linux/bin/sonar-scanner \ + && ln -s /opt/sonar-scanner-$SONAR_SCANNER_CLI_VERSION-linux/bin/sonar-scanner /usr/local/bin/sonar-scanner + +# Switch back to dialog for any ad-hoc use of apt-get +ENV DEBIAN_FRONTEND='' + +## Note to editors: Make sure name of USER and its WORKDIR path matches with +## the value of USERNAME above +USER sonar +WORKDIR /home/sonar + +ENTRYPOINT ["/bin/bash"] + +# Container image metadata +## Note to editors: metadata values for `created`, `version`, `revision`, and +## `ref.name` keys must be provided during build process, i.e. `docker build` +## invocation +LABEL org.opencontainers.image.created="" +LABEL org.opencontainers.image.authors="Daya Adianto <dayaadianto@cs.ui.ac.id>" +LABEL org.opencontainers.image.source="https://gitlab.cs.ui.ac.id/pmpl/sonar-scanner-cli-image" +LABEL org.opencontainers.image.version="" +LABEL org.opencontainers.image.revision="" +LABEL org.opencontainers.image.vendor="Faculty of Computer Science Universitas Indonesia" +LABEL org.opencontainers.image.licenses="LGPL-3.0" +LABEL org.opencontainers.image.ref.name="" +LABEL org.opencontainers.image.title="Sonar Scanner CLI Image" +LABEL org.opencontainers.image.description="Sonar Scanner CLI bundled in a container image" -- GitLab From 8435ba2530488e7432e45636951b9a9f5f25d77e Mon Sep 17 00:00:00 2001 From: Daya Adianto <dayaadianto@cs.ui.ac.id> Date: Thu, 29 Aug 2019 17:57:47 +0700 Subject: [PATCH 8/8] Add CODEOWNERS file (#1) --- .gitlab/CODEOWNERS | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitlab/CODEOWNERS diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS new file mode 100644 index 0000000..aa65218 --- /dev/null +++ b/.gitlab/CODEOWNERS @@ -0,0 +1,4 @@ +# Code Owners + +## Default owners +* @addianto -- GitLab