[PYTHON] Ich habe ein POST-Skript erstellt, um ein Problem in Github zu erstellen und es im Projekt zu registrieren

Erstellen Sie ein Problem in einem beliebigen Repository auf Github und registrieren Sie es in der Spalte eines Projekts

Arbeiten Sie unten

Holen Sie sich zuerst Ihren Github-Token

Holen Sie sich die notwendigen Informationen mit Curl Es scheint, dass API einen seltsamen Header wie eine Testphase hinzufügen muss Zunächst benötigen Sie die ID des Projekts und die ID der vom Projekt erstellten Spalten. Speichern Sie sie, um sie abzurufen.

curl -H "Accept: application/vnd.github.inertia-preview+json" -u "username:token" https://api.github.com/repos/Teamname/Repository-Name/projects
curl -H "Accept: application/vnd.github.inertia-preview+json" -u "username:token" https://api.github.com/repos/Teamname/Repository-Name/projects/(Die ID des oben erhaltenen Projekts)/columns

Notieren Sie sich die hier erhaltene ID, da sie im folgenden Skript verwendet wird. Außerdem ist es einfacher, das Authorization: Basic-Token mit Wireshark oder Ähnlichem zu erhalten. (Ich sollte den Benutzernamen: Token in base64 verschlüsseln, aber ich wurde schlecht, weil ich eine Kommunikation bekam.)

Sie müssen lediglich die erforderlichen Werte dem folgenden Skript zuweisen.

Python-Version

# -*- coding: utf-8 -*-
import requests
import json
import sys

response = {}
ownr = ''
repo = ''
column_id = ''
issue_url = "https://api.github.com/repos/" + ownr + "/" + repo + "/issues"
project_url = "https://api.github.com/repos/" + ownr + "/" + repo + "/projects/columns/" + column_id + "/cards"
headers = {
    "Authorization": "Benutzername der Basisversion 64:token",
    "Accept": "application/vnd.github.inertia-preview+json",
    "Content-Type": "application/json",
}
argvs = sys.argv
"""---------------Create Issue---------------------"""
params = {"title": argvs[1]}
res = requests.post(issue_url, data=json.dumps(params), headers=headers)
"""---------Register created issue to Project------"""
params = {"content_id": int(res.json()['id']), "content_type": "Issue"}
res = requests.post(project_url, data=json.dumps(params), headers=headers)
print(res.status_code)

Go-Version

Ich wollte kein Token im Skript in einfachen Text einfügen, deshalb habe ich es mit Go neu erstellt, damit es binärisiert und betrieben werden kann. (Ich sage nicht, dass es sicher ist) Die Fehlerbehandlung ist texto, also machen Sie es bitte gut


package main

import (
        "bytes"
        "encoding/json"
        "flag"
        "fmt"
        "io/ioutil"
        "net/http"
        "strconv"
        "time"
)

func HttpPost(url, param string) (interface{}, error) {
        req, err := http.NewRequest(
                "POST",
                url,
                bytes.NewBuffer([]byte(param)),
        )
        if err != nil {
                return nil, err
        }
        req.Header.Set("Content-Type", "application/json")
        req.Header.Set("Authorization", "Benutzername der Basisversion 64:token")
        req.Header.Set("Accept", "application/vnd.github.inertia-preview+json")

        client := &http.Client{Timeout: time.Duration(10 * time.Second)}
        resp, err := client.Do(req)
        defer resp.Body.Close()
        if err != nil {
                return nil, err
        }
        var response interface{}
        body, err := ioutil.ReadAll(resp.Body)
        if err != nil {
                return nil, err
        }
        err = json.Unmarshal(body, &response)
        return response, err
}

func main() {
        flag.Parse()
        if len(flag.Args()) < 1 {
                fmt.Println("no issue title")
                return
        }
        issue_title := flag.Args()[0]
        ownr := ""
        repo := ""
        column_id := ""
        issue_url := "https://api.github.com/repos/" + ownr + "/" + repo + "/issues"
        project_url := "https://api.github.com/repos/" + ownr + "/" + repo + "/projects/columns/" + column_id + "/cards"

        params := `{"title": "` + issue_title + `"}`
        res, err := HttpPost(issue_url, params)
        if err != nil {
                fmt.Println(err)
        }
        id := res.(map[string]interface{})["id"].(float64)
        params = `{"content_id": ` + strconv.Itoa(int(id)) + `, "content_type": "Issue"}`
        res, err = HttpPost(project_url, params)
        if err != nil {
                fmt.Println(err)
        }
        fmt.Println(200)
}

Wie benutzt man

./ (Skript oder Binär) issue_title Ein Problem mit issue_title sollte in jedem Projekt erstellt und registriert worden sein.

Recommended Posts

