我目前正在编写一个小的git代表数据库,我想知道如果我的数据库中列出了代表,我将如何继续并获得最新提交的日期。我从来没有使用过github API,我很难理解它。如果有人能帮我弄清楚,我会非常感激。PHP或JS更好,因为我发现的所有例子都是在ruby中。
efzxgjgh1#
老问题了,但我想指出(至少在API v3中)你可以使用branches api来获取特定分支的最新提交日期。我想你对主人感兴趣。它看起来像:
https://api.github.com/repos/:owner/:repo/branches/master
参见https://developer.github.com/v3/repos/branches/
j91ykkif2#
如果您要像您的示例那样使用PHP,我会使用cURL而不是file_get_contents,因为您需要配置allow-url-fopen。GitHub还要求你在header中发送一个user-agent:https://developer.github.com/v3/#user-agent-required例如,您的PHP代码看起来像这样:
cURL
file_get_contents
user-agent
$objCurl = curl_init(); //The repo we want to get curl_setopt($objCurl, CURLOPT_URL, "https://api.github.com/repos/google/blueprint/commits"); //To comply with https://developer.github.com/v3/#user-agent-required curl_setopt($objCurl, CURLOPT_USERAGENT, "StackOverflow-29845346"); //Skip verification (kinda insecure) curl_setopt($objCurl, CURLOPT_SSL_VERIFYPEER, false); //Get the response $response = curl_exec($objCurl); print_r( json_decode($response, true) );
**注意:**您可以继续使用file_get_contents,并发送user-agent头。参见this answer
nfs0ujit3#
我想回答这个确切的问题,所以我做了一个非常小的演示,如何获得最新提交的日期。Demo输出:
ta-dachi master 2019-03-21T14:50:22Z <----- What you want b80126c3ea900cd7c92729e652b2e8214ff014d8 https://github.com/ta-dachi/eatsleepcode.tech/tree/master
Github repoindex.html
<head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>React Local</title> <script type="application/javascript" src="https://unpkg.com/react@16.0.0/umd/react.production.min.js" ></script> <script type="application/javascript" src="https://unpkg.com/react-dom@16.0.0/umd/react-dom.production.min.js" ></script> <script type="application/javascript" src="https://unpkg.com/@babel/standalone/babel.min.js" ></script> <script type="application/javascript" src="https://unpkg.com/whatwg-fetch@3.0.0/dist/fetch.umd.js" ></script> </head> <body> <div id="root"></div> <script type="text/jsx" src="index.jsx"></script> </body>
index.jsx
/** * See https://developer.github.com/v3/repos/branches/#get-branch * * Example Github api request: * https://api.github.com/repos/ta-dachi/eatsleepcode.tech/branches/master */ class LatestCommitComponent extends React.Component { constructor(props) { super(props); this.state = { author: "", branch: "", date: "", sha: "", link: "" }; } componentDidMount() { // Replace this with your own repo // https://api.github.com/repos/:owner/:repo/branches/master fetch( "https://api.github.com/repos/ta-dachi/eatsleepcode.tech/branches/master" ) .then(response => { response.json().then(json => { console.log(json); this.setState({ author: json.commit.author.login, branch: json.name, date: json.commit.commit.author.date, sha: json.commit.sha, link: json._links.html }); }); }) .catch(error => { console.log(error); }); } render() { return ( <div> <div>{this.state.author}</div> <div>{this.state.branch}</div> <div>{this.state.date}</div> <div>{this.state.sha}</div> <div>{this.state.link}</div> </div> ); } } ReactDOM.render(<LatestCommitComponent />, document.getElementById("root"));
3条答案
按热度按时间efzxgjgh1#
老问题了,但我想指出(至少在API v3中)你可以使用branches api来获取特定分支的最新提交日期。我想你对主人感兴趣。
它看起来像:
参见https://developer.github.com/v3/repos/branches/
j91ykkif2#
如果您要像您的示例那样使用PHP,我会使用
cURL
而不是file_get_contents
,因为您需要配置allow-url-fopen。GitHub还要求你在header中发送一个
user-agent
:https://developer.github.com/v3/#user-agent-required例如,您的PHP代码看起来像这样:
**注意:**您可以继续使用
file_get_contents
,并发送user-agent
头。参见this answernfs0ujit3#
我想回答这个确切的问题,所以我做了一个非常小的演示,如何获得最新提交的日期。
Demo
输出:
Github repo
index.html
index.jsx