Unverified Commit 582795ab authored by Charlotte Van Petegem's avatar Charlotte Van Petegem
Browse files

matrix-hookshot: init at 2.7.0

parent 5ed9c487
Loading
Loading
Loading
Loading
+76 −0
Original line number Diff line number Diff line
{ lib
, stdenv
, fetchFromGitHub
, fetchYarnDeps
, makeWrapper
, matrix-sdk-crypto-nodejs
, mkYarnPackage
, rust
, rustPlatform
, napi-rs-cli
, nodejs
}:

let
  data = lib.importJSON ./pin.json;
in
mkYarnPackage rec {
  pname = "matrix-hookshot";
  version = data.version;

  src = fetchFromGitHub {
    owner = "matrix-org";
    repo = "matrix-hookshot";
    rev = data.version;
    sha256 = data.srcHash;
  };

  packageJSON = ./package.json;

  offlineCache = fetchYarnDeps {
    yarnLock = src + "/yarn.lock";
    sha256 = data.yarnHash;
  };

  cargoDeps = rustPlatform.fetchCargoTarball {
    inherit src;
    name = "${pname}-${version}";
    hash = "sha256-WolkDSS5wPxtltKzq4Er2nAQ0GrsF3imim3/Ge4eguQ=";
  };

  packageResolutions = {
    "@matrix-org/matrix-sdk-crypto-nodejs" = "${matrix-sdk-crypto-nodejs}/lib/node_modules/@matrix-org/matrix-sdk-crypto-nodejs";
  };

  nativeBuildInputs = [
    rustPlatform.cargoSetupHook
    rustPlatform.rust.cargo
    rustPlatform.rust.rustc
    napi-rs-cli
    makeWrapper
  ];

  buildPhase = ''
    runHook preBuild
    cd deps/${pname}
    napi build --target ${rust.toRustTargetSpec stdenv.targetPlatform} --dts ../src/libRs.d.ts --release ./lib
    yarn run build:app:fix-defs
    yarn run build:app
    yarn run build:web
    cd ../..
    runHook postBuild
  '';

  postInstall = ''
    makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-hookshot" --add-flags \
        "$out/libexec/matrix-hookshot/deps/matrix-hookshot/lib/App/BridgeApp.js"
  '';

  doDist = false;

  meta = with lib; {
    description = "A bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA";
    maintainers = with maintainers; [ chvp ];
    license = licenses.asl20;
  };
}
+111 −0
Original line number Diff line number Diff line
{
  "name": "matrix-hookshot",
  "version": "2.7.0",
  "description": "A bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA.",
  "main": "lib/app.js",
  "repository": "https://github.com/matrix-org/matrix-hookshot",
  "author": "matrix.org",
  "license": "Apache-2.0",
  "napi": {
    "name": "matrix-hookshot-rs"
  },
  "engines": {
    "node": ">=16"
  },
  "scripts": {
    "build:web": "vite build",
    "build:app": "tsc --project tsconfig.json",
    "build:app:rs": "napi build --dts ../src/libRs.d.ts --release ./lib",
    "build:app:fix-defs": "ts-node scripts/definitions-fixer.ts src/libRs.d.ts",
    "build:docs": "ts-node scripts/build-metrics-docs.ts > docs/metrics.md && mdbook build",
    "dev:web": "vite dev",
    "build": "scripts/build-app.sh",
    "clean:web": "rimraf public/",
    "clean:app": "tsc --build tsconfig.json --clean",
    "clean:app:rs": "rimraf src/libRs.d.ts target/",
    "clean:docs": "mdbook clean",
    "clean": "scripts/clean.sh",
    "prepare": "yarn build",
    "start": "node --require source-map-support/register lib/App/BridgeApp.js",
    "start:app": "node --require source-map-support/register lib/App/BridgeApp.js",
    "start:webhooks": "node --require source-map-support/register lib/App/GithubWebhookApp.js",
    "start:matrixsender": "node --require source-map-support/register lib/App/MatrixSenderApp.js",
    "test": "mocha -r ts-node/register tests/init.ts tests/*.ts  tests/**/*.ts",
    "test:cover": "nyc --reporter=lcov --reporter=text yarn test",
    "lint": "yarn run lint:js && yarn run lint:rs",
    "lint:js": "eslint -c .eslintrc.js 'src/**/*.ts' 'tests/**/*.ts' 'web/**/*.ts' 'web/**/*.tsx'",
    "lint:rs": "cargo fmt --all -- --check",
    "generate-default-config": "ts-node src/Config/Defaults.ts --config > config.sample.yml",
    "validate-config": "ts-node src/Config/Config.ts"
  },
  "dependencies": {
    "@alloc/quick-lru": "^5.2.0",
    "@octokit/auth-app": "^3.3.0",
    "@octokit/auth-token": "^2.4.5",
    "@octokit/rest": "^18.10.0",
    "@octokit/webhooks": "^9.1.2",
    "ajv": "^8.11.0",
    "axios": "^0.24.0",
    "cors": "^2.8.5",
    "express": "^4.17.3",
    "figma-js": "^1.14.0",
    "http-status-codes": "^2.2.0",
    "ioredis": "^5.2.3",
    "jira-client": "^8.0.0",
    "markdown-it": "^12.3.2",
    "matrix-appservice-bridge": "^6.0.0",
    "matrix-bot-sdk": "npm:@vector-im/matrix-bot-sdk@^0.6.3-element.0",
    "matrix-widget-api": "^1.0.0",
    "micromatch": "^4.0.4",
    "mime": "^3.0.0",
    "node-emoji": "^1.11.0",
    "nyc": "^15.1.0",
    "p-queue": "^6.6.2",
    "prom-client": "^14.0.1",
    "reflect-metadata": "^0.1.13",
    "rss-parser": "^3.12.0",
    "source-map-support": "^0.5.21",
    "string-argv": "^0.3.1",
    "tiny-typed-emitter": "^2.1.0",
    "uuid": "^8.3.2",
    "vm2": "^3.9.11",
    "winston": "^3.3.3",
    "xml2js": "^0.4.23",
    "yaml": "^1.10.2"
  },
  "devDependencies": {
    "@codemirror/lang-javascript": "^6.0.2",
    "@napi-rs/cli": "^2.2.0",
    "@preact/preset-vite": "^2.2.0",
    "@tsconfig/node16": "^1.0.3",
    "@types/ajv": "^1.0.0",
    "@types/chai": "^4.2.22",
    "@types/cors": "^2.8.12",
    "@types/express": "^4.17.14",
    "@types/jira-client": "^7.1.0",
    "@types/markdown-it": "^12.2.3",
    "@types/micromatch": "^4.0.1",
    "@types/mime": "^2.0.3",
    "@types/mocha": "^9.0.0",
    "@types/node": "^16",
    "@types/node-emoji": "^1.8.1",
    "@types/uuid": "^8.3.3",
    "@types/xml2js": "^0.4.11",
    "@typescript-eslint/eslint-plugin": "^5.4.0",
    "@typescript-eslint/parser": "^5.4.0",
    "@uiw/react-codemirror": "^4.12.3",
    "chai": "^4.3.4",
    "eslint": "^8.3.0",
    "eslint-config-preact": "^1.3.0",
    "eslint-plugin-mocha": "^9.0.0",
    "mini.css": "^3.0.1",
    "mocha": "^8.2.1",
    "preact": "^10.5.15",
    "rimraf": "^3.0.2",
    "sass": "^1.51.0",
    "ts-node": "^10.4.0",
    "typescript": "^4.5.2",
    "vite": "^2.9.13",
    "vite-svg-loader": "^3.4.0"
  }
}
+5 −0
Original line number Diff line number Diff line
{
  "version": "2.7.0",
  "srcHash": "rW5fqKshnF2S4w55V2GaAa2RFVM+YbwRum9OwTTpYuA=",
  "yarnHash": "0q71901ra9m9rbbczal1imqfba4b07bpr8hkpw1d1r9ghc2xjay4"
}
+35 −0
Original line number Diff line number Diff line
#!/usr/bin/env -S nix shell nixpkgs#nix nixpkgs#curl nixpkgs#jq nixpkgs#prefetch-yarn-deps nixpkgs#nix-prefetch-github nixpkgs#nix-prefetch-git --command bash

