mirror of
https://github.com/jlengrand/github-api.git
synced 2026-03-28 15:50:37 +00:00
116 lines
2.5 KiB
Java
116 lines
2.5 KiB
Java
package org.kohsuke.github;
|
|
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.net.URL;
|
|
|
|
/**
|
|
* Provides information for Git Trees https://developer.github.com/v3/git/trees/
|
|
*
|
|
* @author Daniel Teixeira - https://github.com/ddtxra
|
|
* @see GHTree
|
|
*/
|
|
public class GHTreeEntry {
|
|
/* package almost final */GHTree tree;
|
|
|
|
private String path, mode, type, sha, url;
|
|
private long size;
|
|
|
|
/**
|
|
* Get the path such as "subdir/file.txt"
|
|
*
|
|
* @return the path
|
|
*/
|
|
public String getPath() {
|
|
return path;
|
|
}
|
|
|
|
/**
|
|
* Get mode such as 100644
|
|
*
|
|
* @return the mode
|
|
*/
|
|
public String getMode() {
|
|
return mode;
|
|
}
|
|
|
|
/**
|
|
* Gets the size of the file, such as 132
|
|
*
|
|
* @return The size of the path or 0 if it is a directory
|
|
*/
|
|
public long getSize() {
|
|
return size;
|
|
}
|
|
|
|
/**
|
|
* Gets the type such as: "blob", "tree", etc.
|
|
*
|
|
* @return The type
|
|
*/
|
|
public String getType() {
|
|
return type;
|
|
}
|
|
|
|
/**
|
|
* SHA1 of this object.
|
|
*
|
|
* @return the sha
|
|
*/
|
|
public String getSha() {
|
|
return sha;
|
|
}
|
|
|
|
/**
|
|
* API URL to this Git data, such as https://api.github.com/repos/jenkinsci
|
|
* /jenkins/git/commits/b72322675eb0114363a9a86e9ad5a170d1d07ac0
|
|
*
|
|
* @return the url
|
|
*/
|
|
public URL getUrl() {
|
|
return GitHubClient.parseURL(url);
|
|
}
|
|
|
|
/**
|
|
* If this tree entry represents a file, then return its information. Otherwise null.
|
|
*
|
|
* @return the gh blob
|
|
* @throws IOException
|
|
* the io exception
|
|
*/
|
|
public GHBlob asBlob() throws IOException {
|
|
if (type.equals("blob"))
|
|
return tree.repo.getBlob(sha);
|
|
else
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* If this tree entry represents a file, then return its content. Otherwise null.
|
|
*
|
|
* @return the input stream
|
|
* @throws IOException
|
|
* the io exception
|
|
*/
|
|
public InputStream readAsBlob() throws IOException {
|
|
if (type.equals("blob"))
|
|
return tree.repo.readBlob(sha);
|
|
else
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* If this tree entry represents a directory, then return it. Otherwise null.
|
|
*
|
|
* @return the gh tree
|
|
* @throws IOException
|
|
* the io exception
|
|
*/
|
|
public GHTree asTree() throws IOException {
|
|
if (type.equals("tree"))
|
|
return tree.repo.getTree(sha);
|
|
else
|
|
return null;
|
|
}
|
|
}
|