From bc79b88e9190ca58ff8219e04d5d34ccae6153a5 Mon Sep 17 00:00:00 2001
From: lucha <lucha@paranoici.org>
Date: Tue, 1 Sep 2020 17:22:03 -0700
Subject: [PATCH] use Gitlab Composer Package Registry instead than VCS repos

---
 .gitignore    |   1 +
 README.md     |  31 +++++-----
 composer.json |  27 +++-----
 composer.lock | 167 ++++++++++++++++++++++++++++----------------------
 4 files changed, 120 insertions(+), 106 deletions(-)

diff --git a/.gitignore b/.gitignore
index 140fada7..9d1a56ce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 vendor/*
+auth.json
diff --git a/README.md b/README.md
index b447db05..01712673 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,9 @@ Usiamo Composer  ([e.g](https://www.smashingmagazine.com/2019/03/composer-wordpr
 
 ## Come testare questo repository
 
-* Instalare composer (richiede una versione di PHP moderna, io su Ubuntu sto usando la 7.2)
+* Instalare composer e impostare il repository
+
+(richiede una versione di PHP moderna, io su Ubuntu sto usando la 7.2)
 
 ``` shell
 apt install composer
@@ -24,7 +26,15 @@ Io ho dovuto installare alcune librerie php extra
 ``` shell
 apt install php7.2-xml php7.2zip
 ```
-* per aggiornare le dipendenze di noblogs, il comando da usare è 
+Il codice scritto da noi (temi e plugin) si trova nel gruppo @noblogs. Viene tutto rilasciato come pacchetti Composer sul Registry di GitLab.
+Per poter accederci, bisogna configurare un (https://git.autistici.org/help/user/profile/personal_access_tokens.md)[personal access token] con i permessi di ```api```.
+Una volta fatto, bisogna lanciare
+``` shell
+composer config http-basic.gitlab.com ___token___ <ACCESS_TOKEN>
+```
+dove ```<ACCESS_TOKEN>``` è il nostro token personale. A quel punto composer crea un file ```auth.json``` nel repo, che è vostro personale e non va mai committato (è già in ```.gitignore```).
+
+* Per aggiornare le dipendenze di noblogs, il comando da usare è 
 ``` shell
 composer update
 ```
@@ -87,21 +97,14 @@ Per aggiungere un nuovo tema/plugin dal repository wpackagist, si usa
 composer require wpackagist-[theme|plugin]/[..]
 ```
 
-Se invece vogliamo aggiungere un pacchetto scritto da noi, prima dobbiamo aggiungere l'indirizzo del repository (questo almeno fino a quando Gitlab non implementi il repository per i pacchetti composer), aggiungendo in ```composer.json``` alla lista dei repository un repository di tipo ```vcs```, per esempio
-
-``` json
-"repositories": [
-        {
-            "type": "vcs",
-            "url": "git@git.autistici.org:lucha/r2db.git"
-        }
-]
-```
+Se invece vogliamo aggiungere un pacchetto scritto da noi, prima dobbiamo farlo diventare un pacchetto composer. Il repository sarebbe bello fosse dentro il gruppo @noblogs (ma forse funziona comunque).
+Bisogna creare un file ```composer.json``` dentro il repository del pacchetto in questione (date un occhio a quelli già presenti per una ispirazione), e poi aggiungere un file ```.gitlab-ci.yml``` sequendo queste istruzioni noblogs/composer-publish>. A questo punto ogni volta che pushiamo una nuova tag su gitlab verrà creata una nuova release.
+Se il repository che includiamo ha delle tag di versione del tipo ```vX.Y.Z``` (dove X, Y, Z sono numeri, per esempio "v1.2" o "v4.0.1"), allora ```composer``` sa cosa fare (prendere l'ultima versione disponibile di default).
 
-Se il repository che includiamo ha delle tag di versione del tipo ```vX.Y.Z``` (dove X, Y, Z sono numeri, per esempio "v1.2" o "v4.0.1"), allora ```composer``` sa cosa fare (prendere l'ultima versione disponibile di default). Altrimenti, dobbiamo dirgli di prendere la versione del branch master (o qualsiasi altro branch), con
+A quel punto possiamo aggiungerlo come una dipendenza qualsiasi con
 
 ``` shell
-composer require --dev lucha/r2db:dev-master
+composer require noblogs/nomepacchetto
 ```
 
 ## Creare patches
diff --git a/composer.json b/composer.json
index ffb54992..a85d5fb8 100644
--- a/composer.json
+++ b/composer.json
@@ -19,18 +19,10 @@
 	    "type": "composer",
             "url": "https://asset-packagist.org"
 	},
-        {
-            "type": "vcs",
-            "url": "git@git.autistici.org:noblogs/r2db.git"
-        },
-        {
-            "type": "vcs",
-            "url": "git@git.autistici.org:noblogs/ai-mu-plugins.git"
-        },
-        {
-            "type": "vcs",
-            "url": "git@git.autistici.org:noblogs/noblogs-wp-ssl.git"
-        }
+	{
+	    "type": "composer",
+	    "url": "https://git.autistici.org/api/v4/group/90/-/packages/composer/packages.json"
+	}	
     ],
     "config": {        
         "dropin-installer": "copy"
@@ -94,7 +86,11 @@
         "wpackagist-theme/wp-andreas01": "^2.0",
         "wpackagist-theme/zenlite": "^4.10",
         "npm-asset/scriptaculous-js": "^1.9",
-        "npm-asset/prototype-js-core": "^1.7"
+        "npm-asset/prototype-js-core": "^1.7",
+        "noblogs/r2db": "^0.1.0",
+        "noblogs/ai-mu-plugins": "^0.1.0",
+        "noblogs/noblogs-wp-ssl": "^0.1.0",
+        "noblogs/remove-gravatar": "^0.1.0"
     },    
     "extra": {
         "wordpress-install-dir": "app/wp",
@@ -127,10 +123,5 @@
             "app/wp-content": ["package:wpackagist-plugin/hyperdb:db.php", "package:wpackagist-plugin/wp-super-cache:advanced-cache.php"],
             "app": ["package:lucha/r2db:db-config.php,nginx-map/wp-nginx-map-json.php,nginx-map/wp-nginx-map.php"]
         }
-    },
-    "require-dev": {
-        "noblogs/r2db": "dev-master",
-        "noblogs/ai-mu-plugins": "dev-master",
-        "noblogs/noblogs-wp-ssl": "dev-master"
     }
 }
diff --git a/composer.lock b/composer.lock
index 01b60f42..fbfb0764 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "6565a0ba753e30855d1b3fd1a96fda9d",
+    "content-hash": "f899bee81c683d8359b7d10c1cd6da27",
     "packages": [
         {
             "name": "bjornjohansen/wplang",
@@ -411,6 +411,96 @@
             "description": "Install packages or a few files from packages into custom paths without overwriting existing stuff.",
             "time": "2018-02-04T10:52:01+00:00"
         },
+        {
+            "name": "noblogs/ai-mu-plugins",
+            "version": "0.1.0",
+            "dist": {
+                "type": "zip",
+                "url": "https://git.autistici.org/api/v4/projects/452/packages/composer/archives/noblogs/ai-mu-plugins.zip?sha=65a0039b2a06c415c8a5ccfee73e9254a1dacfad",
+                "reference": "65a0039b2a06c415c8a5ccfee73e9254a1dacfad",
+                "shasum": ""
+            },
+            "require": {
+                "composer/installers": "^1.9"
+            },
+            "type": "wordpress-muplugin",
+            "authors": [
+                {
+                    "name": "lucha",
+                    "email": "lucha@paranoici.org"
+                }
+            ],
+            "description": "must-use plugins for Noblogs"
+        },
+        {
+            "name": "noblogs/noblogs-wp-ssl",
+            "version": "0.1.0",
+            "dist": {
+                "type": "zip",
+                "url": "https://git.autistici.org/api/v4/projects/221/packages/composer/archives/noblogs/noblogs-wp-ssl.zip?sha=fe58b34f3a940322ecf74356425d0dc4fc47b7c8",
+                "reference": "fe58b34f3a940322ecf74356425d0dc4fc47b7c8",
+                "shasum": ""
+            },
+            "require": {
+                "composer/installers": "^1.9"
+            },
+            "type": "wordpress-muplugin",
+            "authors": [
+                {
+                    "name": "sand",
+                    "email": "sand@autistici.org"
+                }
+            ],
+            "description": "git@git.autistici.org:ai/noblogs-wp-ssl.git"
+        },
+        {
+            "name": "noblogs/r2db",
+            "version": "0.1.0",
+            "dist": {
+                "type": "zip",
+                "url": "https://git.autistici.org/api/v4/projects/449/packages/composer/archives/noblogs/r2db.zip?sha=6db8ed54d228e00305d43d36ea77a869f7d48764",
+                "reference": "6db8ed54d228e00305d43d36ea77a869f7d48764",
+                "shasum": ""
+            },
+            "require": {
+                "composer/installers": "^1.9"
+            },
+            "type": "wordpress-dropin",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "lucha",
+                    "email": "lucha@paranoici.org"
+                }
+            ],
+            "description": "r2db wordpress database"
+        },
+        {
+            "name": "noblogs/remove-gravatar",
+            "version": "0.1.0",
+            "dist": {
+                "type": "zip",
+                "url": "https://git.autistici.org/api/v4/projects/456/packages/composer/archives/noblogs/remove-gravatar.zip?sha=4fa1d9a959e444f6e35898599bd653cab4c0c723",
+                "reference": "4fa1d9a959e444f6e35898599bd653cab4c0c723",
+                "shasum": ""
+            },
+            "require": {
+                "composer/installers": "^1.9"
+            },
+            "type": "wordpress-plugin",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "lechuck",
+                    "email": "l3chuck@autistici.org"
+                }
+            ],
+            "description": "Wordpress plugin: avoid sending out user information to gravatar."
+        },
         {
             "name": "npm-asset/prototype-js-core",
             "version": "1.7.3",
@@ -1406,81 +1496,10 @@
             "homepage": "https://wordpress.org/themes/zenlite/"
         }
     ],
-    "packages-dev": [
-        {
-            "name": "noblogs/ai-mu-plugins",
-            "version": "dev-master",
-            "source": {
-                "type": "git",
-                "url": "git@git.autistici.org:noblogs/ai-mu-plugins.git",
-                "reference": "901619c4f4732f42854a48e66cb0fd469ae32911"
-            },
-            "require": {
-                "composer/installers": "^1.9"
-            },
-            "type": "wordpress-muplugin",
-            "authors": [
-                {
-                    "name": "lucha",
-                    "email": "lucha@paranoici.org"
-                }
-            ],
-            "description": "must-use plugins for Noblogs",
-            "time": "2020-07-04T23:40:19+00:00"
-        },
-        {
-            "name": "noblogs/noblogs-wp-ssl",
-            "version": "dev-master",
-            "source": {
-                "type": "git",
-                "url": "git@git.autistici.org:noblogs/noblogs-wp-ssl.git",
-                "reference": "50eed1588999fed0a94efe54031a5bde3c15db47"
-            },
-            "require": {
-                "composer/installers": "^1.9"
-            },
-            "type": "wordpress-muplugin",
-            "authors": [
-                {
-                    "name": "sand",
-                    "email": "sand@autistici.org"
-                }
-            ],
-            "description": "git@git.autistici.org:ai/noblogs-wp-ssl.git",
-            "time": "2020-07-04T23:46:53+00:00"
-        },
-        {
-            "name": "noblogs/r2db",
-            "version": "dev-master",
-            "source": {
-                "type": "git",
-                "url": "git@git.autistici.org:noblogs/r2db.git",
-                "reference": "5b555ecbde87579abf7778522a36cfe913b2dc30"
-            },
-            "require": {
-                "composer/installers": "^1.9"
-            },
-            "type": "wordpress-dropin",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "lucha",
-                    "email": "lucha@paranoici.org"
-                }
-            ],
-            "description": "r2db wordpress database",
-            "time": "2020-07-04T23:41:05+00:00"
-        }
-    ],
+    "packages-dev": [],
     "aliases": [],
     "minimum-stability": "stable",
-    "stability-flags": {
-        "noblogs/r2db": 20,
-        "noblogs/ai-mu-plugins": 20,
-        "noblogs/noblogs-wp-ssl": 20
-    },
+    "stability-flags": [],
     "prefer-stable": false,
     "prefer-lowest": false,
     "platform": {
-- 
GitLab