使用curl命令进行git发布

时间:2017-10-06 12:05:53

标签: bash curl github

我是使用以下命令的新手。我在git bash中运行了这个命令但是无法创建标记。

curl -s -k -X POST -H "Content-Type:application/json" "https://github.com/XXXXXX/custom-component/releases?1.2," -d '{ "user" : { 'email' : 'XXXXXXX', 'password' : 'XXXXX'} ,"tag_name": "1.2.1", "target_commitish": "master", "name": "1234", "body": "Release of version 1234", "draft": false, "prerelease": false}' -b cookie

执行上述命令后,我在我的存储库中找不到任何更改

我的输出会像一些html输出

  <!DOCTYPE html>
       <html>
            <head>
         <meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; b-uri 'self'; connect-src 'self'; form-action 'self'; img-src data:; script-srself'; style-src 'unsafe-inline'">
<meta content="origin" name="referrer">
<title>Oh no &middot; GitHub</title>
<style type="text/css" media="screen">
  body {
    background-color: #f1f1f1;
    margin: 0;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  }

  .container { margin: 50px auto 40px auto; width: 600px; text-align: cen; }

  a { color: #4183c4; text-decoration: none; }
  a:hover { text-decoration: underline; }

  h1 { letter-spacing: -1px; line-height: 60px; font-size: 60px; font-wei: 100; margin: 0px; text-shadow: 0 1px 0 #fff; }
  p { color: rgba(0, 0, 0, 0.5); margin: 20px 0 40px; }

  ul { list-style: none; margin: 25px 0; padding: 0; }
  li { display: table-cell; font-weight: bold; width: 1%; }

  .logo { display: inline-block; margin-top: 35px; }
  .logo-img-2x { display: none; }
  @media
  only screen and (-webkit-min-device-pixel-ratio: 2),
  only screen and (   min--moz-device-pixel-ratio: 2),
  only screen and (     -o-min-device-pixel-ratio: 2/1),
  only screen and (        min-device-pixel-ratio: 2),
  only screen and (                min-resolution: 192dpi),
  only screen and (                min-resolution: 2dppx) {
    .logo-img-1x { display: none; }
    .logo-img-2x { display: inline-block; }
  }

  #suggestions {
    margin-top: 35px;
    color: #ccc;

1 个答案:

答案 0 :(得分:1)

首先,您应该使用api.github.com。其次,您需要将 Authorization token 传递到标头中。 E.g。

curl -v -H "Authorization: token TOKEN" https://api.github.com/repos/octodocs-test/test

您可以在your personal access token page上找到您的个人访问令牌。如果你没有,可以create一个。

所以你的命令可能会看起来:

curl -v -s \
  -H "Authorization: token xxxxxxxxx" \
  -H "Content-Type:application/json" \
  "https://api.github.com/repos/:owner/:repo/releases" \
  -d '{ "user" : { "email" : "XXXXXXX", "password" : "XXXXX"}, "tag_name": "1.2.1", "target_commitish": "master", "name": "1234", "body": "Release of version 1234", "draft": false, "prerelease": false}'

请参阅:GitHub API v3 | GitHub Developer Guide

检查REST API v3 Releases docs page处的可用版本相关端点,例如:

  • 按标记名称获取发布:GET /repos/:owner/:repo/releases/tags/:tag
  • 创建发布:POST /repos/:owner/:repo/releases

另请参阅:How to use Github Release API to make a release without source code?