diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml new file mode 100644 index 00000000..21937764 --- /dev/null +++ b/.github/workflows/gradle.yml @@ -0,0 +1,32 @@ +# Flujo de trabajo para construir el código al hacer push o pull_request en la rama desarrollo +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. +# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle + +name: Integración continua con Gradle (gradlew) + +on: + push: + branches: [ desarrollo ] + pull_request: + branches: [ desarrollo ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: '11' + distribution: 'temurin' + - name: Dar permisos a gradlew + run: chmod +x gradlew + - name: Construir el código con gradlew + run: ./gradlew build diff --git a/DEVELOPERS.txt b/DEVELOPERS.txt new file mode 100644 index 00000000..c9e006a4 --- /dev/null +++ b/DEVELOPERS.txt @@ -0,0 +1 @@ +Marcel André Velásquez Guzmán diff --git a/README.md b/README.md index a574ce6c..57d46b60 100644 --- a/README.md +++ b/README.md @@ -13,3 +13,4 @@ Librería con capacidades que den soporte al desarrollo de aplicaciones para la ## [Página en gitHub Pages](https://mit-fs.github.io/Audit4Improve-API/) +Soy el usuario WSK8896 \ No newline at end of file diff --git a/df b/df new file mode 100644 index 00000000..4086cb02 --- /dev/null +++ b/df @@ -0,0 +1,237 @@ +commit 2ddca4b2ca596c94519b181a027493d81f47f498 (HEAD -> desarrollo, origin/desarrollo) +Author: Isabel Román +Date: Tue May 10 11:35:23 2022 +0200 + + Preparación curso 24/25 + + Actualizado gradle + Pie de javadoc modificado + +commit 4997837b69cecf28cef6251c14429931fc48daf3 +Merge: 7d2eaf7 889ae55 +Author: MIT-FS +Date: Mon May 9 19:31:56 2022 +0200 + + Merge branch 'PracticaPruebasUnidad' into desarrollo + +commit 889ae5580d72f25046f9714e644f0619e66e3a05 +Author: MIT-FS +Date: Mon May 9 19:30:04 2022 +0200 + + Corregidos comentarios javadoc + + Se corrigen errores y se completa el javadoc + +commit 7d2eaf79ed59537f4066bf9d9981a4a22200d4ab +Author: MIT-FS +Date: Tue May 3 14:29:02 2022 +0200 + + Resuelto problema lectura ficheros configuración + +commit 5892eb512a9a77bdf5937b6615e2193684e5d27c +Author: MIT-FS +Date: Fri Apr 29 11:43:14 2022 +0200 + + Nuevo método información sobre métricas + + Actualizado .gitignore para no subir los secretos de configuración + gradle + +commit 5c69f6e11018513f04fe04a7c008bea062cbc731 (tag: v0.1.0) +Merge: 39f41ac 4553372 +Author: MIT-FS +Date: Tue Apr 12 11:27:48 2022 +0200 + + Merge branch 'PracticaPruebasUnidad' into desarrollo + +commit 455337277197cf89e0fc402cfac14bf8b9d39bf6 +Author: Isabel Román +Date: Mon Apr 4 14:07:13 2022 +0200 + + Avances Tests + + Configuración de tests para que las rutas no dependan del SO + Añadida la verificación assertThrows + Añadida información de las fuentes javadoc a build.gradle + Solucionado error nombre imagen .GIF + Etiquetado de tests en ReportTest + Cambio de paquete de ReportTest + +commit c2a58b5ceb06a489eb48181176233f744be25dc0 +Author: MIT-FS +Date: Thu Mar 24 17:32:34 2022 +0100 + + Resueltos conflictos fusión + + Se fusionan versiones de las pruebas unidad + Conflictos en checkerTest resueltos + Añadidos modelos UML + +commit da26aa059a1b0e06724d1b8a2b42dd9806cdd423 +Author: Isabel Román +Date: Wed Mar 23 13:02:03 2022 +0100 + + Trabajos en javadoc + +commit d1a8a6c88d5b5c9b2b22e6de61fcba165e07a319 +Author: MIT-FS +Date: Tue Mar 22 18:46:24 2022 +0100 + + CheckerTest V0.0 + + Versión 0.0 del test para la clase que verifica indicadores y métricas + Se han añadido además un fichero de configuración de aplicación cliente, + en la carpeta de tests + Se ha modifiado el fichero de configuración por defecto + +commit 16def12c0503fb371683c94bee45330ced13e936 +Author: Isabel Román +Date: Tue Mar 22 13:57:45 2022 +0100 + + Avances en el test de Report + +commit a68b6427f5f958a33ec14881356b430c59537236 +Author: MIT-FS +Date: Mon Mar 21 19:15:37 2022 +0100 + + Modificada Report y ReportI + + Se añade verificación de tipo de calculadora de indicadores + +commit bc3ead292fedac71844ede24e566ae83ff53463b +Author: Isabel Román +Date: Mon Mar 21 15:14:34 2022 +0100 + + Pequeños avances + +commit 93610cb261f75d7fb66933e71b7a39e2c81a8933 +Author: Isabel Román +Date: Mon Mar 21 14:37:15 2022 +0100 + + Modificado Constructor de Métricas + + Ahora los datos de unidades y descripción los lee del fichero de + configuración. Esto permitiría que la aplicación pudiera configurarse + con distintos idiomas, por ejemplo + +commit e6013392e309ef148e28228c3775c7209c79599a +Author: MIT-FS +Date: Sun Mar 20 21:50:10 2022 +0100 + + Preparando la práctica de test unidad + + Añadido paquete Config con clas clases Checker y Context + Añadida clase checker para verificar las métricas e indicadores + Añadida comprobación en el constructor de métricas + Añadidos algunos test básicos incompletos + Cambiado Context a Singleton + +commit e059e5e94005474f454158a02cf8524d92f2b679 (origin/Refactorización) +Author: MIT-FS +Date: Wed Mar 16 18:58:08 2022 +0100 + + Cambio referencias de imágenes javadoc + + Para que gradle no tenga problemas al construir la documentación las + imágenes que se quieran incluir se pondrán disponibles en la rama de + gh-pages + +commit 106dd2f12515d1917c1c8a1290508c8acad04530 +Author: MIT-FS +Date: Tue Mar 15 13:49:18 2022 +0100 + + Primera organización documentación + + Queda mucho por hacer, pero se han dado algunos pasos para mejorar la + documentación + +commit 6a2375bf8ad7b8fc73a78edcedfc242ba40e7844 +Author: MIT-FS +Date: Tue Mar 15 11:14:57 2022 +0100 + + Clase Context y renombrado + + Se incluye la clase context que facilita la configuración de la + aplicación por fichero + Se renombra la interfaz RemoteBuilder y sus derivados + +commit ae6f92c347753b97025fe31c3c9c9178803c74bc +Author: MIT-FS +Date: Mon Mar 14 14:21:45 2022 +0100 + + Refactorización completa + + Asignando responsabilidades para optimizar la reutilización + +commit 554b1c3650306a65523f8222d8c748798c3b5800 +Author: MIT-FS +Date: Fri Mar 11 14:41:46 2022 +0100 + + Mega refactorización primera + + Separando responsabilidades para reutilización + Creando Informes desde remotos + Necesita limpieza y pulido + +commit 0797fd5a10b723722b331cf9cb5a9813324ec9c6 (origin/persistenciaExcel) +Author: Isabel Román +Date: Wed Mar 9 17:03:17 2022 +0100 + + Inicio de persistencia apachepoi + + Se decide realizar la persistencia en documentos excel + Esta versión incluye un primer acercamiento al manejo de esta librería + en la clase HSSFReadWrite (que se eliminará posteriormente), + proporcionada por los proveedores de la api + +commit 39f41ac706443c828cbe1dee5996ea294e7e4d91 +Author: Isabel Román +Date: Mon Mar 7 18:24:28 2022 +0100 + + Actualiza README + + Añade el enlace a GitHub Pages + +commit 03a0f2a6397bea3d19b9277e84ae0d7d80073da3 (tag: v0.0.0) +Author: MIT-FS +Date: Mon Mar 7 10:56:42 2022 +0100 + + Pequeños cambios en SupervisorControl + Probar la clase GHProject + +commit 4a4434957ce71471312917c34af5ac741c937673 +Merge: aa02150 1bf593f +Author: MIT-FS +Date: Mon Mar 7 10:52:34 2022 +0100 + + Merge branch 'desarrolloEnGit' into desarrollo + +commit 1bf593f3859416242fcc7240e1f4339af929cf79 +Author: Factoría de Software <71695310+MIT-FS@users.noreply.github.com> +Date: Sat Mar 5 11:03:24 2022 +0100 + + Actualiza Readme.md + + Añade la sintaxis markdown al fichero de descripción del proyecto + +commit aa021503acaa75c6fd6fa2dd4afaea9749a1ad0f +Author: MIT-FS +Date: Thu Feb 24 18:29:28 2022 +0100 + + Organización del proyecto: + + Creación de las carpetas de test + Creación de los archivos de información de paquete + Añadido fichero de configuración para JPA + +commit 3591b2db096b7c3ce0404f999f67ff02d4517c71 +Author: Isabel Román +Date: Thu Feb 3 12:30:56 2022 +0100 + + Punto de partida del proyecto + +commit 6137b5e77ed8a137e1ee74622f4ea3037d921f57 +Author: Factoría de Software <71695310+MIT-FS@users.noreply.github.com> +Date: Thu Feb 3 11:04:45 2022 +0100 + + Initial commit diff --git a/dfs b/dfs new file mode 100644 index 00000000..31665f69 --- /dev/null +++ b/dfs @@ -0,0 +1,622 @@ +diff --git a/.gitattributes b/.gitattributes +new file mode 100644 +index 0000000..00a51af +--- /dev/null ++++ b/.gitattributes +@@ -0,0 +1,6 @@ ++# ++# https://help.github.com/articles/dealing-with-line-endings/ ++# ++# These are explicitly windows files and should use crlf ++*.bat text eol=crlf ++ +diff --git a/.gitignore b/.gitignore +index a1c2a23..e25b37a 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -1,17 +1,32 @@ ++# Ignore Gradle project-specific cache directory ++.gradle ++#Ignoro los directorios que crea el IDE en el espacio de trabajo, que no se suba a git ++.settings ++.metadata ++.classpath ++.project ++.gitattributes ++ ++# Ignore Gradle build output directory ++build ++ ++# Ignora la carpeta de compilados ++bin ++ ++# Ignorar el fichero de propiedades de gradle, porque tienen datos personales ++gradle.properties ++ ++ + # Compiled class file + *.class +  + # Log file + *.log +  +-# BlueJ files +-*.ctxt +- +-# Mobile Tools for Java (J2ME) +-.mtj.tmp/ +- + # Package Files # + *.jar ++#excluso el gradle wrapper de esta regla, sí quiero controlarlo ++!gradle/wrapper/gradle-wrapper.jar + *.war + *.nar + *.ear +@@ -19,5 +34,6 @@ + *.tar.gz + *.rar +  +-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +-hs_err_pid* ++ ++ ++ +diff --git a/README.md b/README.md +index afc2cbc..8f992dc 100644 +--- a/README.md ++++ b/README.md +@@ -1,2 +1,13 @@ +-# Audit4Improve-API ++Audit4Improve-API ++ + Código base usado como ejemplo en la asignatura Factorías de Software, de 1º del MUIT de la Universidad de Sevilla ++ ++Funcionalidad ++Librería con capacidades que den soporte al desarrollo de aplicaciones para la mejora continua del proceso software ++ ++Características ++Usa gradle para controlar la construcción y dependencias, incluye gradle wrapper ++Usa el sistema de trazado de java ++Usa Jupiter y Mockito para pruebas ++Usa la librería github api (https://mvnrepository.com/artifact/org.kohsuke/github-api/1.301) para interaccionar con github ++ +diff --git a/build.gradle b/build.gradle +new file mode 100644 +index 0000000..bde3a8a +--- /dev/null ++++ b/build.gradle +@@ -0,0 +1,99 @@ ++/* ++ * This file was generated by the Gradle 'init' task. ++ * ++ * This generated file contains a sample Java library project to get you started. ++ * For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle ++ * User Manual available at https://docs.gradle.org/7.3.3/userguide/building_java_projects.html ++ * This project uses @Incubating APIs which are subject to change. ++ */ ++ ++plugins { ++ // Apply the java-library plugin for API and implementation separation. ++ id 'java-library' ++  ++ //Añado el plugin para eclipse ++ id 'eclipse' ++ //para poder publicar paquetes en github ++ id 'maven-publish' ++} ++version = '0.0' ++tasks.withType(JavaCompile) { ++ //Añadir la opción Xlint ++ options.deprecation = true ++ options.encoding = 'ISO-8859-1' ++} ++tasks.withType(Javadoc){ ++  ++ description = "Genera la documentación" ++ //indicar que la codificación es ISO ++ options.encoding = 'ISO-8859-1' ++ options.charSet = 'ISO-8859-1' ++ options.author = true ++ options.version = true ++ options.use = true ++ options.memberLevel = JavadocMemberLevel.PROTECTED ++ options.footer = "MIT-FS: Curso 2021/22" ++ title = "Supervisor" ++} ++ ++repositories { ++ // Use Maven Central for resolving dependencies. ++ mavenCentral() ++} ++ ++dependencies { ++ // This dependency is exported to consumers, that is to say found on their compile classpath. ++ api 'org.apache.commons:commons-math3:3.6.1' ++ //Añado la dependencia de la librería github que vamos a usar ++  ++ // https://mvnrepository.com/artifact/org.kohsuke/github-api ++ implementation group: 'org.kohsuke', name: 'github-api', version: '1.301' ++ // This dependency is used internally, and not exposed to consumers on their own compile classpath. ++ implementation 'com.google.guava:guava:30.1.1-jre' ++ //Añado para usar mockito ++ testImplementation 'org.mockito:mockito-core:4.3.1' ++ // https://mvnrepository.com/artifact/org.mockito/mockito-junit-jupiter ++ testImplementation 'org.mockito:mockito-junit-jupiter:4.3.1' ++ ++} ++ ++testing { ++ suites { ++ // Configure the built-in test suite ++ test { ++  ++ // Use JUnit Jupiter test framework ++ useJUnitJupiter('5.7.2') ++  ++ } ++ } ++} ++//Para publicar paquetes en github ++//group = 'A4I' ++publishing { ++ repositories { ++ maven { ++ name = "GitHubPackages" ++ url = uri("https://maven.pkg.github.com/mit-fs/audit4improve-api") ++ credentials { ++ //las propiedades gpr.user y gpr.key están configuradas en gradle.properties en el raiz del proyecto, y se añade a .gitignore para que no se suban ++ username = project.findProperty("gpr.user") ?: System.getenv("GITHUB_USERNAME") ++ password = project.findProperty("gpr.key") ?: System.getenv("GITHUB_TOKEN") ++ } ++ } ++ } ++ publications { ++ gpr(MavenPublication) { ++ //Del tutorial https://docs.gradle.org/current/userguide/publishing_maven.html#publishing_maven ++  ++ groupId = 'mitfs.samples' ++ artifactId = 'a4i' ++ version = '0.0' ++ ++ from components.java ++ } ++  ++ } ++} ++ ++ +diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar +new file mode 100644 +index 0000000..7454180 +Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ +diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties +new file mode 100644 +index 0000000..2e6e589 +--- /dev/null ++++ b/gradle/wrapper/gradle-wrapper.properties +@@ -0,0 +1,5 @@ ++distributionBase=GRADLE_USER_HOME ++distributionPath=wrapper/dists ++distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip ++zipStoreBase=GRADLE_USER_HOME ++zipStorePath=wrapper/dists +diff --git a/gradlew b/gradlew +new file mode 100644 +index 0000000..c53aefa +--- /dev/null ++++ b/gradlew +@@ -0,0 +1,234 @@ ++#!/bin/sh ++ ++# ++# Copyright © 2015-2021 the original authors. ++# ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# https://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++# ++ ++############################################################################## ++# ++# Gradle start up script for POSIX generated by Gradle. ++# ++# Important for running: ++# ++# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is ++# noncompliant, but you have some other compliant shell such as ksh or ++# bash, then to run this script, type that shell name before the whole ++# command line, like: ++# ++# ksh Gradle ++# ++# Busybox and similar reduced shells will NOT work, because this script ++# requires all of these POSIX shell features: ++# * functions; ++# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», ++# «${var#prefix}», «${var%suffix}», and «$( cmd )»; ++# * compound commands having a testable exit status, especially «case»; ++# * various built-in commands including «command», «set», and «ulimit». ++# ++# Important for patching: ++# ++# (2) This script targets any POSIX shell, so it avoids extensions provided ++# by Bash, Ksh, etc; in particular arrays are avoided. ++# ++# The "traditional" practice of packing multiple parameters into a ++# space-separated string is a well documented source of bugs and security ++# problems, so this is (mostly) avoided, by progressively accumulating ++# options in "$@", and eventually passing that to Java. ++# ++# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, ++# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; ++# see the in-line comments for details. ++# ++# There are tweaks for specific operating systems such as AIX, CygWin, ++# Darwin, MinGW, and NonStop. ++# ++# (3) This script is generated from the Groovy template ++# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt ++# within the Gradle project. ++# ++# You can find Gradle at https://github.com/gradle/gradle/. ++# ++############################################################################## ++ ++# Attempt to set APP_HOME ++ ++# Resolve links: $0 may be a link ++app_path=$0 ++ ++# Need this for daisy-chained symlinks. ++while ++ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path ++ [ -h "$app_path" ] ++do ++ ls=$( ls -ld "$app_path" ) ++ link=${ls#*' -> '} ++ case $link in #( ++ /*) app_path=$link ;; #( ++ *) app_path=$APP_HOME$link ;; ++ esac ++done ++ ++APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit ++ ++APP_NAME="Gradle" ++APP_BASE_NAME=${0##*/} ++ ++# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. ++DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' ++ ++# Use the maximum available, or set MAX_FD != -1 to use that value. ++MAX_FD=maximum ++ ++warn () { ++ echo "$*" ++} >&2 ++ ++die () { ++ echo ++ echo "$*" ++ echo ++ exit 1 ++} >&2 ++ ++# OS specific support (must be 'true' or 'false'). ++cygwin=false ++msys=false ++darwin=false ++nonstop=false ++case "$( uname )" in #( ++ CYGWIN* ) cygwin=true ;; #( ++ Darwin* ) darwin=true ;; #( ++ MSYS* | MINGW* ) msys=true ;; #( ++ NONSTOP* ) nonstop=true ;; ++esac ++ ++CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar ++ ++ ++# Determine the Java command to use to start the JVM. ++if [ -n "$JAVA_HOME" ] ; then ++ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then ++ # IBM's JDK on AIX uses strange locations for the executables ++ JAVACMD=$JAVA_HOME/jre/sh/java ++ else ++ JAVACMD=$JAVA_HOME/bin/java ++ fi ++ if [ ! -x "$JAVACMD" ] ; then ++ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME ++ ++Please set the JAVA_HOME variable in your environment to match the ++location of your Java installation." ++ fi ++else ++ JAVACMD=java ++ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. ++ ++Please set the JAVA_HOME variable in your environment to match the ++location of your Java installation." ++fi ++ ++# Increase the maximum file descriptors if we can. ++if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then ++ case $MAX_FD in #( ++ max*) ++ MAX_FD=$( ulimit -H -n ) || ++ warn "Could not query maximum file descriptor limit" ++ esac ++ case $MAX_FD in #( ++ '' | soft) :;; #( ++ *) ++ ulimit -n "$MAX_FD" || ++ warn "Could not set maximum file descriptor limit to $MAX_FD" ++ esac ++fi ++ ++# Collect all arguments for the java command, stacking in reverse order: ++# * args from the command line ++# * the main class name ++# * -classpath ++# * -D...appname settings ++# * --module-path (only if needed) ++# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. ++ ++# For Cygwin or MSYS, switch paths to Windows format before running java ++if "$cygwin" || "$msys" ; then ++ APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) ++ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) ++ ++ JAVACMD=$( cygpath --unix "$JAVACMD" ) ++ ++ # Now convert the arguments - kludge to limit ourselves to /bin/sh ++ for arg do ++ if ++ case $arg in #( ++ -*) false ;; # don't mess with options #( ++ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath ++ [ -e "$t" ] ;; #( ++ *) false ;; ++ esac ++ then ++ arg=$( cygpath --path --ignore --mixed "$arg" ) ++ fi ++ # Roll the args list around exactly as many times as the number of ++ # args, so each arg winds up back in the position where it started, but ++ # possibly modified. ++ # ++ # NB: a `for` loop captures its iteration list before it begins, so ++ # changing the positional parameters here affects neither the number of ++ # iterations, nor the values presented in `arg`. ++ shift # remove old arg ++ set -- "$@" "$arg" # push replacement arg ++ done ++fi ++ ++# Collect all arguments for the java command; ++# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of ++# shell script including quotes and variable substitutions, so put them in ++# double quotes to make sure that they get re-expanded; and ++# * put everything else in single quotes, so that it's not re-expanded. ++ ++set -- \ ++ "-Dorg.gradle.appname=$APP_BASE_NAME" \ ++ -classpath "$CLASSPATH" \ ++ org.gradle.wrapper.GradleWrapperMain \ ++ "$@" ++ ++# Use "xargs" to parse quoted args. ++# ++# With -n1 it outputs one arg per line, with the quotes and backslashes removed. ++# ++# In Bash we could simply go: ++# ++# readarray ARGS < <( xargs -n1 <<<"$var" ) && ++# set -- "${ARGS[@]}" "$@" ++# ++# but POSIX shell has neither arrays nor command substitution, so instead we ++# post-process each arg (as a line of input to sed) to backslash-escape any ++# character that might be a shell metacharacter, then use eval to reverse ++# that process (while maintaining the separation between arguments), and wrap ++# the whole thing up as a single "set" statement. ++# ++# This will of course break if any of these variables contains a newline or ++# an unmatched quote. ++# ++ ++eval "set -- $( ++ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | ++ xargs -n1 | ++ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | ++ tr '\n' ' ' ++ )" '"$@"' ++ ++exec "$JAVACMD" "$@" +diff --git a/gradlew.bat b/gradlew.bat +new file mode 100644 +index 0000000..107acd3 +--- /dev/null ++++ b/gradlew.bat +@@ -0,0 +1,89 @@ ++@rem ++@rem Copyright 2015 the original author or authors. ++@rem ++@rem Licensed under the Apache License, Version 2.0 (the "License"); ++@rem you may not use this file except in compliance with the License. ++@rem You may obtain a copy of the License at ++@rem ++@rem https://www.apache.org/licenses/LICENSE-2.0 ++@rem ++@rem Unless required by applicable law or agreed to in writing, software ++@rem distributed under the License is distributed on an "AS IS" BASIS, ++@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++@rem See the License for the specific language governing permissions and ++@rem limitations under the License. ++@rem ++ ++@if "%DEBUG%" == "" @echo off ++@rem ########################################################################## ++@rem ++@rem Gradle startup script for Windows ++@rem ++@rem ########################################################################## ++ ++@rem Set local scope for the variables with windows NT shell ++if "%OS%"=="Windows_NT" setlocal ++ ++set DIRNAME=%~dp0 ++if "%DIRNAME%" == "" set DIRNAME=. ++set APP_BASE_NAME=%~n0 ++set APP_HOME=%DIRNAME% ++ ++@rem Resolve any "." and ".." in APP_HOME to make it shorter. ++for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi ++ ++@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. ++set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" ++ ++@rem Find java.exe ++if defined JAVA_HOME goto findJavaFromJavaHome ++ ++set JAVA_EXE=java.exe ++%JAVA_EXE% -version >NUL 2>&1 ++if "%ERRORLEVEL%" == "0" goto execute ++ ++echo. ++echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. ++echo. ++echo Please set the JAVA_HOME variable in your environment to match the ++echo location of your Java installation. ++ ++goto fail ++ ++:findJavaFromJavaHome ++set JAVA_HOME=%JAVA_HOME:"=% ++set JAVA_EXE=%JAVA_HOME%/bin/java.exe ++ ++if exist "%JAVA_EXE%" goto execute ++ ++echo. ++echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% ++echo. ++echo Please set the JAVA_HOME variable in your environment to match the ++echo location of your Java installation. ++ ++goto fail ++ ++:execute ++@rem Setup the command line ++ ++set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar ++ ++ ++@rem Execute Gradle ++"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* ++ ++:end ++@rem End local scope for the variables with windows NT shell ++if "%ERRORLEVEL%"=="0" goto mainEnd ++ ++:fail ++rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of ++rem the _cmd.exe /c_ return code! ++if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 ++exit /b 1 ++ ++:mainEnd ++if "%OS%"=="Windows_NT" endlocal ++ ++:omega +diff --git a/settings.gradle b/settings.gradle +new file mode 100644 +index 0000000..0669786 +--- /dev/null ++++ b/settings.gradle +@@ -0,0 +1,11 @@ ++/* ++ * This file was generated by the Gradle 'init' task. ++ * ++ * The settings file is used to specify which projects to include in your build. ++ * ++ * Detailed information about configuring a multi-project build in Gradle can be found ++ * in the user manual at https://docs.gradle.org/7.3.3/userguide/multi_project_builds.html ++ * This project uses @Incubating APIs which are subject to change. ++ */ ++ ++rootProject.name = 'Audit4Improve' +\ No newline at end of file +diff --git a/src/main/java/us/muit/fs/a4i/control/SupervisorControl.java b/src/main/java/us/muit/fs/a4i/control/SupervisorControl.java +new file mode 100644 +index 0000000..70fd42c +--- /dev/null ++++ b/src/main/java/us/muit/fs/a4i/control/SupervisorControl.java +@@ -0,0 +1,46 @@ ++/* ++ * This Java source file was generated by the Gradle 'init' task. ++ */ ++package us.muit.fs.a4i.control; ++import org.kohsuke.github.*; ++import java.util.logging.*; ++ ++ /** ++  * @author Isabel Román Martínez ++  * @version 0.0 ++  * Esta clase se crea para poder probar algunas de las capacidades que ofrece la api github ++  * Será descartada posteriormente ++  * ++  */ ++public class SupervisorControl { ++ private static Logger log=Logger.getLogger(SupervisorControl.class.getName()); ++ /** ++  * @param args ++  */ ++ public static void main(String[] args) { ++ try { ++ GitHub github = GitHubBuilder.fromEnvironment().build(); ++ GHMyself myinfo=github.getMyself(); ++ GHRepository unrepo=github.getRepository("MIT-FS/ShopManager"); ++ PagedIterable myrepos=myinfo.listRepositories(); ++ PagedIterable myOwnRepos=myinfo.listRepositories(10, GHMyself.RepositoryListFilter.OWNER); ++ int count=1; ++ for(GHRepository repo:myOwnRepos.toList()) { ++ System.out.println("Nombre de mi repositorio número "+count+" "+repo.getFullName()); ++ if(repo.isFork()) { ++ System.out.println("Que es un fork de "+repo.fork().getName()); ++ } ++ count++; ++ } ++ log.info("Mis datos "+myinfo);  ++ log.info("Mi repositorio "+unrepo); ++ log.info("Número de repositorios "+myrepos.toList().size()); ++ log.info("Detalles de mis repositorios "+myrepos.toList()); ++ }catch(Exception e) { ++ log.info(e+" No se puede crear la instancia GitHub\n"); ++ log.info("Recuerde que debe configurar las variables de entorno GITHUB_LOGIN y GITHUB_OAUTH con su nombre de usuario y token respectivamente"); ++ } ++ } ++ ++  ++} +diff --git a/src/main/resources/log.properties b/src/main/resources/log.properties +new file mode 100644 +index 0000000..035d7a9 +--- /dev/null ++++ b/src/main/resources/log.properties +@@ -0,0 +1,35 @@ ++# especificacion de detalle de log ++# nivel de log global ++.level = ALL ++# nivel clases ++ ++ ++# manejadores de salida de log ++# \ No newline at end of file