if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
  echo "Regenerates packaging data for matrix-hookshot."
  echo "Usage: $0 [git release tag]"
  exit 1
fi

version="$1"

set -euo pipefail

if [ -z "$version" ]; then
  version="$(curl "https://api.github.com/repos/matrix-org/matrix-hookshot/releases?per_page=1" | jq -r '.[0].tag_name')"
fi

src="https://raw.githubusercontent.com/matrix-org/matrix-hookshot/$version"
src_hash=$(nix-prefetch-github matrix-org matrix-hookshot --rev ${version} | jq -r .sha256)

tmpdir=$(mktemp -d)
trap 'rm -rf "$tmpdir"' EXIT

pushd $tmpdir
curl -O "$src/yarn.lock"
yarn_hash=$(prefetch-yarn-deps yarn.lock)
popd

curl -O "$src/package.json"
cat > pin.json << EOF
{
  "version": "$version",
  "srcHash": "$src_hash",
  "yarnHash": "$yarn_hash"
}
EOF
+2 −0
Original line number Diff line number Diff line
@@ -9068,6 +9068,8 @@ with pkgs;
  matrix-corporal = callPackage ../servers/matrix-corporal { };
  matrix-hookshot = callPackage ../servers/matrix-synapse/matrix-hookshot {};
  mautrix-facebook = callPackage ../servers/mautrix-facebook { };
  mautrix-googlechat = callPackage ../servers/mautrix-googlechat { };