Site Loader

Debido a los requisitos de un gran proyecto o a las ganas de no repetir código y poder crear librerías propias reutilizables, en este artículo se enumera paso a paso cómo generar una librería PHP en Github y publicarla en un repositorio privado con autentificación SSH.

Requisitos

  • Cuenta de Github.
  • Sistema operativo capaz de gestionar una clave SSH.
  • Proyecto PHP con Composer como gestor de dependencias.
  • Composer
  • PHP

Paso 1: Repositorio privado en Github

Actualmente la política de Github permite poder crear un repositorio privado con ciertas restricciones, como miembros implicados, etc. Por lo tanto, como es sencillo y fácil poder tener un repositorio propio en la nube mediante Github, sin necesidad de configurar y mantener un Gitlab o Gitea (alternativas totalmente válidas) en una máquina propia, vamos a utilizar esta herramienta.

Repositorio privado Github
Repositorio privado Github

Para generar un repositorio en Github, en primer lugar hay que seleccionar en la parte superior derecha el icono +. Después, es tan sencillo como completar los campo del formulario y marcar la opción de repositorio privado.

Una vez has generado el repositorio, puedes añadir el código necesario para generar tu propia librería PHP.

En caso de no tener clara una estructura de ficheros inicial, en el siguiente enlace te presentan una estructura válida para tomarla como punto de referencia y empezar a desarrollar tus propias clases y ficheros.

Paso 2: Autentificación SSH

El sistema de autentificación mediante clave SSH te permitirá poder descargar y actualizar tu código sin necesidad de tener contraseñas ni exponer tu código privado públicamente.

En primer lugar, es necesario acceder a la zona de configuración para poder añadir una clave SSH.

Autentificación SSH
Acceder al panel de claves SSH

Para añadir una nueva clave SSH autorizada en nuestra cuenta de Github debemos de ir a Settings > SSH and GPG keys > New SSH key.

Autentificación SSH Formulario
Formulario para claves SSH

Una vez hemos accedido al formulario para añadir una nueva clave SSH, debemos de obtener dicha clave.

Hay dos opciones, podemos tener una clave ya generada y por lo tanto se puede utilizar la clave ya existente. O por otro lado, se puede generar una nueva clave SSH. En el siguiente enlace se puede obtener más información sobre cómo generar una clave SSH.

Normalmente las claves SSH se puede encontrar en el siguiente directorio en un sistema operativo Linux como Debian:

cd ~/.ssh

En dicho directorio debe de aparecer un fichero con el nombre que tu le dieras a dicha clave (comúnmente id_rsa) y que acaba con la extensión .pub. Copia todo el contenido que contiene el fichero y pégalo en el campo «Key» del formulario anterior.

Si aun así aun hay alguna duda o algún problema por resolver os remito a la guía oficial de Github para añadir una nueva clave SSH en vuestra cuenta.

Paso 3: Configurar librería PHP mediante Composer

Normalmente Composer es un gestor de dependencias que obtiene las librerías del repositorio oficial Packagist. Sin embargo, en este caso le vamos a especificar una ruta o una dirección diferente para que obtenga el código, ya que nuestra principal necesidad es que el código no sea expuesto públicamente y siga siendo privado.

Configurar repositorio

El primer paso es ejecutar el siguiente comando en la raíz de nuestro proyecto PHP que requiere como dependencia la librería que hemos desarrollado.

composer config repositories.articulo-tecnoexperiencia vcs git@github.com:javieerrubio11/articulo-tecnoxperiencia.git

El comando anterior genera una configuración en el fichero composer.json con la cual se está indicando a Composer el lugar de donde tiene que obtener el código de nuestra librería privada.

Instalar dependencia

Instalar una nueva dependencia es el comando que siempre se suele utilizar para realizar dicha acción. Sin embargo, tendrá una peculiaridad que hace falta añadir o no funcionará.

composer require javieerrubio11/articulo-tecnoxperiencia -n

Como se puede observar, la peculiaridad es el atributo -n como parámetro al comando de ejecución composer require.

Este atributo es necesario para que composer utiliza otra forma de autentificación, ya que por defecto no utiliza la autentificación por clave SSH. Por lo tanto, si no añades este parámetro no se descargará el código.

De todas formas, en la documentación oficial de composer puedes documentarte mejor sobre este parámetro en el apartado setup.

Conclusión

Como he comentado en el artículo, en determinadas ocasiones necesitas que tu código sea privado y además tener librerías propias para necesidades especificas. De esta forma, se ha demostrado que no es tan complicado programar código reutilizable utilizando los recursos disponibles en Internet.

Es cierto que en muchos de los pasos anteriores se pueden añadir alternativas, como un Gitlab propio en lugar de Github. De esta forma no tendrás el problema de que cambien la política de con los repositorios privados por ejemplo.

De todas formas, pienso que es una buena práctica reutilizar código y programar librerías propias para saber cómo funcionan ciertas librerías que estamos utilizando. Además, siempre que hablo con un desarrollador lo animo a leer de vez en cuando cómo funcionan muchas de las librerías que estás utilizando en tu proyecto y la cual dependes más de lo que piensas.

Compartir en redes sociales:

Post Author: Vicente Javier González Llobet

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

LinkedIn
Share