Usar repositorios Git como paquetes de Composer

No todos los proyectos de GitHub están registrados en packagist.com o tienen creado un “composer.json” que nos permita agregarlo de forma sencilla en nuestro proyecto. Por suerte, composer nos permite salvar esta situación cargando los datos del repositorio directamente en nuestro archivo de dependencias.

Para hacerlo debemos cargar la información del proyecto en el array “repositories”, especificando dónde están los fuentes, el nombre, la versión, étc.

{
  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "fullcalendar/fullcalendar",
        "version": "2.5.0",
        "dist": {
          "url": "https://github.com/fullcalendar/fullcalendar/archive/v2.5.0.zip",
          "type": "zip"
        },
        "source": {
          "url": "https://github.com/fullcalendar/fullcalendar.git",
          "type": "git",
          "reference": "tags/v2.5.0"
        },
        "require": {
          "components/jquery": ">=1.7.1",
          "moment/moment": ">=2.5.0"
        }
      }
    },
  ]

Como vemos, en última instancia, lo que hacemos es indicar manualmente toda la información que debiera tener el proyecto si estuviera cargado en el repositorio de packagist.com. Una vez hecho esto podemos usar el paquete como cualquier otro dentro de este proyecto con el nombre indicado en la propiedad “name”.

Por ejemplo, el archivo “composer.json” de un proyecto donde incluyamos la librería Fullcalendar Scheduler, que depende de esta, quedaría así:

{
  "name": "rvaccaro/agenda",
  "authors": [
    {
      "name": "Roberto Vaccaro",
      "email": "xxxx@xxxx.com"
    }
  ],
  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "fullcalendar/fullcalendar",
        "version": "2.5.0",
        "dist": {
          "url": "https://github.com/fullcalendar/fullcalendar/archive/v2.5.0.zip",
          "type": "zip"
        },
        "source": {
          "url": "https://github.com/fullcalendar/fullcalendar.git",
          "type": "git",
          "reference": "tags/v2.5.0"
        },
        "require": {
          "components/jquery": ">=1.7.1",
          "moment/moment": ">=2.5.0"
        }
      }
    },
    {
      "type": "package",
      "package": {
        "name": "fullcalendar/scheduler",
        "version": "1.1.0",
        "dist": {
          "url": "https://github.com/fullcalendar/fullcalendar-scheduler/archive/v1.1.0.zip",
          "type": "zip"
        },
        "source": {
          "url": "https://github.com/fullcalendar/fullcalendar-scheduler.git",
          "type": "git",
          "reference": "tags/v1.1.0"
        },
        "require": {
          "components/jquery": ">=1.8.0",
          "moment/moment": ">=2.5.0",
          "fullcalendar/fullcalendar": ">=2.5.0"
        }
      }
    }
  ],
  "require": {
    "fullcalendar/scheduler": "1.1.*",
  }
}

Usar Git+PuTTY para conectarse a repositorios en Windows

Instalar GIT para Windows – Descarga
Instalar PuTTY – Descarga 

Utilizar PuTTYgen para crear un par de claves
Abrir PuTTYgen, cambiar la cantidad de bits y el tipo de clave si hiciera falta. Hacer click en “Generate”. Mover el mouse en el cuadrado vacio hasta que la barra de progreso se llene. Una vez que esté generada la clave se habilitan los botones “Save public key” y “Save private key” que nos permiten guardar, respectivamente, la clave pública y la privada. El nombre se puede elegir libremente, conviene utilizar el mismo. La clave pública no tiene extensión predeterminada pero es práctico utilizar txt para acceder más rápidamente.

Agregar la clave privada a Pageant

Agregar la clave pública al servidor GIT

Indicar que PuTTY es tu almacén de claves SSH
…asignando la variable de sistema o usuario GIT_SSH al ruta de “plink.exe”, ubicado en la misma carpeta de PuTTY. En Windows 7, entrar al Panel de Control, Sistema, Configuración avanzada del sistema, Variables de Entorno, en Variables de usuario o del sistema hacer click en Nueva. Usar como nombre GIT_SSH y como valor la ruta completa a plink, por ejemplo: “C:\Program Files (x86)\PuTTY\plink.exe”