feat(on_push_hook): make use of new data.payload exposed by fastify-git-server v1.6.0@@ -20,7 +20,7 @@ const getRepositoryBrowserView: ReqHandler = async (request, reply) => {
const params =
request.params as AppRoutesParams[AppRoute.REPOSITORY_BROWSER]["params"];
const { orgSlug, repoSlug, ref } = params;
- const path = params["*"];
+ const path = params["*"] || "/";
const orgService = makeOrganizationService({ request });
const repoService = makeRepositoryService({ request });
@@ -455,6 +455,13 @@ const RootAppRouter: AppRouter = () => {
schema={AppRoutesSchemas[AppRoute.REPOSITORY_DETAILS]}
handler={RepositoryController.getRepositoryDetailsView}
/>
+ <Router.Route
+ name={AppRoute.REPOSITORY_BROWSER}
+ method={"GET"}
+ path={"/:orgSlug/:repoSlug/:ref/tree"}
+ schema={AppRoutesSchemas[AppRoute.REPOSITORY_BROWSER]}
+ handler={RepositoryController.getRepositoryBrowserView}
+ />
<Router.Route
name={AppRoute.REPOSITORY_BROWSER}
method={"GET"}
@@ -4,15 +4,21 @@ import { GitServer } from "@ethicdevs/fastify-git-server";
// app
import { Env } from "../../env";
import { GitServerServiceDeps } from "./types";
+import { getEnv } from "../../utils/server";
const makeOnPushEvent: ServiceMethodFactory<
GitServerServiceDeps,
[GitServer.Event],
void
> = ({ request }) => {
+ const env = getEnv();
return ({ data, message }) => {
message.write("\n");
if (data.packType === GitServer.PackType.RECEIVE) {
+ // client has done something like "git push"
+ // it is uploading, we are receiving
+ console.log("receive-pack");
+
const [orgSlug, repoSlug] = data.repoSlug.split("/");
request.prisma.repository
.findFirst({
@@ -36,13 +42,19 @@ const makeOnPushEvent: ServiceMethodFactory<
return updatedRepo;
});
- // client has done something like "git push"
- // it is uploading, we are receiving
- console.log("receive-pack");
- message.write("🖖 See the details of your push at:\n");
- message.write(
- `🧲 ${Env.DEPLOYMENT_SCHEME}://${Env.DEPLOYMENT_DOMAIN}/${orgSlug}/${repoSlug}\n`
- );
+ const baseUrl =
+ env === "development"
+ ? `${Env.DEPLOYMENT_SCHEME}://${Env.DEPLOYMENT_DOMAIN}:${Env.PORT}/${orgSlug}/${repoSlug}`
+ : `${Env.DEPLOYMENT_SCHEME}://${Env.DEPLOYMENT_DOMAIN}/${orgSlug}/${repoSlug}`;
+
+ if (data.payload != null) {
+ message.write("🖖 See the details of your push at:\n");
+ if (data.payload.refType === "head") {
+ message.write(`🧲 ${baseUrl}/${data.payload.refName}/tree/\n`);
+ } else if (data.payload.refType === "tag") {
+ message.write(`➡️ ${baseUrl}/tags/${data.payload.refName}\n`);
+ }
+ }
} else if (data.packType === GitServer.PackType.UPLOAD) {
// client has done something like "git clone"
// it is receiving, we are uploading
@@ -27,7 +27,7 @@
},
"dependencies": {
"@ethicdevs/fastify-custom-session": "^0.6.0",
- "@ethicdevs/fastify-git-server": "^1.5.0",
+ "@ethicdevs/fastify-git-server": "^1.6.0",
"@ethicdevs/fastify-stream-react-views": "^1.9.9",
"@ethicdevs/react-monolith": "^1.6.1",
"@fastify/cookie": "6.0.0",
@@ -303,9 +303,9 @@
pg "^8.7.3"
pg-pool "^3.5.1"
-"@ethicdevs/fastify-git-server@^1.5.0":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/@ethicdevs/fastify-git-server/-/fastify-git-server-1.5.0.tgz#9429d01c96e4d06ec0f3579dcdc62ec646bbef72"
+"@ethicdevs/fastify-git-server@^1.6.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@ethicdevs/fastify-git-server/-/fastify-git-server-1.6.0.tgz#07c9b375796420eeb12332e7388714dbfc4a5132"
dependencies:
debug "^4.3.4"
fastify-plugin "^3.0.1"