Ich habe ein POST-Skript erstellt, um ein Problem in Github zu erstellen und es im Projekt zu registrieren
Ich möchte eine Pipfile erstellen und im Docker wiedergeben
Ich möchte ein Histogramm erstellen und die Normalverteilungskurve darauf überlagern. matplotlib edition
Ich habe einen Appdo-Befehl erstellt, um Befehle im Kontext der App auszuführen
Ich habe ein Bildklassifizierungsmodell erstellt und versucht, es auf dem Handy zu verschieben
Ich habe ein Skript erstellt, um ein Snippet in README.md einzufügen
[Python] Ich habe ein Skript erstellt, das Dateien auf dem lokalen PC automatisch ausschneidet und auf eine externe SSD einfügt.
Eine einfache Möglichkeit, die in Python benötigte Zeit anzuzeigen und sie intelligenter zu verbessern
Ich mag es nicht, mit der Veröffentlichung von Pokemon Go frustriert zu sein, deshalb habe ich ein Skript erstellt, um die Veröffentlichung zu erkennen und zu twittern
Ich wandelte die Zeit in eine ganze Zahl um, zerlegte sie in Primfaktoren und machte einen Bot, um das Ergebnis zu twittern (xkcd story)
Verkleide das Gras auf GitHub und versuche Ingenieur zu werden.
Ich habe versucht, einen Sender auf der IoT-Plattform "Rimotte" zu registrieren.
Ich habe den Befehl gegeben, einen farbenfrohen Kalender im Terminal anzuzeigen
Ich habe ein Skript erstellt, um Piktogramme anzuzeigen
Ich habe einen Küchentimer erstellt, der in der Statusleiste angezeigt wird!
[Python] Erstellen Sie einen Linebot, um den Namen und das Alter auf das Bild zu schreiben
Ich habe ein Skript in Python erstellt, um MDD-Dateien in das Scrapbox-Format zu konvertieren
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich habe versucht, ein System zu erstellen, um den Programmführer automatisch zu erfassen → ihn an einem Tag im Kalender zu registrieren
Ich möchte eine API erstellen, die ein Modell mit einer rekursiven Beziehung im Django REST Framework zurückgibt
Skript zur ordnungsgemäßen Verwendung mehrerer Github-Konten im selben Repository auf demselben Computer
Ich möchte mit Python ein Fenster erstellen
Ich habe ein Tool erstellt, um Slack über Connpass-Ereignisse zu informieren, und es zu Terraform gemacht
Ich möchte ein Element mit numpy in eine Datei schreiben und es überprüfen.
So speichern Sie die Feature-Point-Informationen des Bildes in einer Datei und verwenden sie zum Abgleichen
Erstellen Sie ein Django-Projekt und eine Django-Anwendung in einer virtuellen Python-Umgebung und starten Sie den Server
Definieren Sie den Teilungswert in Django und spiegeln Sie ihn einfach auf dem Bildschirm wider
Ich möchte horizontalen Text in vertikalen Text konvertieren und auf Twitter usw. veröffentlichen.
Ich habe ein Programm erstellt, um Wörter im Fenster nachzuschlagen (vorherige Entwicklung)
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
Erstellen Sie einen Filter, um ein Zugriffstoken mit der Graph-API (Flask) zu erhalten.
Ich habe ein Paket erstellt, um eine ausführbare Datei aus dem Hy-Quellcode zu erstellen
Ich habe in Python ein Tool erstellt, das mit der rechten Maustaste auf eine Excel-Datei klickt und diese für jedes Blatt in Dateien unterteilt.
Ich habe versucht, ein Projekt mit Python on Docker mit PyCharm zu erstellen, aber es hat mit Docker Compose funktioniert
Python-Skript, das das Azure-Status-RSS crawlt und an Hipchat sendet
Es war ein Leben, das ich auf AWS Lambda OCR wollte, um die Charaktere zu lokalisieren.
Ich möchte die Variablen in der Python-Vorlagendatei ersetzen und in einer anderen Datei in Massenproduktion herstellen
Sphinx-Schnellstart wurde zu einem Problem und ich versuchte, einen alternativen Befehl zu erstellen, und der Stress verschwand
Ich habe einen Befehl zum Markieren des Tabellenclips gegeben
Es ist schwierig, einen grünen Bildschirm zu installieren, daher habe ich nur das Gesicht ausgeschnitten und es dem Hintergrundbild überlagert
Ich habe in Python ein Programm erstellt, das die 1-Minuten-Daten von FX auf eine beliebige Zeit (1 Stunde usw.) ändert.
"Stoppen Sie das Festschreiben japanischer Dateien für Git auf Mac> <" Vorerst habe ich ein Skript geschrieben, um nach inkompatiblen japanischen Dateien unter Mac und Linux zu suchen.
Ich habe ein Skript in Python erstellt, um eine Textdatei für JSON zu konvertieren (für das vscode-Benutzer-Snippet).
Als ich versuchte, PIL und matplotlib in einer virtuellen Umgebung zu installieren, war ich süchtig danach.
Ich habe eine Klasse erstellt, um das Analyseergebnis von MeCab in ndarray mit Python zu erhalten
Ein Skript, mit dem Sie mit der LINE Messaging-API auf einfache Weise umfangreiche Menüs erstellen können
POST das ausgewählte Bild auf der Website mit mehrteiligen / Formulardaten und speichere es in Amazon S3! !!
Erstellen Sie ein Skript für Ihre Pepper-Fertigkeit in einer Tabelle und laden Sie SayText direkt aus dem Skript
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Schritte zum Erstellen eines Jobs, der ein Docker-Image abruft und mit Github-Aktionen testet
Ich habe einen Server mit Python-Socket und SSL erstellt und versucht, über den Browser darauf zuzugreifen
Ich möchte ein englisches Papier aus dem PDF-Format kopieren und in die Google-Übersetzung einfügen
Ich habe eine Funktion zum Trimmen des Bildes von Python openCV erstellt. Verwenden Sie sie daher bitte.
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Ich habe ein Tool erstellt, um automatisch ein einfaches ER-Diagramm aus der Anweisung CREATE TABLE zu generieren