-
Notifications
You must be signed in to change notification settings - Fork 92
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit b7bac63
Showing
390 changed files
with
46,693 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.202.1/containers/dotnet/.devcontainer/base.Dockerfile | ||
|
||
# [Choice] .NET version: 6.0, 5.0, 3.1, 2.1 | ||
ARG VARIANT="6.0" | ||
#FROM mcr.microsoft.com/vscode/devcontainers/dotnet:0-${VARIANT} | ||
FROM mcr.microsoft.com/vscode/devcontainers/dotnet:dev-6.0 | ||
|
||
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10 | ||
ARG NODE_VERSION="none" | ||
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi | ||
|
||
# [Option] Install Azure CLI | ||
ARG INSTALL_AZURE_CLI="false" | ||
COPY library-scripts/*.sh library-scripts/*.env /tmp/library-scripts/ | ||
RUN if [ "$INSTALL_AZURE_CLI" = "true" ]; then bash /tmp/library-scripts/azcli-debian.sh; fi \ | ||
&& apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts | ||
|
||
# [Optional] Uncomment this section to install additional OS packages. | ||
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ | ||
# && apt-get -y install --no-install-recommends <your-package-list-here> | ||
|
||
# [Optional] Uncomment this line to install global node packages. | ||
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: | ||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.202.1/containers/dotnet | ||
{ | ||
"name": "C# (.NET)", | ||
"runArgs": ["--init"], | ||
"build": { | ||
"dockerfile": "Dockerfile", | ||
"args": { | ||
// Update 'VARIANT' to pick a .NET Core version: 2.1, 3.1, 5.0, 6.0 | ||
"VARIANT": "6.0", | ||
// Options | ||
"NODE_VERSION": "lts/*", | ||
"INSTALL_AZURE_CLI": "false" | ||
} | ||
}, | ||
|
||
// Set *default* container specific settings.json values on container create. | ||
"settings": {}, | ||
|
||
// Add the IDs of extensions you want installed when the container is created. | ||
"extensions": [ | ||
"ms-dotnettools.csharp", | ||
"vsls-contrib.codetour" | ||
], | ||
|
||
// Use 'forwardPorts' to make a list of ports inside the container available locally. | ||
// "forwardPorts": [5000, 5001], | ||
|
||
// [Optional] To reuse of your local HTTPS dev cert: | ||
// | ||
// 1. Export it locally using this command: | ||
// * Windows PowerShell: | ||
// dotnet dev-certs https --trust; dotnet dev-certs https -ep "$env:USERPROFILE/.aspnet/https/aspnetapp.pfx" -p "SecurePwdGoesHere" | ||
// * macOS/Linux terminal: | ||
// dotnet dev-certs https --trust; dotnet dev-certs https -ep "${HOME}/.aspnet/https/aspnetapp.pfx" -p "SecurePwdGoesHere" | ||
// | ||
// 2. Uncomment these 'remoteEnv' lines: | ||
// "remoteEnv": { | ||
// "ASPNETCORE_Kestrel__Certificates__Default__Password": "SecurePwdGoesHere", | ||
// "ASPNETCORE_Kestrel__Certificates__Default__Path": "/home/vscode/.aspnet/https/aspnetapp.pfx", | ||
// }, | ||
// | ||
// 3. Do one of the following depending on your scenario: | ||
// * When using GitHub Codespaces and/or Remote - Containers: | ||
// 1. Start the container | ||
// 2. Drag ~/.aspnet/https/aspnetapp.pfx into the root of the file explorer | ||
// 3. Open a terminal in VS Code and run "mkdir -p /home/vscode/.aspnet/https && mv aspnetapp.pfx /home/vscode/.aspnet/https" | ||
// | ||
// * If only using Remote - Containers with a local container, uncomment this line instead: | ||
// "mounts": [ "source=${env:HOME}${env:USERPROFILE}/.aspnet/https,target=/home/vscode/.aspnet/https,type=bind" ], | ||
|
||
// Use 'postCreateCommand' to run commands after the container is created. | ||
"postCreateCommand": "dotnet restore", | ||
|
||
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. | ||
// "remoteUser": "vscode", | ||
"features": { | ||
"docker-from-docker": "latest", // This enables the linux detector | ||
// "git": "latest", | ||
// "github-cli": "latest", | ||
// "python": "latest", | ||
// "golang": "latest", | ||
// "java": "lts" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
#!/usr/bin/env bash | ||
#------------------------------------------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information. | ||
#------------------------------------------------------------------------------------------------------------- | ||
# | ||
# Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/azcli.md | ||
# Maintainer: The VS Code and Codespaces Teams | ||
# | ||
# Syntax: ./azcli-debian.sh | ||
|
||
set -e | ||
|
||
AZ_VERSION=${1:-"latest"} | ||
MICROSOFT_GPG_KEYS_URI="https://packages.microsoft.com/keys/microsoft.asc" | ||
AZCLI_ARCHIVE_ARCHITECTURES="amd64" | ||
AZCLI_ARCHIVE_VERSION_CODENAMES="stretch buster bullseye bionic focal" | ||
|
||
if [ "$(id -u)" -ne 0 ]; then | ||
echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' | ||
exit 1 | ||
fi | ||
|
||
# Get central common setting | ||
get_common_setting() { | ||
if [ "${common_settings_file_loaded}" != "true" ]; then | ||
curl -sfL "https://aka.ms/vscode-dev-containers/script-library/settings.env" 2>/dev/null -o /tmp/vsdc-settings.env || echo "Could not download settings file. Skipping." | ||
common_settings_file_loaded=true | ||
fi | ||
if [ -f "/tmp/vsdc-settings.env" ]; then | ||
local multi_line="" | ||
if [ "$2" = "true" ]; then multi_line="-z"; fi | ||
local result="$(grep ${multi_line} -oP "$1=\"?\K[^\"]+" /tmp/vsdc-settings.env | tr -d '\0')" | ||
if [ ! -z "${result}" ]; then declare -g $1="${result}"; fi | ||
fi | ||
echo "$1=${!1}" | ||
} | ||
|
||
# Function to run apt-get if needed | ||
apt_get_update_if_needed() | ||
{ | ||
if [ ! -d "/var/lib/apt/lists" ] || [ "$(ls /var/lib/apt/lists/ | wc -l)" = "0" ]; then | ||
echo "Running apt-get update..." | ||
apt-get update | ||
else | ||
echo "Skipping apt-get update." | ||
fi | ||
} | ||
|
||
# Checks if packages are installed and installs them if not | ||
check_packages() { | ||
if ! dpkg -s "$@" > /dev/null 2>&1; then | ||
apt_get_update_if_needed | ||
apt-get -y install --no-install-recommends "$@" | ||
fi | ||
} | ||
|
||
export DEBIAN_FRONTEND=noninteractive | ||
|
||
# Soft version matching that resolves a version for a given package in the *current apt-cache* | ||
# Return value is stored in first argument (the unprocessed version) | ||
apt_cache_version_soft_match() { | ||
|
||
# Version | ||
local variable_name="$1" | ||
local requested_version=${!variable_name} | ||
# Package Name | ||
local package_name="$2" | ||
# Exit on no match? | ||
local exit_on_no_match="${3:-true}" | ||
|
||
# Ensure we've exported useful variables | ||
. /etc/os-release | ||
local architecture="$(dpkg --print-architecture)" | ||
|
||
dot_escaped="${requested_version//./\\.}" | ||
dot_plus_escaped="${dot_escaped//+/\\+}" | ||
# Regex needs to handle debian package version number format: https://www.systutorials.com/docs/linux/man/5-deb-version/ | ||
version_regex="^(.+:)?${dot_plus_escaped}([\\.\\+ ~:-]|$)" | ||
set +e # Don't exit if finding version fails - handle gracefully | ||
fuzzy_version="$(apt-cache madison ${package_name} | awk -F"|" '{print $2}' | sed -e 's/^[ \t]*//' | grep -E -m 1 "${version_regex}")" | ||
set -e | ||
if [ -z "${fuzzy_version}" ]; then | ||
echo "(!) No full or partial for package \"${package_name}\" match found in apt-cache for \"${requested_version}\" on OS ${ID} ${VERSION_CODENAME} (${architecture})." | ||
|
||
if $exit_on_no_match; then | ||
echo "Available versions:" | ||
apt-cache madison ${package_name} | awk -F"|" '{print $2}' | grep -oP '^(.+:)?\K.+' | ||
exit 1 # Fail entire script | ||
else | ||
echo "Continuing to fallback method (if available)" | ||
return 1; | ||
fi | ||
fi | ||
|
||
# Globally assign fuzzy_version to this value | ||
# Use this value as the return value of this function | ||
declare -g ${variable_name}="=${fuzzy_version}" | ||
echo "${variable_name} ${!variable_name}" | ||
} | ||
|
||
install_using_apt() { | ||
# Install dependencies | ||
check_packages apt-transport-https curl ca-certificates gnupg2 dirmngr | ||
# Import key safely (new 'signed-by' method rather than deprecated apt-key approach) and install | ||
get_common_setting MICROSOFT_GPG_KEYS_URI | ||
curl -sSL ${MICROSOFT_GPG_KEYS_URI} | gpg --dearmor > /usr/share/keyrings/microsoft-archive-keyring.gpg | ||
echo "deb [arch=${architecture} signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/azure-cli/ ${VERSION_CODENAME} main" > /etc/apt/sources.list.d/azure-cli.list | ||
apt-get update | ||
|
||
if [ "${AZ_VERSION}" = "latest" ] || [ "${AZ_VERSION}" = "lts" ] || [ "${AZ_VERSION}" = "stable" ]; then | ||
# Empty, meaning grab the "latest" in the apt repo | ||
AZ_VERSION="" | ||
else | ||
# Sets AZ_VERSION to our desired version, if match found. | ||
apt_cache_version_soft_match AZ_VERSION "azure-cli" false | ||
if [ "$?" != 0 ]; then | ||
return 1 | ||
fi | ||
fi | ||
|
||
if ! (apt-get install -yq azure-cli${AZ_VERSION}); then | ||
rm -f /etc/apt/sources.list.d/azure-cli.list | ||
return 1 | ||
fi | ||
} | ||
|
||
install_using_pip() { | ||
echo "(*) No pre-built binaries available in apt-cache. Installing via pip3." | ||
if ! dpkg -s python3-minimal python3-pip libffi-dev python3-venv > /dev/null 2>&1; then | ||
apt_get_update_if_needed | ||
apt-get -y install python3-minimal python3-pip libffi-dev python3-venv | ||
fi | ||
export PIPX_HOME=/usr/local/pipx | ||
mkdir -p ${PIPX_HOME} | ||
export PIPX_BIN_DIR=/usr/local/bin | ||
export PYTHONUSERBASE=/tmp/pip-tmp | ||
export PIP_CACHE_DIR=/tmp/pip-tmp/cache | ||
pipx_bin=pipx | ||
if ! type pipx > /dev/null 2>&1; then | ||
pip3 install --disable-pip-version-check --no-cache-dir --user pipx | ||
pipx_bin=/tmp/pip-tmp/bin/pipx | ||
fi | ||
|
||
if [ "${AZ_VERSION}" = "latest" ] || [ "${AZ_VERSION}" = "lts" ] || [ "${AZ_VERSION}" = "stable" ]; then | ||
# Empty, meaning grab the "latest" in the apt repo | ||
ver="" | ||
else | ||
ver="==${AZ_VERSION}" | ||
fi | ||
|
||
set +e | ||
${pipx_bin} install --system-site-packages --pip-args '--no-cache-dir --force-reinstall' -f azure-cli${ver} | ||
|
||
# Fail gracefully | ||
if [ "$?" != 0 ]; then | ||
echo "Could not install azure-cli${ver} via pip" | ||
rm -rf /tmp/pip-tmp | ||
return 1 | ||
fi | ||
set -e | ||
} | ||
|
||
# See if we're on x86_64 and if so, install via apt-get, otherwise use pip3 | ||
echo "(*) Installing Azure CLI..." | ||
. /etc/os-release | ||
architecture="$(dpkg --print-architecture)" | ||
if [[ "${AZCLI_ARCHIVE_ARCHITECTURES}" = *"${architecture}"* ]] && [[ "${AZCLI_ARCHIVE_VERSION_CODENAMES}" = *"${VERSION_CODENAME}"* ]]; then | ||
install_using_apt || use_pip="true" | ||
else | ||
use_pip="true" | ||
fi | ||
|
||
if [ "${use_pip}" = "true" ]; then | ||
install_using_pip | ||
|
||
if [ "$?" != 0 ]; then | ||
echo "Please provide a valid version for your distribution ${ID} ${VERSION_CODENAME} (${architecture})." | ||
echo | ||
echo "Valid versions in current apt-cache" | ||
apt-cache madison azure-cli | awk -F"|" '{print $2}' | grep -oP '^(.+:)?\K.+' | ||
exit 1 | ||
fi | ||
fi | ||
|
||
echo "Done!" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
############################################################################### | ||
# Set default behavior to automatically normalize line endings. | ||
############################################################################### | ||
* text=auto | ||
*.sh text eol=lf | ||
package-lock.json text eol=lf | ||
package.json text eol=lf | ||
resources.resjson text eol=lf | ||
task.loc.json text eol=lf | ||
task.json text eol=lf | ||
|
||
############################################################################### | ||
# Set default behavior for command prompt diff. | ||
# | ||
# This is need for earlier builds of msysgit that does not have it on by | ||
# default for csharp files. | ||
# Note: This is only used by command line | ||
############################################################################### | ||
#*.cs diff=csharp | ||
|
||
############################################################################### | ||
# Set the merge driver for project and solution files | ||
# | ||
# Merging from the command prompt will add diff markers to the files if there | ||
# are conflicts (Merging from VS is not affected by the settings below, in VS | ||
# the diff markers are never inserted). Diff markers may cause the following | ||
# file extensions to fail to load in VS. An alternative would be to treat | ||
# these files as binary and thus will always conflict and require user | ||
# intervention with every merge. To do so, just uncomment the entries below | ||
############################################################################### | ||
#*.sln merge=binary | ||
#*.csproj merge=binary | ||
#*.vbproj merge=binary | ||
#*.vcxproj merge=binary | ||
#*.vcproj merge=binary | ||
#*.dbproj merge=binary | ||
#*.fsproj merge=binary | ||
#*.lsproj merge=binary | ||
#*.wixproj merge=binary | ||
#*.modelproj merge=binary | ||
#*.sqlproj merge=binary | ||
#*.wwaproj merge=binary | ||
|
||
############################################################################### | ||
# behavior for image files | ||
# | ||
# image files are treated as binary by default. | ||
############################################################################### | ||
#*.jpg binary | ||
#*.png binary | ||
#*.gif binary | ||
|
||
############################################################################### | ||
# diff behavior for common document formats | ||
# | ||
# Convert binary document formats to text before diffing them. This feature | ||
# is only available from the command line. Turn it on by uncommenting the | ||
# entries below. | ||
############################################################################### | ||
#*.doc diff=astextplain | ||
#*.DOC diff=astextplain | ||
#*.docx diff=astextplain | ||
#*.DOCX diff=astextplain | ||
#*.dot diff=astextplain | ||
#*.DOT diff=astextplain | ||
#*.pdf diff=astextplain | ||
#*.PDF diff=astextplain | ||
#*.rtf diff=astextplain | ||
#*.RTF diff=astextplain |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Relevant documentation for CODEOWNERS file: https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners | ||
|
||
# All files in this repo are owned by ose-component-detection-maintainers team. | ||
|
||
# Reviewers are then assigned round-robin style: https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/managing-code-review-assignment-for-your-team | ||
|
||
* @microsoft/ose-component-detection-maintainers |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
name: Bug report | ||
about: Create a report to help us improve | ||
title: "[Bug]: " | ||
labels: ['triage', 'bug'] | ||
assignees: '' | ||
|
||
body: | ||
- type: markdown | ||
attributes: | ||
value: | | ||
Thanks for taking the time to fill out this bug report! | ||
- type: input | ||
id: summary | ||
attributes: | ||
label: Describe the bug | ||
description: A clear and concise description of what the bug is. | ||
- type: textarea | ||
id: reproduce | ||
attributes: | ||
label: Steps To Reproduce | ||
description: Contents of folder being scanned - minimal data to reproduce the issue is preferred. Alternatively, you can provide a link to a public github repo or gist. You can also attach files to this issue. | ||
placeholder: Tell us what you see! | ||
validations: | ||
required: true | ||
- type: input | ||
id: version | ||
attributes: | ||
label: Which version of the tool was used? | ||
description: The version of the binaries or package, or a git commit hash from the branch if you're using the sources in this repo. | ||
- type: input | ||
id: cli | ||
attributes: | ||
label: Provide the full command line input that you used to invoke the tool. | ||
- type: textarea | ||
id: logs | ||
attributes: | ||
label: Steps To Reproduce | ||
description: 'These files are created by the tool and will provide valuable information: GovCompDisc_Log_{timestamp}.log, ScanManifest_{timestamp}.json, ScanTelemetry_{timestamp}.json You can usually find these in the %TEMP% location, or redirect them with the --Output parameter.' | ||
placeholder: Tell us what you see! |
Oops, something went wrong.