PRIVATE_REPOSITORY

By GITHUB_USERNAME

PRIVATE_REPOSITORY Alternatives

Similar projects and alternatives to PRIVATE_REPOSITORY

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better PRIVATE_REPOSITORY alternative or higher similarity.

PRIVATE_REPOSITORY reviews and mentions

Posts with mentions or reviews of PRIVATE_REPOSITORY. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-02-17.
  • Build a Serverless Comment System for a Jamstack Blog
    3 projects | dev.to | 17 Feb 2021
    // comment.ts import { AzureFunction, Context, HttpRequest } from "@azure/functions"; import * as querystring from "querystring"; import util = require("util"); import uuidv4 = require("uuid/v4"); import * as SendGrid from "@sendgrid/mail"; import * as simpleGit from "simple-git/promise"; import { formHelpers } from "../common/formHelpers"; import { Octokit } from "@octokit/rest"; import fs = require("fs"); import rimrafstd = require("rimraf"); import { tmpdir } from "os"; const rimraf = util.promisify(rimrafstd); const mkdir = util.promisify(fs.mkdir); const writeFile = util.promisify(fs.writeFile); const readFile = util.promisify(fs.readFile); SendGrid.setApiKey(process.env["SendGridApiKey"] as string); const httpTrigger: AzureFunction = async function ( context: Context, req: HttpRequest ): Promise { context.log("HTTP trigger function processed a request."); context.res!.headers["Content-Type"] = "application/json"; const body = querystring.parse(req.body); if ( !( body && body.comment && body.postGuid && body.authorEmail && body.authorName ) ) { context.res!.status = 400; context.res!.body = { message: "Comment invalid. Please correct errors and try again.", }; return; } //Initialize Git Repository with Simple Git // generate unique folder name for git repository const tempRepo = uuidv4(); // create empty directory to store comment file await mkdir(`${tmpdir}/${tempRepo}/comments`, { recursive: true, }); // initialize simple-git const git = simpleGit(`${tmpdir}/${tempRepo}`); // initialize git repository in tempRepo await git.init(); // set up git config await Promise.all([ git.addConfig("user.name", "GITHUB_USERNAME"), git.addConfig("user.email", "GITHUB_EMAIL"), ]); // add the private remote await git.addRemote( "private", `https://GITHUB_USERNAME:${process.env["GitHubUserPassword"]}@https://github.com/GITHUB_USERNAME/PRIVATE_REPOSITORY` ); //Checkout git branch with Simple Git // generate unique id for comment const commentId = uuidv4(); // create branch try { // fetch main branch to base of off await git.fetch("private", "main"); // use postID to see if comments already are saved for this post await git.checkout("private/main", ["--", `comments/${body.postId}.json`]); // create new branch named with commentID based off main branch await git.checkoutBranch(`${commentId}`, "private/main"); } catch (error) { // no previous comments are saved for this post await git.checkout("private/main"); await git.checkoutLocalBranch(`${commentId}`); } // Write JSON File with updated Comment data // create comment object to store as JSON in git repository const comment = { id: commentId, timestamp: new Date(new Date().toUTCString()).getTime(), authorEmail: body.authorEmail, authorName: body.authorName, bodyText: body.comment, }; // list of all comments let comments = []; // retrieve existing comments try { comments = JSON.parse( await readFile( `${tmpdir}/${tempRepo}/comments/${body.postId}.json`, "utf8" ) ); } catch (error) { //no previous comments } // add newly submitted comment comments.push(comment); // update or create new comments file with new comment included await writeFile( `${tmpdir}/${tempRepo}/comments/${body.postId}.json`, JSON.stringify(comments, null, 2), "utf8" ); // stage file modifications, commit and push await git.add(`${tmpdir}/${tempRepo}/comments/${body.postId}.json`); await git.commit(`adding comment ${commentId}`); await git.push("private", `${commentId}`); // delete temporary repository await rimraf(`${tmpdir}/${tempRepo}/`); //send notifications and create pull request const userEmail = { to: body.authorEmail, from: "YOUR_NAME@YOUR_WEBSITE", subject: "comment submitted", text: "Your comment will be visible when approved.", }; const adminEmail = { to: "ADMIN_EMAIL", from: "ADMIN_EMAIL", subject: "comment submitted", html: `from: ${body.authorName} email: ${body.authorEmail} comment: ${body.comment}`, }; await Promise.all([ SendGrid.send(userEmail), SendGrid.send(adminEmail), new Octokit({ auth: process.env["GitHubUserPassword"], }).pulls.create({ owner: "GITHUB_USERNAME", repo: "PRIVATE_REPOSITORY", title: `${commentId}`, head: `${commentId}`, base: "main", }), ]); context.res!.status = 200; context.res!.body = { message: "Success!", }; }; export default httpTrigger;

Stats

Basic PRIVATE_REPOSITORY repo stats
1
-
-
-

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com